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/buffer/storage/dynamic_index/read.wgsl.expected.spvasm b/test/buffer/storage/dynamic_index/read.wgsl.expected.spvasm
index e5df892..22d8bab 100644
--- a/test/buffer/storage/dynamic_index/read.wgsl.expected.spvasm
+++ b/test/buffer/storage/dynamic_index/read.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 68
+; Bound: 65
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %idx_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %idx_1 "idx_1"
                OpName %S "S"
                OpMemberName %S 0 "arr"
                OpName %Inner "Inner"
@@ -20,8 +21,10 @@
                OpMemberName %Inner 7 "h"
                OpMemberName %Inner 8 "i"
                OpName %s "s"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
+               OpName %idx "idx"
                OpName %main "main"
+               OpDecorate %idx_1 BuiltIn LocalInvocationIndex
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpMemberDecorate %Inner 0 Offset 0
@@ -42,10 +45,11 @@
                OpDecorate %s NonWritable
                OpDecorate %s Binding 0
                OpDecorate %s DescriptorSet 0
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+      %idx_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-       %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
       %float = OpTypeFloat 32
     %v3float = OpTypeVector %float 3
@@ -60,10 +64,8 @@
           %S = OpTypeStruct %_runtimearr_Inner
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
           %s = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
-         %20 = OpTypeFunction %void
+         %20 = OpTypeFunction %void %uint
      %uint_0 = OpConstant %uint 0
 %_ptr_StorageBuffer_v3int = OpTypePointer StorageBuffer %v3int
      %uint_1 = OpConstant %uint 1
@@ -81,34 +83,33 @@
 %_ptr_StorageBuffer_mat3v2float = OpTypePointer StorageBuffer %mat3v2float
      %uint_8 = OpConstant %uint 8
 %_ptr_StorageBuffer__arr_v4int_uint_4 = OpTypePointer StorageBuffer %_arr_v4int_uint_4
-       %main = OpFunction %void None %20
-         %23 = OpLabel
-         %25 = OpLoad %uint %tint_symbol
-         %27 = OpAccessChain %_ptr_StorageBuffer_v3int %s %uint_0 %25 %uint_0
+         %60 = OpTypeFunction %void
+ %main_inner = OpFunction %void None %20
+        %idx = OpFunctionParameter %uint
+         %24 = OpLabel
+         %27 = OpAccessChain %_ptr_StorageBuffer_v3int %s %uint_0 %idx %uint_0
          %28 = OpLoad %v3int %27
-         %29 = OpLoad %uint %tint_symbol
-         %32 = OpAccessChain %_ptr_StorageBuffer_int %s %uint_0 %29 %uint_1
-         %33 = OpLoad %int %32
-         %34 = OpLoad %uint %tint_symbol
-         %37 = OpAccessChain %_ptr_StorageBuffer_v3uint %s %uint_0 %34 %uint_2
-         %38 = OpLoad %v3uint %37
-         %39 = OpLoad %uint %tint_symbol
-         %42 = OpAccessChain %_ptr_StorageBuffer_uint %s %uint_0 %39 %uint_3
-         %43 = OpLoad %uint %42
-         %44 = OpLoad %uint %tint_symbol
-         %46 = OpAccessChain %_ptr_StorageBuffer_v3float %s %uint_0 %44 %uint_4
-         %47 = OpLoad %v3float %46
-         %48 = OpLoad %uint %tint_symbol
-         %51 = OpAccessChain %_ptr_StorageBuffer_float %s %uint_0 %48 %uint_5
-         %52 = OpLoad %float %51
-         %53 = OpLoad %uint %tint_symbol
-         %56 = OpAccessChain %_ptr_StorageBuffer_mat2v3float %s %uint_0 %53 %uint_6
-         %57 = OpLoad %mat2v3float %56
-         %58 = OpLoad %uint %tint_symbol
-         %61 = OpAccessChain %_ptr_StorageBuffer_mat3v2float %s %uint_0 %58 %uint_7
-         %62 = OpLoad %mat3v2float %61
-         %63 = OpLoad %uint %tint_symbol
-         %66 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %s %uint_0 %63 %uint_8
-         %67 = OpLoad %_arr_v4int_uint_4 %66
+         %31 = OpAccessChain %_ptr_StorageBuffer_int %s %uint_0 %idx %uint_1
+         %32 = OpLoad %int %31
+         %35 = OpAccessChain %_ptr_StorageBuffer_v3uint %s %uint_0 %idx %uint_2
+         %36 = OpLoad %v3uint %35
+         %39 = OpAccessChain %_ptr_StorageBuffer_uint %s %uint_0 %idx %uint_3
+         %40 = OpLoad %uint %39
+         %42 = OpAccessChain %_ptr_StorageBuffer_v3float %s %uint_0 %idx %uint_4
+         %43 = OpLoad %v3float %42
+         %46 = OpAccessChain %_ptr_StorageBuffer_float %s %uint_0 %idx %uint_5
+         %47 = OpLoad %float %46
+         %50 = OpAccessChain %_ptr_StorageBuffer_mat2v3float %s %uint_0 %idx %uint_6
+         %51 = OpLoad %mat2v3float %50
+         %54 = OpAccessChain %_ptr_StorageBuffer_mat3v2float %s %uint_0 %idx %uint_7
+         %55 = OpLoad %mat3v2float %54
+         %58 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %s %uint_0 %idx %uint_8
+         %59 = OpLoad %_arr_v4int_uint_4 %58
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %60
+         %62 = OpLabel
+         %64 = OpLoad %uint %idx_1
+         %63 = OpFunctionCall %void %main_inner %64
                OpReturn
                OpFunctionEnd
diff --git a/test/buffer/storage/dynamic_index/write.wgsl.expected.spvasm b/test/buffer/storage/dynamic_index/write.wgsl.expected.spvasm
index ca9c2b3..c7d951c 100644
--- a/test/buffer/storage/dynamic_index/write.wgsl.expected.spvasm
+++ b/test/buffer/storage/dynamic_index/write.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 68
+; Bound: 65
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %idx_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %idx_1 "idx_1"
                OpName %S "S"
                OpMemberName %S 0 "arr"
                OpName %Inner "Inner"
@@ -20,8 +21,10 @@
                OpMemberName %Inner 7 "h"
                OpMemberName %Inner 8 "i"
                OpName %s "s"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
+               OpName %idx "idx"
                OpName %main "main"
+               OpDecorate %idx_1 BuiltIn LocalInvocationIndex
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpMemberDecorate %Inner 0 Offset 0
@@ -41,10 +44,11 @@
                OpDecorate %_runtimearr_Inner ArrayStride 176
                OpDecorate %s Binding 0
                OpDecorate %s DescriptorSet 0
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+      %idx_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-       %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
       %float = OpTypeFloat 32
     %v3float = OpTypeVector %float 3
@@ -59,64 +63,61 @@
           %S = OpTypeStruct %_runtimearr_Inner
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
           %s = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
-         %20 = OpTypeFunction %void
+         %20 = OpTypeFunction %void %uint
      %uint_0 = OpConstant %uint 0
 %_ptr_StorageBuffer_v3int = OpTypePointer StorageBuffer %v3int
          %28 = OpConstantNull %v3int
      %uint_1 = OpConstant %uint 1
 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-         %33 = OpConstantNull %int
+         %32 = OpConstantNull %int
      %uint_2 = OpConstant %uint 2
 %_ptr_StorageBuffer_v3uint = OpTypePointer StorageBuffer %v3uint
-         %38 = OpConstantNull %v3uint
+         %36 = OpConstantNull %v3uint
      %uint_3 = OpConstant %uint 3
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-         %43 = OpConstantNull %uint
+         %40 = OpConstantNull %uint
 %_ptr_StorageBuffer_v3float = OpTypePointer StorageBuffer %v3float
-         %47 = OpConstantNull %v3float
+         %43 = OpConstantNull %v3float
      %uint_5 = OpConstant %uint 5
 %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-         %52 = OpConstantNull %float
+         %47 = OpConstantNull %float
      %uint_6 = OpConstant %uint 6
 %_ptr_StorageBuffer_mat2v3float = OpTypePointer StorageBuffer %mat2v3float
-         %57 = OpConstantNull %mat2v3float
+         %51 = OpConstantNull %mat2v3float
      %uint_7 = OpConstant %uint 7
 %_ptr_StorageBuffer_mat3v2float = OpTypePointer StorageBuffer %mat3v2float
-         %62 = OpConstantNull %mat3v2float
+         %55 = OpConstantNull %mat3v2float
      %uint_8 = OpConstant %uint 8
 %_ptr_StorageBuffer__arr_v4int_uint_4 = OpTypePointer StorageBuffer %_arr_v4int_uint_4
-         %67 = OpConstantNull %_arr_v4int_uint_4
-       %main = OpFunction %void None %20
-         %23 = OpLabel
-         %25 = OpLoad %uint %tint_symbol
-         %27 = OpAccessChain %_ptr_StorageBuffer_v3int %s %uint_0 %25 %uint_0
+         %59 = OpConstantNull %_arr_v4int_uint_4
+         %60 = OpTypeFunction %void
+ %main_inner = OpFunction %void None %20
+        %idx = OpFunctionParameter %uint
+         %24 = OpLabel
+         %27 = OpAccessChain %_ptr_StorageBuffer_v3int %s %uint_0 %idx %uint_0
                OpStore %27 %28
-         %29 = OpLoad %uint %tint_symbol
-         %32 = OpAccessChain %_ptr_StorageBuffer_int %s %uint_0 %29 %uint_1
-               OpStore %32 %33
-         %34 = OpLoad %uint %tint_symbol
-         %37 = OpAccessChain %_ptr_StorageBuffer_v3uint %s %uint_0 %34 %uint_2
-               OpStore %37 %38
-         %39 = OpLoad %uint %tint_symbol
-         %42 = OpAccessChain %_ptr_StorageBuffer_uint %s %uint_0 %39 %uint_3
+         %31 = OpAccessChain %_ptr_StorageBuffer_int %s %uint_0 %idx %uint_1
+               OpStore %31 %32
+         %35 = OpAccessChain %_ptr_StorageBuffer_v3uint %s %uint_0 %idx %uint_2
+               OpStore %35 %36
+         %39 = OpAccessChain %_ptr_StorageBuffer_uint %s %uint_0 %idx %uint_3
+               OpStore %39 %40
+         %42 = OpAccessChain %_ptr_StorageBuffer_v3float %s %uint_0 %idx %uint_4
                OpStore %42 %43
-         %44 = OpLoad %uint %tint_symbol
-         %46 = OpAccessChain %_ptr_StorageBuffer_v3float %s %uint_0 %44 %uint_4
+         %46 = OpAccessChain %_ptr_StorageBuffer_float %s %uint_0 %idx %uint_5
                OpStore %46 %47
-         %48 = OpLoad %uint %tint_symbol
-         %51 = OpAccessChain %_ptr_StorageBuffer_float %s %uint_0 %48 %uint_5
-               OpStore %51 %52
-         %53 = OpLoad %uint %tint_symbol
-         %56 = OpAccessChain %_ptr_StorageBuffer_mat2v3float %s %uint_0 %53 %uint_6
-               OpStore %56 %57
-         %58 = OpLoad %uint %tint_symbol
-         %61 = OpAccessChain %_ptr_StorageBuffer_mat3v2float %s %uint_0 %58 %uint_7
-               OpStore %61 %62
-         %63 = OpLoad %uint %tint_symbol
-         %66 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %s %uint_0 %63 %uint_8
-               OpStore %66 %67
+         %50 = OpAccessChain %_ptr_StorageBuffer_mat2v3float %s %uint_0 %idx %uint_6
+               OpStore %50 %51
+         %54 = OpAccessChain %_ptr_StorageBuffer_mat3v2float %s %uint_0 %idx %uint_7
+               OpStore %54 %55
+         %58 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %s %uint_0 %idx %uint_8
+               OpStore %58 %59
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %60
+         %62 = OpLabel
+         %64 = OpLoad %uint %idx_1
+         %63 = OpFunctionCall %void %main_inner %64
                OpReturn
                OpFunctionEnd
diff --git a/test/buffer/uniform/dynamic_index/read.wgsl.expected.spvasm b/test/buffer/uniform/dynamic_index/read.wgsl.expected.spvasm
index 4ea6207..e00a927 100644
--- a/test/buffer/uniform/dynamic_index/read.wgsl.expected.spvasm
+++ b/test/buffer/uniform/dynamic_index/read.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 68
+; Bound: 65
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %idx_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %idx_1 "idx_1"
                OpName %S "S"
                OpMemberName %S 0 "arr"
                OpName %Inner "Inner"
@@ -22,8 +23,10 @@
                OpMemberName %Inner 9 "j"
                OpMemberName %Inner 10 "k"
                OpName %s "s"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
+               OpName %idx "idx"
                OpName %main "main"
+               OpDecorate %idx_1 BuiltIn LocalInvocationIndex
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpMemberDecorate %Inner 0 Offset 0
@@ -46,10 +49,11 @@
                OpDecorate %s NonWritable
                OpDecorate %s Binding 0
                OpDecorate %s DescriptorSet 0
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+      %idx_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
-       %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
       %float = OpTypeFloat 32
     %v3float = OpTypeVector %float 3
@@ -66,10 +70,8 @@
           %S = OpTypeStruct %_arr_Inner_uint_8
 %_ptr_Uniform_S = OpTypePointer Uniform %S
           %s = OpVariable %_ptr_Uniform_S Uniform
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
-         %22 = OpTypeFunction %void
+         %22 = OpTypeFunction %void %uint
      %uint_0 = OpConstant %uint 0
 %_ptr_Uniform_v3int = OpTypePointer Uniform %v3int
      %uint_1 = OpConstant %uint 1
@@ -85,34 +87,33 @@
 %_ptr_Uniform_v2int = OpTypePointer Uniform %v2int
      %uint_7 = OpConstant %uint 7
 %_ptr_Uniform_mat2v3float = OpTypePointer Uniform %mat2v3float
-       %main = OpFunction %void None %22
-         %25 = OpLabel
-         %27 = OpLoad %uint %tint_symbol
-         %29 = OpAccessChain %_ptr_Uniform_v3int %s %uint_0 %27 %uint_0
+         %60 = OpTypeFunction %void
+ %main_inner = OpFunction %void None %22
+        %idx = OpFunctionParameter %uint
+         %26 = OpLabel
+         %29 = OpAccessChain %_ptr_Uniform_v3int %s %uint_0 %idx %uint_0
          %30 = OpLoad %v3int %29
-         %31 = OpLoad %uint %tint_symbol
-         %34 = OpAccessChain %_ptr_Uniform_int %s %uint_0 %31 %uint_1
-         %35 = OpLoad %int %34
-         %36 = OpLoad %uint %tint_symbol
-         %39 = OpAccessChain %_ptr_Uniform_v3uint %s %uint_0 %36 %uint_2
-         %40 = OpLoad %v3uint %39
-         %41 = OpLoad %uint %tint_symbol
-         %44 = OpAccessChain %_ptr_Uniform_uint %s %uint_0 %41 %uint_3
-         %45 = OpLoad %uint %44
-         %46 = OpLoad %uint %tint_symbol
-         %48 = OpAccessChain %_ptr_Uniform_v3float %s %uint_0 %46 %uint_4
-         %49 = OpLoad %v3float %48
-         %50 = OpLoad %uint %tint_symbol
-         %53 = OpAccessChain %_ptr_Uniform_float %s %uint_0 %50 %uint_5
-         %54 = OpLoad %float %53
-         %55 = OpLoad %uint %tint_symbol
-         %58 = OpAccessChain %_ptr_Uniform_v2int %s %uint_0 %55 %uint_6
-         %59 = OpLoad %v2int %58
-         %60 = OpLoad %uint %tint_symbol
-         %62 = OpAccessChain %_ptr_Uniform_v2int %s %uint_0 %60 %uint_7
-         %63 = OpLoad %v2int %62
-         %64 = OpLoad %uint %tint_symbol
-         %66 = OpAccessChain %_ptr_Uniform_mat2v3float %s %uint_0 %64 %uint_8
-         %67 = OpLoad %mat2v3float %66
+         %33 = OpAccessChain %_ptr_Uniform_int %s %uint_0 %idx %uint_1
+         %34 = OpLoad %int %33
+         %37 = OpAccessChain %_ptr_Uniform_v3uint %s %uint_0 %idx %uint_2
+         %38 = OpLoad %v3uint %37
+         %41 = OpAccessChain %_ptr_Uniform_uint %s %uint_0 %idx %uint_3
+         %42 = OpLoad %uint %41
+         %44 = OpAccessChain %_ptr_Uniform_v3float %s %uint_0 %idx %uint_4
+         %45 = OpLoad %v3float %44
+         %48 = OpAccessChain %_ptr_Uniform_float %s %uint_0 %idx %uint_5
+         %49 = OpLoad %float %48
+         %52 = OpAccessChain %_ptr_Uniform_v2int %s %uint_0 %idx %uint_6
+         %53 = OpLoad %v2int %52
+         %55 = OpAccessChain %_ptr_Uniform_v2int %s %uint_0 %idx %uint_7
+         %56 = OpLoad %v2int %55
+         %58 = OpAccessChain %_ptr_Uniform_mat2v3float %s %uint_0 %idx %uint_8
+         %59 = OpLoad %mat2v3float %58
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %60
+         %62 = OpLabel
+         %64 = OpLoad %uint %idx_1
+         %63 = OpFunctionCall %void %main_inner %64
                OpReturn
                OpFunctionEnd
diff --git a/test/bug/dawn/947.wgsl.expected.spvasm b/test/bug/dawn/947.wgsl.expected.spvasm
index 2f6571e..cfe88b2 100644
--- a/test/bug/dawn/947.wgsl.expected.spvasm
+++ b/test/bug/dawn/947.wgsl.expected.spvasm
@@ -1,221 +1,217 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 141
+; Bound: 137
 ; Schema: 0
                OpCapability Shader
-        %120 = OpExtInstImport "GLSL.std.450"
+        %116 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vs_main "vs_main" %tint_pointsize %tint_symbol %tint_symbol_2 %tint_symbol_3
-               OpEntryPoint Fragment %fs_main "fs_main" %tint_symbol_5 %tint_symbol_7
+               OpEntryPoint Vertex %vs_main "vs_main" %VertexIndex_1 %texcoords_1 %position_1 %vertex_point_size
+               OpEntryPoint Fragment %fs_main "fs_main" %texcoord_1 %value
                OpExecutionMode %fs_main OriginUpperLeft
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %VertexIndex_1 "VertexIndex_1"
+               OpName %texcoords_1 "texcoords_1"
+               OpName %position_1 "position_1"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %texcoord_1 "texcoord_1"
+               OpName %value "value"
                OpName %Uniforms "Uniforms"
                OpMemberName %Uniforms 0 "u_scale"
                OpMemberName %Uniforms 1 "u_offset"
                OpName %uniforms "uniforms"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %mySampler "mySampler"
                OpName %myTexture "myTexture"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_7 "tint_symbol_7"
                OpName %VertexOutputs "VertexOutputs"
                OpMemberName %VertexOutputs 0 "texcoords"
                OpMemberName %VertexOutputs 1 "position"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %vs_main "vs_main"
+               OpName %vs_main_inner "vs_main_inner"
+               OpName %VertexIndex "VertexIndex"
                OpName %texcoord "texcoord"
                OpName %output "output"
                OpName %flipY "flipY"
-               OpName %tint_symbol_8 "tint_symbol_8"
-               OpName %tint_symbol_6 "tint_symbol_6"
-               OpName %fs_main "fs_main"
+               OpName %vs_main "vs_main"
+               OpName %fs_main_inner "fs_main_inner"
+               OpName %texcoord_0 "texcoord"
                OpName %clampedTexcoord "clampedTexcoord"
                OpName %srcColor "srcColor"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpName %fs_main "fs_main"
+               OpDecorate %VertexIndex_1 BuiltIn VertexIndex
+               OpDecorate %texcoords_1 Location 0
+               OpDecorate %position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %texcoord_1 Location 0
+               OpDecorate %value Location 0
                OpDecorate %Uniforms Block
                OpMemberDecorate %Uniforms 0 Offset 0
                OpMemberDecorate %Uniforms 1 Offset 8
                OpDecorate %uniforms NonWritable
                OpDecorate %uniforms Binding 0
                OpDecorate %uniforms DescriptorSet 0
-               OpDecorate %tint_symbol BuiltIn VertexIndex
-               OpDecorate %tint_symbol_2 Location 0
-               OpDecorate %tint_symbol_3 BuiltIn Position
                OpDecorate %mySampler Binding 1
                OpDecorate %mySampler DescriptorSet 0
                OpDecorate %myTexture Binding 2
                OpDecorate %myTexture DescriptorSet 0
-               OpDecorate %tint_symbol_5 Location 0
-               OpDecorate %tint_symbol_7 Location 0
                OpMemberDecorate %VertexOutputs 0 Offset 0
                OpMemberDecorate %VertexOutputs 1 Offset 16
                OpDecorate %_arr_v2float_uint_3 ArrayStride 8
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%VertexIndex_1 = OpVariable %_ptr_Input_uint Input
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v2float = OpTypeVector %float 2
+%_ptr_Output_v2float = OpTypePointer Output %v2float
+          %8 = OpConstantNull %v2float
+%texcoords_1 = OpVariable %_ptr_Output_v2float Output %8
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+         %12 = OpConstantNull %v4float
+ %position_1 = OpVariable %_ptr_Output_v4float Output %12
+%_ptr_Output_float = OpTypePointer Output %float
+         %15 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %15
+%_ptr_Input_v2float = OpTypePointer Input %v2float
+ %texcoord_1 = OpVariable %_ptr_Input_v2float Input
+      %value = OpVariable %_ptr_Output_v4float Output %12
    %Uniforms = OpTypeStruct %v2float %v2float
 %_ptr_Uniform_Uniforms = OpTypePointer Uniform %Uniforms
    %uniforms = OpVariable %_ptr_Uniform_Uniforms Uniform
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
-%_ptr_Output_v2float = OpTypePointer Output %v2float
-         %14 = OpConstantNull %v2float
-%tint_symbol_2 = OpVariable %_ptr_Output_v2float Output %14
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-         %18 = OpConstantNull %v4float
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %18
-         %21 = OpTypeSampler
-%_ptr_UniformConstant_21 = OpTypePointer UniformConstant %21
-  %mySampler = OpVariable %_ptr_UniformConstant_21 UniformConstant
-         %24 = OpTypeImage %float 2D 0 0 0 1 Unknown
+         %24 = OpTypeSampler
 %_ptr_UniformConstant_24 = OpTypePointer UniformConstant %24
-  %myTexture = OpVariable %_ptr_UniformConstant_24 UniformConstant
-%_ptr_Input_v2float = OpTypePointer Input %v2float
-%tint_symbol_5 = OpVariable %_ptr_Input_v2float Input
-%tint_symbol_7 = OpVariable %_ptr_Output_v4float Output %18
-       %void = OpTypeVoid
+  %mySampler = OpVariable %_ptr_UniformConstant_24 UniformConstant
+         %27 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_27 = OpTypePointer UniformConstant %27
+  %myTexture = OpVariable %_ptr_UniformConstant_27 UniformConstant
 %VertexOutputs = OpTypeStruct %v2float %v4float
-         %28 = OpTypeFunction %void %VertexOutputs
-         %36 = OpTypeFunction %void
-    %float_1 = OpConstant %float 1
+         %28 = OpTypeFunction %VertexOutputs %uint
      %uint_3 = OpConstant %uint 3
 %_arr_v2float_uint_3 = OpTypeArray %v2float %uint_3
  %float_n0_5 = OpConstant %float -0.5
     %float_0 = OpConstant %float 0
-         %44 = OpConstantComposite %v2float %float_n0_5 %float_0
+         %37 = OpConstantComposite %v2float %float_n0_5 %float_0
   %float_1_5 = OpConstant %float 1.5
-         %46 = OpConstantComposite %v2float %float_1_5 %float_0
+         %39 = OpConstantComposite %v2float %float_1_5 %float_0
   %float_0_5 = OpConstant %float 0.5
     %float_2 = OpConstant %float 2
-         %49 = OpConstantComposite %v2float %float_0_5 %float_2
-         %50 = OpConstantComposite %_arr_v2float_uint_3 %44 %46 %49
+         %42 = OpConstantComposite %v2float %float_0_5 %float_2
+         %43 = OpConstantComposite %_arr_v2float_uint_3 %37 %39 %42
 %_ptr_Function__arr_v2float_uint_3 = OpTypePointer Function %_arr_v2float_uint_3
-         %53 = OpConstantNull %_arr_v2float_uint_3
+         %46 = OpConstantNull %_arr_v2float_uint_3
 %_ptr_Function_VertexOutputs = OpTypePointer Function %VertexOutputs
-         %56 = OpConstantNull %VertexOutputs
+         %49 = OpConstantNull %VertexOutputs
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %65 = OpConstantComposite %v2float %float_1 %float_1
+    %float_1 = OpConstant %float 1
+         %58 = OpConstantComposite %v2float %float_1 %float_1
      %uint_0 = OpConstant %uint 0
 %_ptr_Uniform_float = OpTypePointer Uniform %float
        %bool = OpTypeBool
 %_ptr_Function_bool = OpTypePointer Function %bool
-         %78 = OpConstantNull %bool
+         %71 = OpConstantNull %bool
 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
    %float_n1 = OpConstant %float -1
-         %95 = OpConstantComposite %v2float %float_1 %float_n1
-         %97 = OpConstantComposite %v2float %float_0 %float_1
-        %113 = OpTypeFunction %void %v4float
-        %122 = OpConstantComposite %v2float %float_0 %float_0
+         %87 = OpConstantComposite %v2float %float_1 %float_n1
+         %89 = OpConstantComposite %v2float %float_0 %float_1
+       %void = OpTypeVoid
+        %103 = OpTypeFunction %void
+        %111 = OpTypeFunction %v4float %v2float
+        %117 = OpConstantComposite %v2float %float_0 %float_0
      %v2bool = OpTypeVector %bool 2
-        %135 = OpTypeSampledImage %24
-%tint_symbol_4 = OpFunction %void None %28
-%tint_symbol_1 = OpFunctionParameter %VertexOutputs
-         %33 = OpLabel
-         %34 = OpCompositeExtract %v2float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %34
-         %35 = OpCompositeExtract %v4float %tint_symbol_1 1
-               OpStore %tint_symbol_3 %35
+        %129 = OpTypeSampledImage %27
+%vs_main_inner = OpFunction %VertexOutputs None %28
+%VertexIndex = OpFunctionParameter %uint
+         %32 = OpLabel
+   %texcoord = OpVariable %_ptr_Function__arr_v2float_uint_3 Function %46
+     %output = OpVariable %_ptr_Function_VertexOutputs Function %49
+      %flipY = OpVariable %_ptr_Function_bool Function %71
+               OpStore %texcoord %43
+         %52 = OpAccessChain %_ptr_Function_v4float %output %uint_1
+         %54 = OpAccessChain %_ptr_Function_v2float %texcoord %VertexIndex
+         %55 = OpLoad %v2float %54
+         %56 = OpVectorTimesScalar %v2float %55 %float_2
+         %59 = OpFSub %v2float %56 %58
+         %60 = OpCompositeExtract %float %59 0
+         %61 = OpCompositeExtract %float %59 1
+         %62 = OpCompositeConstruct %v4float %60 %61 %float_0 %float_1
+               OpStore %52 %62
+         %65 = OpAccessChain %_ptr_Uniform_float %uniforms %uint_0 %uint_1
+         %66 = OpLoad %float %65
+         %67 = OpFOrdLessThan %bool %66 %float_0
+               OpStore %flipY %67
+         %72 = OpLoad %bool %flipY
+               OpSelectionMerge %73 None
+               OpBranchConditional %72 %74 %75
+         %74 = OpLabel
+         %76 = OpAccessChain %_ptr_Function_v2float %output %uint_0
+         %77 = OpAccessChain %_ptr_Function_v2float %texcoord %VertexIndex
+         %78 = OpLoad %v2float %77
+         %80 = OpAccessChain %_ptr_Uniform_v2float %uniforms %uint_0
+         %81 = OpLoad %v2float %80
+         %82 = OpFMul %v2float %78 %81
+         %83 = OpAccessChain %_ptr_Uniform_v2float %uniforms %uint_1
+         %84 = OpLoad %v2float %83
+         %85 = OpFAdd %v2float %82 %84
+         %88 = OpFMul %v2float %85 %87
+         %90 = OpFAdd %v2float %88 %89
+               OpStore %76 %90
+               OpBranch %73
+         %75 = OpLabel
+         %91 = OpAccessChain %_ptr_Function_v2float %output %uint_0
+         %92 = OpAccessChain %_ptr_Function_v2float %texcoord %VertexIndex
+         %93 = OpLoad %v2float %92
+         %94 = OpFMul %v2float %93 %87
+         %95 = OpFAdd %v2float %94 %89
+         %96 = OpAccessChain %_ptr_Uniform_v2float %uniforms %uint_0
+         %97 = OpLoad %v2float %96
+         %98 = OpFMul %v2float %95 %97
+         %99 = OpAccessChain %_ptr_Uniform_v2float %uniforms %uint_1
+        %100 = OpLoad %v2float %99
+        %101 = OpFAdd %v2float %98 %100
+               OpStore %91 %101
+               OpBranch %73
+         %73 = OpLabel
+        %102 = OpLoad %VertexOutputs %output
+               OpReturnValue %102
+               OpFunctionEnd
+    %vs_main = OpFunction %void None %103
+        %106 = OpLabel
+        %108 = OpLoad %uint %VertexIndex_1
+        %107 = OpFunctionCall %VertexOutputs %vs_main_inner %108
+        %109 = OpCompositeExtract %v2float %107 0
+               OpStore %texcoords_1 %109
+        %110 = OpCompositeExtract %v4float %107 1
+               OpStore %position_1 %110
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
-    %vs_main = OpFunction %void None %36
-         %38 = OpLabel
-   %texcoord = OpVariable %_ptr_Function__arr_v2float_uint_3 Function %53
-     %output = OpVariable %_ptr_Function_VertexOutputs Function %56
-      %flipY = OpVariable %_ptr_Function_bool Function %78
-               OpStore %tint_pointsize %float_1
-               OpStore %texcoord %50
-         %59 = OpAccessChain %_ptr_Function_v4float %output %uint_1
-         %60 = OpLoad %uint %tint_symbol
-         %62 = OpAccessChain %_ptr_Function_v2float %texcoord %60
-         %63 = OpLoad %v2float %62
-         %64 = OpVectorTimesScalar %v2float %63 %float_2
-         %66 = OpFSub %v2float %64 %65
-         %67 = OpCompositeExtract %float %66 0
-         %68 = OpCompositeExtract %float %66 1
-         %69 = OpCompositeConstruct %v4float %67 %68 %float_0 %float_1
-               OpStore %59 %69
-         %72 = OpAccessChain %_ptr_Uniform_float %uniforms %uint_0 %uint_1
-         %73 = OpLoad %float %72
-         %74 = OpFOrdLessThan %bool %73 %float_0
-               OpStore %flipY %74
-         %79 = OpLoad %bool %flipY
-               OpSelectionMerge %80 None
-               OpBranchConditional %79 %81 %82
-         %81 = OpLabel
-         %83 = OpAccessChain %_ptr_Function_v2float %output %uint_0
-         %84 = OpLoad %uint %tint_symbol
-         %85 = OpAccessChain %_ptr_Function_v2float %texcoord %84
-         %86 = OpLoad %v2float %85
-         %88 = OpAccessChain %_ptr_Uniform_v2float %uniforms %uint_0
-         %89 = OpLoad %v2float %88
-         %90 = OpFMul %v2float %86 %89
-         %91 = OpAccessChain %_ptr_Uniform_v2float %uniforms %uint_1
-         %92 = OpLoad %v2float %91
-         %93 = OpFAdd %v2float %90 %92
-         %96 = OpFMul %v2float %93 %95
-         %98 = OpFAdd %v2float %96 %97
-               OpStore %83 %98
-               OpBranch %80
-         %82 = OpLabel
-         %99 = OpAccessChain %_ptr_Function_v2float %output %uint_0
-        %100 = OpLoad %uint %tint_symbol
-        %101 = OpAccessChain %_ptr_Function_v2float %texcoord %100
-        %102 = OpLoad %v2float %101
-        %103 = OpFMul %v2float %102 %95
-        %104 = OpFAdd %v2float %103 %97
-        %105 = OpAccessChain %_ptr_Uniform_v2float %uniforms %uint_0
-        %106 = OpLoad %v2float %105
-        %107 = OpFMul %v2float %104 %106
-        %108 = OpAccessChain %_ptr_Uniform_v2float %uniforms %uint_1
-        %109 = OpLoad %v2float %108
-        %110 = OpFAdd %v2float %107 %109
-               OpStore %99 %110
-               OpBranch %80
-         %80 = OpLabel
-        %112 = OpLoad %VertexOutputs %output
-        %111 = OpFunctionCall %void %tint_symbol_4 %112
-               OpReturn
-               OpFunctionEnd
-%tint_symbol_8 = OpFunction %void None %113
-%tint_symbol_6 = OpFunctionParameter %v4float
-        %116 = OpLabel
-               OpStore %tint_symbol_7 %tint_symbol_6
-               OpReturn
-               OpFunctionEnd
-    %fs_main = OpFunction %void None %36
-        %118 = OpLabel
-%clampedTexcoord = OpVariable %_ptr_Function_v2float Function %14
-   %srcColor = OpVariable %_ptr_Function_v4float Function %18
-        %121 = OpLoad %v2float %tint_symbol_5
-        %119 = OpExtInst %v2float %120 NClamp %121 %122 %65
-               OpStore %clampedTexcoord %119
-        %126 = OpLoad %v2float %clampedTexcoord
-        %127 = OpLoad %v2float %tint_symbol_5
-        %128 = OpFOrdEqual %v2bool %126 %127
-        %125 = OpAll %bool %128
-        %124 = OpLogicalNot %bool %125
-               OpSelectionMerge %130 None
-               OpBranchConditional %124 %131 %130
-        %131 = OpLabel
+%fs_main_inner = OpFunction %v4float None %111
+ %texcoord_0 = OpFunctionParameter %v2float
+        %114 = OpLabel
+%clampedTexcoord = OpVariable %_ptr_Function_v2float Function %8
+   %srcColor = OpVariable %_ptr_Function_v4float Function %12
+        %115 = OpExtInst %v2float %116 NClamp %texcoord_0 %117 %58
+               OpStore %clampedTexcoord %115
+        %121 = OpLoad %v2float %clampedTexcoord
+        %122 = OpFOrdEqual %v2bool %121 %texcoord_0
+        %120 = OpAll %bool %122
+        %119 = OpLogicalNot %bool %120
+               OpSelectionMerge %124 None
+               OpBranchConditional %119 %125 %124
+        %125 = OpLabel
                OpKill
-        %130 = OpLabel
-        %133 = OpLoad %21 %mySampler
-        %134 = OpLoad %24 %myTexture
-        %136 = OpSampledImage %135 %134 %133
-        %137 = OpLoad %v2float %tint_symbol_5
-        %132 = OpImageSampleImplicitLod %v4float %136 %137
-               OpStore %srcColor %132
-        %140 = OpLoad %v4float %srcColor
-        %139 = OpFunctionCall %void %tint_symbol_8 %140
+        %124 = OpLabel
+        %127 = OpLoad %24 %mySampler
+        %128 = OpLoad %27 %myTexture
+        %130 = OpSampledImage %129 %128 %127
+        %126 = OpImageSampleImplicitLod %v4float %130 %texcoord_0
+               OpStore %srcColor %126
+        %132 = OpLoad %v4float %srcColor
+               OpReturnValue %132
+               OpFunctionEnd
+    %fs_main = OpFunction %void None %103
+        %134 = OpLabel
+        %136 = OpLoad %v2float %texcoord_1
+        %135 = OpFunctionCall %v4float %fs_main_inner %136
+               OpStore %value %135
                OpReturn
                OpFunctionEnd
diff --git a/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.spvasm b/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.spvasm
index dfe9497..fcbdc4d 100644
--- a/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.spvasm
+++ b/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %f "f" %tint_symbol
+               OpEntryPoint GLCompute %f "f" %local_invocation_index_1
                OpExecutionMode %f LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %UBO "UBO"
                OpMemberName %UBO 0 "dynamic_idx"
                OpName %ubo "ubo"
@@ -16,9 +17,11 @@
                OpName %S "S"
                OpMemberName %S 0 "data"
                OpName %s "s"
-               OpName %tint_symbol "tint_symbol"
-               OpName %f "f"
+               OpName %f_inner "f_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %idx "idx"
+               OpName %f "f"
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
                OpDecorate %UBO Block
                OpMemberDecorate %UBO 0 Offset 0
                OpDecorate %ubo NonWritable
@@ -30,7 +33,9 @@
                OpDecorate %result Binding 1
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_arr_int_uint_64 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
         %UBO = OpTypeStruct %int
 %_ptr_Uniform_UBO = OpTypePointer Uniform %UBO
@@ -38,16 +43,13 @@
      %Result = OpTypeStruct %int
 %_ptr_StorageBuffer_Result = OpTypePointer StorageBuffer %Result
      %result = OpVariable %_ptr_StorageBuffer_Result StorageBuffer
-       %uint = OpTypeInt 32 0
     %uint_64 = OpConstant %uint 64
 %_arr_int_uint_64 = OpTypeArray %int %uint_64
           %S = OpTypeStruct %_arr_int_uint_64
 %_ptr_Workgroup_S = OpTypePointer Workgroup %S
           %s = OpVariable %_ptr_Workgroup_S Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
-         %16 = OpTypeFunction %void
+         %16 = OpTypeFunction %void %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
          %23 = OpConstantNull %uint
        %bool = OpTypeBool
@@ -59,11 +61,12 @@
    %uint_264 = OpConstant %uint 264
 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
 %_ptr_Uniform_int = OpTypePointer Uniform %int
-          %f = OpFunction %void None %16
-         %19 = OpLabel
+         %52 = OpTypeFunction %void
+    %f_inner = OpFunction %void None %16
+%local_invocation_index = OpFunctionParameter %uint
+         %20 = OpLabel
         %idx = OpVariable %_ptr_Function_uint Function %23
-         %20 = OpLoad %uint %tint_symbol
-               OpStore %idx %20
+               OpStore %idx %local_invocation_index
                OpBranch %24
          %24 = OpLabel
                OpLoopMerge %25 %26 None
@@ -96,3 +99,9 @@
                OpStore %46 %51
                OpReturn
                OpFunctionEnd
+          %f = OpFunction %void None %52
+         %54 = OpLabel
+         %56 = OpLoad %uint %local_invocation_index_1
+         %55 = OpFunctionCall %void %f_inner %56
+               OpReturn
+               OpFunctionEnd
diff --git a/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.spvasm b/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.spvasm
index 8073672..830149d 100644
--- a/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.spvasm
+++ b/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %f "f" %tint_symbol
+               OpEntryPoint GLCompute %f "f" %local_invocation_index_1
                OpExecutionMode %f LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %UBO "UBO"
                OpMemberName %UBO 0 "dynamic_idx"
                OpName %ubo "ubo"
@@ -16,9 +17,11 @@
                OpName %S "S"
                OpMemberName %S 0 "data"
                OpName %s "s"
-               OpName %tint_symbol "tint_symbol"
-               OpName %f "f"
+               OpName %f_inner "f_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %idx "idx"
+               OpName %f "f"
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
                OpDecorate %UBO Block
                OpMemberDecorate %UBO 0 Offset 0
                OpDecorate %ubo NonWritable
@@ -30,7 +33,9 @@
                OpDecorate %result Binding 1
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_arr_int_uint_64 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
         %UBO = OpTypeStruct %int
 %_ptr_Uniform_UBO = OpTypePointer Uniform %UBO
@@ -38,16 +43,13 @@
      %Result = OpTypeStruct %int
 %_ptr_StorageBuffer_Result = OpTypePointer StorageBuffer %Result
      %result = OpVariable %_ptr_StorageBuffer_Result StorageBuffer
-       %uint = OpTypeInt 32 0
     %uint_64 = OpConstant %uint 64
 %_arr_int_uint_64 = OpTypeArray %int %uint_64
           %S = OpTypeStruct %_arr_int_uint_64
 %_ptr_Workgroup_S = OpTypePointer Workgroup %S
           %s = OpVariable %_ptr_Workgroup_S Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
-         %16 = OpTypeFunction %void
+         %16 = OpTypeFunction %void %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
          %23 = OpConstantNull %uint
        %bool = OpTypeBool
@@ -61,11 +63,12 @@
       %int_1 = OpConstant %int 1
 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
       %int_3 = OpConstant %int 3
-          %f = OpFunction %void None %16
-         %19 = OpLabel
+         %55 = OpTypeFunction %void
+    %f_inner = OpFunction %void None %16
+%local_invocation_index = OpFunctionParameter %uint
+         %20 = OpLabel
         %idx = OpVariable %_ptr_Function_uint Function %23
-         %20 = OpLoad %uint %tint_symbol
-               OpStore %idx %20
+               OpStore %idx %local_invocation_index
                OpBranch %24
          %24 = OpLabel
                OpLoopMerge %25 %26 None
@@ -100,3 +103,9 @@
                OpStore %51 %54
                OpReturn
                OpFunctionEnd
+          %f = OpFunction %void None %55
+         %57 = OpLabel
+         %59 = OpLoad %uint %local_invocation_index_1
+         %58 = OpFunctionCall %void %f_inner %59
+               OpReturn
+               OpFunctionEnd
diff --git a/test/bug/tint/1046.wgsl.expected.spvasm b/test/bug/tint/1046.wgsl.expected.spvasm
index 9623706..7d91278 100644
--- a/test/bug/tint/1046.wgsl.expected.spvasm
+++ b/test/bug/tint/1046.wgsl.expected.spvasm
@@ -5,8 +5,14 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4 %tint_symbol_7
+               OpEntryPoint Fragment %main "main" %position_1 %view_position_1 %normal_1 %uv_1 %color_1 %color_2
                OpExecutionMode %main OriginUpperLeft
+               OpName %position_1 "position_1"
+               OpName %view_position_1 "view_position_1"
+               OpName %normal_1 "normal_1"
+               OpName %uv_1 "uv_1"
+               OpName %color_1 "color_1"
+               OpName %color_2 "color_2"
                OpName %Uniforms "Uniforms"
                OpMemberName %Uniforms 0 "worldView"
                OpMemberName %Uniforms 1 "proj"
@@ -21,12 +27,6 @@
                OpName %pointLights "pointLights"
                OpName %mySampler "mySampler"
                OpName %myTexture "myTexture"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_7 "tint_symbol_7"
                OpName %FragmentInput "FragmentInput"
                OpMemberName %FragmentInput 0 "position"
                OpMemberName %FragmentInput 1 "view_position"
@@ -38,10 +38,16 @@
                OpName %color "color"
                OpName %FragmentOutput "FragmentOutput"
                OpMemberName %FragmentOutput 0 "color"
-               OpName %tint_symbol_8 "tint_symbol_8"
-               OpName %tint_symbol_6 "tint_symbol_6"
-               OpName %main "main"
+               OpName %main_inner "main_inner"
+               OpName %fragment_0 "fragment"
                OpName %output "output"
+               OpName %main "main"
+               OpDecorate %position_1 BuiltIn FragCoord
+               OpDecorate %view_position_1 Location 0
+               OpDecorate %normal_1 Location 1
+               OpDecorate %uv_1 Location 2
+               OpDecorate %color_1 Location 3
+               OpDecorate %color_2 Location 0
                OpDecorate %Uniforms Block
                OpMemberDecorate %Uniforms 0 Offset 0
                OpMemberDecorate %Uniforms 0 ColMajor
@@ -66,12 +72,6 @@
                OpDecorate %mySampler DescriptorSet 0
                OpDecorate %myTexture Binding 3
                OpDecorate %myTexture DescriptorSet 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_2 Location 1
-               OpDecorate %tint_symbol_3 Location 2
-               OpDecorate %tint_symbol_4 Location 3
-               OpDecorate %tint_symbol_7 Location 0
                OpMemberDecorate %FragmentInput 0 Offset 0
                OpMemberDecorate %FragmentInput 1 Offset 16
                OpMemberDecorate %FragmentInput 2 Offset 32
@@ -80,6 +80,17 @@
                OpMemberDecorate %FragmentOutput 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+ %position_1 = OpVariable %_ptr_Input_v4float Input
+%view_position_1 = OpVariable %_ptr_Input_v4float Input
+   %normal_1 = OpVariable %_ptr_Input_v4float Input
+    %v2float = OpTypeVector %float 2
+%_ptr_Input_v2float = OpTypePointer Input %v2float
+       %uv_1 = OpVariable %_ptr_Input_v2float Input
+    %color_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+         %13 = OpConstantNull %v4float
+    %color_2 = OpVariable %_ptr_Output_v4float Output %13
 %mat4v4float = OpTypeMatrix %v4float 4
        %uint = OpTypeInt 32 0
    %Uniforms = OpTypeStruct %mat4v4float %mat4v4float %uint %uint %v4float
@@ -90,23 +101,12 @@
 %PointLights = OpTypeStruct %_runtimearr_PointLight
 %_ptr_StorageBuffer_PointLights = OpTypePointer StorageBuffer %PointLights
 %pointLights = OpVariable %_ptr_StorageBuffer_PointLights StorageBuffer
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-  %mySampler = OpVariable %_ptr_UniformConstant_15 UniformConstant
-         %18 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
-  %myTexture = OpVariable %_ptr_UniformConstant_18 UniformConstant
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%tint_symbol_1 = OpVariable %_ptr_Input_v4float Input
-%tint_symbol_2 = OpVariable %_ptr_Input_v4float Input
-    %v2float = OpTypeVector %float 2
-%_ptr_Input_v2float = OpTypePointer Input %v2float
-%tint_symbol_3 = OpVariable %_ptr_Input_v2float Input
-%tint_symbol_4 = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-         %29 = OpConstantNull %v4float
-%tint_symbol_7 = OpVariable %_ptr_Output_v4float Output %29
+         %26 = OpTypeSampler
+%_ptr_UniformConstant_26 = OpTypePointer UniformConstant %26
+  %mySampler = OpVariable %_ptr_UniformConstant_26 UniformConstant
+         %29 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_29 = OpTypePointer UniformConstant %29
+  %myTexture = OpVariable %_ptr_UniformConstant_29 UniformConstant
 %FragmentInput = OpTypeStruct %v4float %v4float %v4float %v2float %v4float
          %30 = OpTypeFunction %v4float %FragmentInput
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -120,19 +120,19 @@
      %uint_2 = OpConstant %uint 2
      %uint_4 = OpConstant %uint 4
 %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
-         %78 = OpTypeSampledImage %18
-       %void = OpTypeVoid
+         %78 = OpTypeSampledImage %29
 %FragmentOutput = OpTypeStruct %v4float
-         %82 = OpTypeFunction %void %FragmentOutput
-         %89 = OpTypeFunction %void
+         %82 = OpTypeFunction %FragmentOutput %FragmentInput
 %_ptr_Function_FragmentOutput = OpTypePointer Function %FragmentOutput
-        %100 = OpConstantNull %FragmentOutput
+         %89 = OpConstantNull %FragmentOutput
     %float_0 = OpConstant %float 0
-        %103 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+         %92 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+       %void = OpTypeVoid
+        %103 = OpTypeFunction %void
    %getColor = OpFunction %v4float None %30
    %fragment = OpFunctionParameter %FragmentInput
          %34 = OpLabel
-      %color = OpVariable %_ptr_Function_v4float Function %29
+      %color = OpVariable %_ptr_Function_v4float Function %13
          %39 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_3
          %40 = OpLoad %uint %39
          %42 = OpIEqual %bool %40 %uint_0
@@ -172,8 +172,8 @@
                OpSelectionMerge %73 None
                OpBranchConditional %72 %74 %73
          %74 = OpLabel
-         %76 = OpLoad %15 %mySampler
-         %77 = OpLoad %18 %myTexture
+         %76 = OpLoad %26 %mySampler
+         %77 = OpLoad %29 %myTexture
          %79 = OpSampledImage %78 %77 %76
          %80 = OpCompositeExtract %v2float %fragment 3
          %75 = OpImageSampleImplicitLod %v4float %79 %80
@@ -189,29 +189,29 @@
          %81 = OpLoad %v4float %color
                OpReturnValue %81
                OpFunctionEnd
-%tint_symbol_8 = OpFunction %void None %82
-%tint_symbol_6 = OpFunctionParameter %FragmentOutput
-         %87 = OpLabel
-         %88 = OpCompositeExtract %v4float %tint_symbol_6 0
-               OpStore %tint_symbol_7 %88
-               OpReturn
+ %main_inner = OpFunction %FragmentOutput None %82
+ %fragment_0 = OpFunctionParameter %FragmentInput
+         %86 = OpLabel
+     %output = OpVariable %_ptr_Function_FragmentOutput Function %89
+         %90 = OpAccessChain %_ptr_Function_v4float %output %uint_0
+               OpStore %90 %92
+         %95 = OpLoad %Uniforms %uniforms
+         %97 = OpLoad %26 %mySampler
+         %99 = OpLoad %29 %myTexture
+        %101 = OpLoad %PointLights %pointLights
+        %102 = OpLoad %FragmentOutput %output
+               OpReturnValue %102
                OpFunctionEnd
-       %main = OpFunction %void None %89
-         %91 = OpLabel
-     %output = OpVariable %_ptr_Function_FragmentOutput Function %100
-         %92 = OpLoad %v4float %tint_symbol
-         %93 = OpLoad %v4float %tint_symbol_1
-         %94 = OpLoad %v4float %tint_symbol_2
-         %95 = OpLoad %v2float %tint_symbol_3
-         %96 = OpLoad %v4float %tint_symbol_4
-         %97 = OpCompositeConstruct %FragmentInput %92 %93 %94 %95 %96
-        %101 = OpAccessChain %_ptr_Function_v4float %output %uint_0
-               OpStore %101 %103
-        %105 = OpLoad %Uniforms %uniforms
-        %107 = OpLoad %15 %mySampler
-        %109 = OpLoad %18 %myTexture
-        %111 = OpLoad %PointLights %pointLights
-        %113 = OpLoad %FragmentOutput %output
-        %112 = OpFunctionCall %void %tint_symbol_8 %113
+       %main = OpFunction %void None %103
+        %105 = OpLabel
+        %107 = OpLoad %v4float %position_1
+        %108 = OpLoad %v4float %view_position_1
+        %109 = OpLoad %v4float %normal_1
+        %110 = OpLoad %v2float %uv_1
+        %111 = OpLoad %v4float %color_1
+        %112 = OpCompositeConstruct %FragmentInput %107 %108 %109 %110 %111
+        %106 = OpFunctionCall %FragmentOutput %main_inner %112
+        %113 = OpCompositeExtract %v4float %106 0
+               OpStore %color_2 %113
                OpReturn
                OpFunctionEnd
diff --git a/test/bug/tint/1076.wgsl.expected.spvasm b/test/bug/tint/1076.wgsl.expected.spvasm
index 09023fc..33e81b1 100644
--- a/test/bug/tint/1076.wgsl.expected.spvasm
+++ b/test/bug/tint/1076.wgsl.expected.spvasm
@@ -5,78 +5,79 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_5 %tint_symbol_6 %tint_symbol_3
+               OpEntryPoint Fragment %main "main" %a_1 %mask_1 %b_1 %a_2 %mask_2
                OpExecutionMode %main OriginUpperLeft
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_6 "tint_symbol_6"
+               OpName %a_1 "a_1"
+               OpName %mask_1 "mask_1"
+               OpName %b_1 "b_1"
+               OpName %a_2 "a_2"
+               OpName %mask_2 "mask_2"
                OpName %FragIn "FragIn"
                OpMemberName %FragIn 0 "a"
                OpMemberName %FragIn 1 "mask"
-               OpName %tint_symbol_7 "tint_symbol_7"
-               OpName %tint_symbol_4 "tint_symbol_4"
+               OpName %main_inner "main_inner"
+               OpName %in "in"
+               OpName %b "b"
                OpName %main "main"
-               OpDecorate %tint_symbol Location 0
+               OpDecorate %a_1 Location 0
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol_1 BuiltIn SampleMask
-               OpDecorate %tint_symbol_3 Location 1
-               OpDecorate %tint_symbol_5 Location 0
-               OpDecorate %tint_symbol_6 BuiltIn SampleMask
+               OpDecorate %mask_1 BuiltIn SampleMask
+               OpDecorate %b_1 Location 1
+               OpDecorate %a_2 Location 0
+               OpDecorate %mask_2 BuiltIn SampleMask
                OpMemberDecorate %FragIn 0 Offset 0
                OpMemberDecorate %FragIn 1 Offset 4
       %float = OpTypeFloat 32
 %_ptr_Input_float = OpTypePointer Input %float
-%tint_symbol = OpVariable %_ptr_Input_float Input
+        %a_1 = OpVariable %_ptr_Input_float Input
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
 %_ptr_Input__arr_uint_uint_1 = OpTypePointer Input %_arr_uint_uint_1
-%tint_symbol_1 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
-%tint_symbol_3 = OpVariable %_ptr_Input_float Input
+     %mask_1 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
+        %b_1 = OpVariable %_ptr_Input_float Input
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
-%tint_symbol_5 = OpVariable %_ptr_Output_float Output %12
+        %a_2 = OpVariable %_ptr_Output_float Output %12
 %_ptr_Output__arr_uint_uint_1 = OpTypePointer Output %_arr_uint_uint_1
          %15 = OpConstantNull %_arr_uint_uint_1
-%tint_symbol_6 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %15
-       %void = OpTypeVoid
+     %mask_2 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %15
      %FragIn = OpTypeStruct %float %uint
-         %16 = OpTypeFunction %void %FragIn
-        %int = OpTypeInt 32 1
-      %int_0 = OpConstant %int 0
-%_ptr_Output_uint = OpTypePointer Output %uint
-         %28 = OpTypeFunction %void
-%_ptr_Input_uint = OpTypePointer Input %uint
+         %16 = OpTypeFunction %FragIn %FragIn %float
      %uint_0 = OpConstant %uint 0
        %bool = OpTypeBool
-%tint_symbol_7 = OpFunction %void None %16
-%tint_symbol_4 = OpFunctionParameter %FragIn
+       %void = OpTypeVoid
+         %29 = OpTypeFunction %void
+        %int = OpTypeInt 32 1
+      %int_0 = OpConstant %int 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%_ptr_Output_uint = OpTypePointer Output %uint
+ %main_inner = OpFunction %FragIn None %16
+         %in = OpFunctionParameter %FragIn
+          %b = OpFunctionParameter %float
          %21 = OpLabel
-         %22 = OpCompositeExtract %float %tint_symbol_4 0
-               OpStore %tint_symbol_5 %22
-         %26 = OpAccessChain %_ptr_Output_uint %tint_symbol_6 %int_0
-         %27 = OpCompositeExtract %uint %tint_symbol_4 1
-               OpStore %26 %27
-               OpReturn
+         %22 = OpCompositeExtract %uint %in 1
+         %24 = OpIEqual %bool %22 %uint_0
+               OpSelectionMerge %26 None
+               OpBranchConditional %24 %27 %26
+         %27 = OpLabel
+               OpReturnValue %in
+         %26 = OpLabel
+         %28 = OpCompositeConstruct %FragIn %b %uint_1
+               OpReturnValue %28
                OpFunctionEnd
-       %main = OpFunction %void None %28
-         %30 = OpLabel
-         %31 = OpLoad %float %tint_symbol
-         %33 = OpAccessChain %_ptr_Input_uint %tint_symbol_1 %int_0
-         %34 = OpLoad %uint %33
-         %35 = OpCompositeConstruct %FragIn %31 %34
-         %36 = OpCompositeExtract %uint %35 1
-         %38 = OpIEqual %bool %36 %uint_0
-               OpSelectionMerge %40 None
-               OpBranchConditional %38 %41 %40
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %tint_symbol_7 %35
-               OpReturn
-         %40 = OpLabel
-         %44 = OpLoad %float %tint_symbol_3
-         %45 = OpCompositeConstruct %FragIn %44 %uint_1
-         %43 = OpFunctionCall %void %tint_symbol_7 %45
+       %main = OpFunction %void None %29
+         %32 = OpLabel
+         %34 = OpLoad %float %a_1
+         %38 = OpAccessChain %_ptr_Input_uint %mask_1 %int_0
+         %39 = OpLoad %uint %38
+         %40 = OpCompositeConstruct %FragIn %34 %39
+         %41 = OpLoad %float %b_1
+         %33 = OpFunctionCall %FragIn %main_inner %40 %41
+         %42 = OpCompositeExtract %float %33 0
+               OpStore %a_2 %42
+         %44 = OpAccessChain %_ptr_Output_uint %mask_2 %int_0
+         %45 = OpCompositeExtract %uint %33 1
+               OpStore %44 %45
                OpReturn
                OpFunctionEnd
diff --git a/test/bug/tint/292.wgsl.expected.spvasm b/test/bug/tint/292.wgsl.expected.spvasm
index fe735fc..b80f9e0 100644
--- a/test/bug/tint/292.wgsl.expected.spvasm
+++ b/test/bug/tint/292.wgsl.expected.spvasm
@@ -1,53 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1
-               OpName %tint_pointsize "tint_pointsize"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
-               OpName %main "main"
+               OpEntryPoint Vertex %main "main" %value %vertex_point_size
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %main_inner "main_inner"
                OpName %light "light"
                OpName %negative_light "negative_light"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 BuiltIn Position
+               OpName %main "main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
-       %void = OpTypeVoid
-          %9 = OpTypeFunction %void %v4float
-         %14 = OpTypeFunction %void
-    %float_1 = OpConstant %float 1
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+          %9 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
 %float_1_20000005 = OpConstant %float 1.20000005
+    %float_1 = OpConstant %float 1
     %float_2 = OpConstant %float 2
-         %21 = OpConstantComposite %v3float %float_1_20000005 %float_1 %float_2
+         %16 = OpConstantComposite %v3float %float_1_20000005 %float_1 %float_2
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %24 = OpConstantNull %v3float
-%tint_symbol_2 = OpFunction %void None %9
-%tint_symbol = OpFunctionParameter %v4float
-         %13 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+         %19 = OpConstantNull %v3float
+       %void = OpTypeVoid
+         %23 = OpTypeFunction %void
+ %main_inner = OpFunction %v4float None %9
+         %11 = OpLabel
+      %light = OpVariable %_ptr_Function_v3float Function %19
+%negative_light = OpVariable %_ptr_Function_v3float Function %19
+               OpStore %light %16
+         %21 = OpLoad %v3float %light
+         %20 = OpFNegate %v3float %21
+               OpStore %negative_light %20
+               OpReturnValue %5
                OpFunctionEnd
-       %main = OpFunction %void None %14
-         %16 = OpLabel
-      %light = OpVariable %_ptr_Function_v3float Function %24
-%negative_light = OpVariable %_ptr_Function_v3float Function %24
-               OpStore %tint_pointsize %float_1
-               OpStore %light %21
-         %26 = OpLoad %v3float %light
-         %25 = OpFNegate %v3float %26
-               OpStore %negative_light %25
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+       %main = OpFunction %void None %23
+         %26 = OpLabel
+         %27 = OpFunctionCall %v4float %main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/bug/tint/403.wgsl.expected.spvasm b/test/bug/tint/403.wgsl.expected.spvasm
index 37f056a..acde02b 100644
--- a/test/bug/tint/403.wgsl.expected.spvasm
+++ b/test/bug/tint/403.wgsl.expected.spvasm
@@ -5,21 +5,23 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %gl_VertexIndex_1 %value %vertex_point_size
+               OpName %gl_VertexIndex_1 "gl_VertexIndex_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %vertexUniformBuffer1 "vertexUniformBuffer1"
                OpMemberName %vertexUniformBuffer1 0 "transform1"
                OpName %x_20 "x_20"
                OpName %vertexUniformBuffer2 "vertexUniformBuffer2"
                OpMemberName %vertexUniformBuffer2 0 "transform2"
                OpName %x_26 "x_26"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %main "main"
+               OpName %main_inner "main_inner"
+               OpName %gl_VertexIndex "gl_VertexIndex"
                OpName %indexable "indexable"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpName %main "main"
+               OpDecorate %gl_VertexIndex_1 BuiltIn VertexIndex
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %vertexUniformBuffer1 Block
                OpMemberDecorate %vertexUniformBuffer1 0 Offset 0
                OpMemberDecorate %vertexUniformBuffer1 0 ColMajor
@@ -34,13 +36,18 @@
                OpDecorate %x_26 NonWritable
                OpDecorate %x_26 DescriptorSet 1
                OpDecorate %x_26 Binding 0
-               OpDecorate %tint_symbol BuiltIn VertexIndex
-               OpDecorate %tint_symbol_2 BuiltIn Position
                OpDecorate %_arr_v2float_uint_3 ArrayStride 8
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%gl_VertexIndex_1 = OpVariable %_ptr_Input_uint Input
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %8 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %8
 %_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
     %v2float = OpTypeVector %float 2
 %mat2v2float = OpTypeMatrix %v2float 2
 %vertexUniformBuffer1 = OpTypeStruct %mat2v2float
@@ -49,60 +56,53 @@
 %vertexUniformBuffer2 = OpTypeStruct %mat2v2float
 %_ptr_Uniform_vertexUniformBuffer2 = OpTypePointer Uniform %vertexUniformBuffer2
        %x_26 = OpVariable %_ptr_Uniform_vertexUniformBuffer2 Uniform
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-         %19 = OpConstantNull %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %19
-       %void = OpTypeVoid
-         %20 = OpTypeFunction %void %v4float
-         %25 = OpTypeFunction %void
-    %float_1 = OpConstant %float 1
+         %20 = OpTypeFunction %v4float %uint
      %uint_3 = OpConstant %uint 3
 %_arr_v2float_uint_3 = OpTypeArray %v2float %uint_3
 %_ptr_Function__arr_v2float_uint_3 = OpTypePointer Function %_arr_v2float_uint_3
-         %33 = OpConstantNull %_arr_v2float_uint_3
+         %28 = OpConstantNull %_arr_v2float_uint_3
      %uint_0 = OpConstant %uint 0
 %_ptr_Uniform_mat2v2float = OpTypePointer Uniform %mat2v2float
    %float_n1 = OpConstant %float -1
-         %42 = OpConstantComposite %v2float %float_n1 %float_1
-         %43 = OpConstantComposite %v2float %float_1 %float_1
-         %44 = OpConstantComposite %v2float %float_n1 %float_n1
-         %45 = OpConstantComposite %_arr_v2float_uint_3 %42 %43 %44
+    %float_1 = OpConstant %float 1
+         %37 = OpConstantComposite %v2float %float_n1 %float_1
+         %38 = OpConstantComposite %v2float %float_1 %float_1
+         %39 = OpConstantComposite %v2float %float_n1 %float_n1
+         %40 = OpConstantComposite %_arr_v2float_uint_3 %37 %38 %39
 %_ptr_Function_v2float = OpTypePointer Function %v2float
      %uint_1 = OpConstant %uint 1
     %float_0 = OpConstant %float 0
-%tint_symbol_3 = OpFunction %void None %20
-%tint_symbol_1 = OpFunctionParameter %v4float
-         %24 = OpLabel
-               OpStore %tint_symbol_2 %tint_symbol_1
-               OpReturn
+       %void = OpTypeVoid
+         %57 = OpTypeFunction %void
+ %main_inner = OpFunction %v4float None %20
+%gl_VertexIndex = OpFunctionParameter %uint
+         %23 = OpLabel
+  %indexable = OpVariable %_ptr_Function__arr_v2float_uint_3 Function %28
+         %31 = OpAccessChain %_ptr_Uniform_mat2v2float %x_20 %uint_0
+         %32 = OpLoad %mat2v2float %31
+         %33 = OpAccessChain %_ptr_Uniform_mat2v2float %x_26 %uint_0
+         %34 = OpLoad %mat2v2float %33
+               OpStore %indexable %40
+         %42 = OpAccessChain %_ptr_Function_v2float %indexable %gl_VertexIndex
+         %43 = OpLoad %v2float %42
+         %44 = OpCompositeExtract %v2float %32 0
+         %45 = OpCompositeExtract %v2float %34 0
+         %46 = OpFAdd %v2float %44 %45
+         %48 = OpCompositeExtract %v2float %32 1
+         %49 = OpCompositeExtract %v2float %34 1
+         %50 = OpFAdd %v2float %48 %49
+         %51 = OpCompositeConstruct %mat2v2float %46 %50
+         %52 = OpMatrixTimesVector %v2float %51 %43
+         %53 = OpCompositeExtract %float %52 0
+         %54 = OpCompositeExtract %float %52 1
+         %56 = OpCompositeConstruct %v4float %53 %54 %float_0 %float_1
+               OpReturnValue %56
                OpFunctionEnd
-       %main = OpFunction %void None %25
-         %27 = OpLabel
-  %indexable = OpVariable %_ptr_Function__arr_v2float_uint_3 Function %33
-               OpStore %tint_pointsize %float_1
-         %36 = OpAccessChain %_ptr_Uniform_mat2v2float %x_20 %uint_0
-         %37 = OpLoad %mat2v2float %36
-         %38 = OpAccessChain %_ptr_Uniform_mat2v2float %x_26 %uint_0
-         %39 = OpLoad %mat2v2float %38
-         %40 = OpLoad %uint %tint_symbol
-               OpStore %indexable %45
-         %47 = OpAccessChain %_ptr_Function_v2float %indexable %40
-         %48 = OpLoad %v2float %47
-         %49 = OpCompositeExtract %v2float %37 0
-         %50 = OpCompositeExtract %v2float %39 0
-         %51 = OpFAdd %v2float %49 %50
-         %53 = OpCompositeExtract %v2float %37 1
-         %54 = OpCompositeExtract %v2float %39 1
-         %55 = OpFAdd %v2float %53 %54
-         %56 = OpCompositeConstruct %mat2v2float %51 %55
-         %57 = OpMatrixTimesVector %v2float %56 %48
-         %59 = OpCompositeExtract %float %57 0
-         %60 = OpCompositeExtract %float %57 1
-         %62 = OpCompositeConstruct %v4float %59 %60 %float_0 %float_1
-         %58 = OpFunctionCall %void %tint_symbol_3 %62
+       %main = OpFunction %void None %57
+         %60 = OpLabel
+         %62 = OpLoad %uint %gl_VertexIndex_1
+         %61 = OpFunctionCall %v4float %main_inner %62
+               OpStore %value %61
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/bug/tint/534.wgsl.expected.spvasm b/test/bug/tint/534.wgsl.expected.spvasm
index 9f983e6..0254aab 100644
--- a/test/bug/tint/534.wgsl.expected.spvasm
+++ b/test/bug/tint/534.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 135
+; Bound: 137
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %GlobalInvocationID_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %GlobalInvocationID_1 "GlobalInvocationID_1"
                OpName %src "src"
                OpName %dst "dst"
                OpName %OutputBuf "OutputBuf"
@@ -19,10 +20,10 @@
                OpMemberName %Uniforms 2 "isRGB10A2Unorm"
                OpMemberName %Uniforms 3 "channelCount"
                OpName %uniforms "uniforms"
-               OpName %tint_symbol "tint_symbol"
                OpName %ConvertToFp16FloatValue "ConvertToFp16FloatValue"
                OpName %fp32 "fp32"
-               OpName %main "main"
+               OpName %main_inner "main_inner"
+               OpName %GlobalInvocationID "GlobalInvocationID"
                OpName %size "size"
                OpName %dstTexCoord "dstTexCoord"
                OpName %srcTexCoord "srcTexCoord"
@@ -33,6 +34,8 @@
                OpName %dstColorBits "dstColorBits"
                OpName %i "i"
                OpName %outputIndex "outputIndex"
+               OpName %main "main"
+               OpDecorate %GlobalInvocationID_1 BuiltIn GlobalInvocationId
                OpDecorate %src DescriptorSet 0
                OpDecorate %src Binding 0
                OpDecorate %dst DescriptorSet 0
@@ -50,13 +53,15 @@
                OpDecorate %uniforms NonWritable
                OpDecorate %uniforms DescriptorSet 0
                OpDecorate %uniforms Binding 3
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
-      %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-        %src = OpVariable %_ptr_UniformConstant_3 UniformConstant
-        %dst = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %uint = OpTypeInt 32 0
+     %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%GlobalInvocationID_1 = OpVariable %_ptr_Input_v3uint Input
+      %float = OpTypeFloat 32
+          %7 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+        %src = OpVariable %_ptr_UniformConstant_7 UniformConstant
+        %dst = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %_runtimearr_uint = OpTypeRuntimeArray %uint
   %OutputBuf = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_OutputBuf = OpTypePointer StorageBuffer %OutputBuf
@@ -64,18 +69,15 @@
    %Uniforms = OpTypeStruct %uint %uint %uint %uint
 %_ptr_Uniform_Uniforms = OpTypePointer Uniform %Uniforms
    %uniforms = OpVariable %_ptr_Uniform_Uniforms Uniform
-     %v3uint = OpTypeVector %uint 3
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
          %17 = OpTypeFunction %uint %float
      %uint_1 = OpConstant %uint 1
        %void = OpTypeVoid
-         %22 = OpTypeFunction %void
+         %22 = OpTypeFunction %void %v3uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %33 = OpConstantNull %v2int
+         %34 = OpConstantNull %v2int
      %v2uint = OpTypeVector %uint 2
      %uint_0 = OpConstant %uint 0
 %_ptr_Uniform_uint = OpTypePointer Uniform %uint
@@ -95,18 +97,19 @@
          %82 = OpConstantNull %uint
      %uint_3 = OpConstant %uint 3
 %_ptr_Function_float = OpTypePointer Function %float
-%_ptr_Input_uint = OpTypePointer Input %uint
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+        %132 = OpTypeFunction %void
 %ConvertToFp16FloatValue = OpFunction %uint None %17
        %fp32 = OpFunctionParameter %float
          %20 = OpLabel
                OpReturnValue %uint_1
                OpFunctionEnd
-       %main = OpFunction %void None %22
-         %25 = OpLabel
-       %size = OpVariable %_ptr_Function_v2int Function %33
-%dstTexCoord = OpVariable %_ptr_Function_v2int Function %33
-%srcTexCoord = OpVariable %_ptr_Function_v2int Function %33
+ %main_inner = OpFunction %void None %22
+%GlobalInvocationID = OpFunctionParameter %v3uint
+         %26 = OpLabel
+       %size = OpVariable %_ptr_Function_v2int Function %34
+%dstTexCoord = OpVariable %_ptr_Function_v2int Function %34
+%srcTexCoord = OpVariable %_ptr_Function_v2int Function %34
    %srcColor = OpVariable %_ptr_Function_v4float Function %64
    %dstColor = OpVariable %_ptr_Function_v4float Function %64
     %success = OpVariable %_ptr_Function_bool Function %72
@@ -114,13 +117,12 @@
 %dstColorBits = OpVariable %_ptr_Function_v4uint Function %76
           %i = OpVariable %_ptr_Function_uint Function %82
 %outputIndex = OpVariable %_ptr_Function_uint Function %82
-         %29 = OpLoad %3 %src
-         %26 = OpImageQuerySizeLod %v2int %29 %int_0
-               OpStore %size %26
-         %36 = OpLoad %v3uint %tint_symbol
-         %37 = OpVectorShuffle %v2uint %36 %36 0 1
-         %34 = OpBitcast %v2int %37
-               OpStore %dstTexCoord %34
+         %30 = OpLoad %7 %src
+         %27 = OpImageQuerySizeLod %v2int %30 %int_0
+               OpStore %size %27
+         %37 = OpVectorShuffle %v2uint %GlobalInvocationID %GlobalInvocationID 0 1
+         %35 = OpBitcast %v2int %37
+               OpStore %dstTexCoord %35
          %39 = OpLoad %v2int %dstTexCoord
                OpStore %srcTexCoord %39
          %43 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_0
@@ -139,11 +141,11 @@
                OpStore %50 %57
                OpBranch %47
          %47 = OpLabel
-         %60 = OpLoad %3 %src
+         %60 = OpLoad %7 %src
          %61 = OpLoad %v2int %srcTexCoord
          %58 = OpImageFetch %v4float %60 %61 Lod %int_0
                OpStore %srcColor %58
-         %66 = OpLoad %3 %dst
+         %66 = OpLoad %7 %dst
          %67 = OpLoad %v2int %dstTexCoord
          %65 = OpImageFetch %v4float %66 %67 Lod %int_0
                OpStore %dstColor %65
@@ -196,29 +198,33 @@
                OpStore %i %114
                OpBranch %83
          %84 = OpLabel
-        %116 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_1
-        %117 = OpLoad %uint %116
-        %119 = OpAccessChain %_ptr_Function_int %size %uint_0
-        %120 = OpLoad %int %119
-        %118 = OpBitcast %uint %120
-        %121 = OpIMul %uint %117 %118
-        %122 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_0
-        %123 = OpLoad %uint %122
-        %124 = OpIAdd %uint %121 %123
-               OpStore %outputIndex %124
-        %126 = OpLoad %bool %success
-               OpSelectionMerge %127 None
-               OpBranchConditional %126 %128 %129
-        %128 = OpLabel
+        %115 = OpCompositeExtract %uint %GlobalInvocationID 1
+        %117 = OpAccessChain %_ptr_Function_int %size %uint_0
+        %118 = OpLoad %int %117
+        %116 = OpBitcast %uint %118
+        %119 = OpIMul %uint %115 %116
+        %120 = OpCompositeExtract %uint %GlobalInvocationID 0
+        %121 = OpIAdd %uint %119 %120
+               OpStore %outputIndex %121
+        %123 = OpLoad %bool %success
+               OpSelectionMerge %124 None
+               OpBranchConditional %123 %125 %126
+        %125 = OpLabel
+        %127 = OpLoad %uint %outputIndex
+        %129 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %127
+               OpStore %129 %uint_1
+               OpBranch %124
+        %126 = OpLabel
         %130 = OpLoad %uint %outputIndex
-        %132 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %130
-               OpStore %132 %uint_1
-               OpBranch %127
-        %129 = OpLabel
-        %133 = OpLoad %uint %outputIndex
-        %134 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %133
-               OpStore %134 %uint_0
-               OpBranch %127
-        %127 = OpLabel
+        %131 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %130
+               OpStore %131 %uint_0
+               OpBranch %124
+        %124 = OpLabel
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %132
+        %134 = OpLabel
+        %136 = OpLoad %v3uint %GlobalInvocationID_1
+        %135 = OpFunctionCall %void %main_inner %136
                OpReturn
                OpFunctionEnd
diff --git a/test/bug/tint/744.wgsl.expected.spvasm b/test/bug/tint/744.wgsl.expected.spvasm
index 6a6fdc5..33d57e0 100644
--- a/test/bug/tint/744.wgsl.expected.spvasm
+++ b/test/bug/tint/744.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 71
+; Bound: 74
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %global_id_1
                OpExecutionMode %main LocalSize 2 2 1
+               OpName %global_id_1 "global_id_1"
                OpName %Matrix "Matrix"
                OpMemberName %Matrix 0 "numbers"
                OpName %firstMatrix "firstMatrix"
@@ -17,10 +18,12 @@
                OpMemberName %Uniforms 1 "bShape"
                OpMemberName %Uniforms 2 "outShape"
                OpName %uniforms "uniforms"
-               OpName %tint_symbol "tint_symbol"
-               OpName %main "main"
+               OpName %main_inner "main_inner"
+               OpName %global_id "global_id"
                OpName %result "result"
                OpName %i "i"
+               OpName %main "main"
+               OpDecorate %global_id_1 BuiltIn GlobalInvocationId
                OpDecorate %Matrix Block
                OpMemberDecorate %Matrix 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
@@ -40,8 +43,10 @@
                OpDecorate %uniforms NonWritable
                OpDecorate %uniforms DescriptorSet 0
                OpDecorate %uniforms Binding 3
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
+     %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%global_id_1 = OpVariable %_ptr_Input_v3uint Input
 %_runtimearr_uint = OpTypeRuntimeArray %uint
      %Matrix = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_Matrix = OpTypePointer StorageBuffer %Matrix
@@ -52,77 +57,79 @@
    %Uniforms = OpTypeStruct %v2uint %v2uint %v2uint
 %_ptr_Uniform_Uniforms = OpTypePointer Uniform %Uniforms
    %uniforms = OpVariable %_ptr_Uniform_Uniforms Uniform
-     %v3uint = OpTypeVector %uint 3
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
-         %15 = OpTypeFunction %void
-     %uint_1 = OpConstant %uint 1
-%_ptr_Input_uint = OpTypePointer Input %uint
+         %15 = OpTypeFunction %void %v3uint
      %uint_0 = OpConstant %uint 0
+     %uint_1 = OpConstant %uint 1
 %_ptr_Uniform_uint = OpTypePointer Uniform %uint
      %uint_2 = OpConstant %uint 2
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %35 = OpConstantNull %uint
+         %33 = OpConstantNull %uint
        %bool = OpTypeBool
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-       %main = OpFunction %void None %15
-         %18 = OpLabel
-     %result = OpVariable %_ptr_Function_uint Function %35
-          %i = OpVariable %_ptr_Function_uint Function %35
-         %21 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_1
-         %22 = OpLoad %uint %21
-         %24 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_0
-         %25 = OpLoad %uint %24
-         %26 = OpCompositeConstruct %v2uint %22 %25
-         %28 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_0 %uint_1
-         %29 = OpLoad %uint %28
-         %31 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_2 %uint_1
-         %32 = OpLoad %uint %31
+         %69 = OpTypeFunction %void
+ %main_inner = OpFunction %void None %15
+  %global_id = OpFunctionParameter %v3uint
+         %19 = OpLabel
+     %result = OpVariable %_ptr_Function_uint Function %33
+          %i = OpVariable %_ptr_Function_uint Function %33
+         %20 = OpCompositeExtract %uint %global_id 1
+         %21 = OpCompositeExtract %uint %global_id 0
+         %22 = OpCompositeConstruct %v2uint %20 %21
+         %26 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_0 %uint_1
+         %27 = OpLoad %uint %26
+         %29 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_2 %uint_1
+         %30 = OpLoad %uint %29
                OpStore %result %uint_0
                OpStore %i %uint_0
+               OpBranch %35
+         %35 = OpLabel
+               OpLoopMerge %36 %37 None
+               OpBranch %38
+         %38 = OpLabel
+         %40 = OpLoad %uint %i
+         %41 = OpULessThan %bool %40 %27
+         %39 = OpLogicalNot %bool %41
+               OpSelectionMerge %43 None
+               OpBranchConditional %39 %44 %43
+         %44 = OpLabel
+               OpBranch %36
+         %43 = OpLabel
+         %45 = OpLoad %uint %i
+         %46 = OpCompositeExtract %uint %22 0
+         %47 = OpIMul %uint %46 %27
+         %48 = OpIAdd %uint %45 %47
+         %49 = OpCompositeExtract %uint %22 1
+         %50 = OpLoad %uint %i
+         %51 = OpIMul %uint %50 %30
+         %52 = OpIAdd %uint %49 %51
+         %53 = OpLoad %uint %result
+         %55 = OpAccessChain %_ptr_StorageBuffer_uint %firstMatrix %uint_0 %48
+         %56 = OpLoad %uint %55
+         %57 = OpAccessChain %_ptr_StorageBuffer_uint %secondMatrix %uint_0 %52
+         %58 = OpLoad %uint %57
+         %59 = OpIMul %uint %56 %58
+         %60 = OpIAdd %uint %53 %59
+               OpStore %result %60
                OpBranch %37
          %37 = OpLabel
-               OpLoopMerge %38 %39 None
-               OpBranch %40
-         %40 = OpLabel
-         %42 = OpLoad %uint %i
-         %43 = OpULessThan %bool %42 %29
-         %41 = OpLogicalNot %bool %43
-               OpSelectionMerge %45 None
-               OpBranchConditional %41 %46 %45
-         %46 = OpLabel
-               OpBranch %38
-         %45 = OpLabel
-         %47 = OpLoad %uint %i
-         %48 = OpCompositeExtract %uint %26 0
-         %49 = OpIMul %uint %48 %29
-         %50 = OpIAdd %uint %47 %49
-         %51 = OpCompositeExtract %uint %26 1
-         %52 = OpLoad %uint %i
-         %53 = OpIMul %uint %52 %32
-         %54 = OpIAdd %uint %51 %53
-         %55 = OpLoad %uint %result
-         %57 = OpAccessChain %_ptr_StorageBuffer_uint %firstMatrix %uint_0 %50
-         %58 = OpLoad %uint %57
-         %59 = OpAccessChain %_ptr_StorageBuffer_uint %secondMatrix %uint_0 %54
-         %60 = OpLoad %uint %59
-         %61 = OpIMul %uint %58 %60
-         %62 = OpIAdd %uint %55 %61
-               OpStore %result %62
-               OpBranch %39
-         %39 = OpLabel
-         %63 = OpLoad %uint %i
-         %64 = OpIAdd %uint %63 %uint_1
-               OpStore %i %64
-               OpBranch %37
-         %38 = OpLabel
-         %65 = OpCompositeExtract %uint %26 1
-         %66 = OpCompositeExtract %uint %26 0
-         %67 = OpIMul %uint %66 %32
-         %68 = OpIAdd %uint %65 %67
-         %69 = OpAccessChain %_ptr_StorageBuffer_uint %resultMatrix %uint_0 %68
-         %70 = OpLoad %uint %result
-               OpStore %69 %70
+         %61 = OpLoad %uint %i
+         %62 = OpIAdd %uint %61 %uint_1
+               OpStore %i %62
+               OpBranch %35
+         %36 = OpLabel
+         %63 = OpCompositeExtract %uint %22 1
+         %64 = OpCompositeExtract %uint %22 0
+         %65 = OpIMul %uint %64 %30
+         %66 = OpIAdd %uint %63 %65
+         %67 = OpAccessChain %_ptr_StorageBuffer_uint %resultMatrix %uint_0 %66
+         %68 = OpLoad %uint %result
+               OpStore %67 %68
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %69
+         %71 = OpLabel
+         %73 = OpLoad %v3uint %global_id_1
+         %72 = OpFunctionCall %void %main_inner %73
                OpReturn
                OpFunctionEnd
diff --git a/test/bug/tint/749.spvasm.expected.spvasm b/test/bug/tint/749.spvasm.expected.spvasm
index 2dc95c7..96f878d 100644
--- a/test/bug/tint/749.spvasm.expected.spvasm
+++ b/test/bug/tint/749.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
        %1694 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %QuicksortObject "QuicksortObject"
                OpMemberName %QuicksortObject 0 "numbers"
                OpName %obj "obj"
@@ -16,8 +18,6 @@
                OpMemberName %buf0 0 "resolution"
                OpName %x_188 "x_188"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %swap_i1_i1_ "swap_i1_i1_"
                OpName %i "i"
                OpName %j "j"
@@ -48,9 +48,11 @@
                OpName %uv "uv"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %QuicksortObject 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
@@ -58,31 +60,29 @@
                OpDecorate %x_188 NonWritable
                OpDecorate %x_188 DescriptorSet 0
                OpDecorate %x_188 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %QuicksortObject = OpTypeStruct %_arr_int_uint_10
 %_ptr_Private_QuicksortObject = OpTypePointer Private %QuicksortObject
-          %8 = OpConstantNull %QuicksortObject
-        %obj = OpVariable %_ptr_Private_QuicksortObject Private %8
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
+         %15 = OpConstantNull %QuicksortObject
+        %obj = OpVariable %_ptr_Private_QuicksortObject Private %15
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %13 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %13
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
       %x_188 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %13
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %13
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int
@@ -129,7 +129,7 @@
       %int_8 = OpConstant %int 8
      %uint_9 = OpConstant %uint 9
    %main_out = OpTypeStruct %v4float
-       %1820 = OpTypeFunction %void %main_out
+       %1820 = OpTypeFunction %main_out %v4float
 %swap_i1_i1_ = OpFunction %void None %23
           %i = OpFunctionParameter %_ptr_Function_int
           %j = OpFunctionParameter %_ptr_Function_int
@@ -2624,20 +2624,20 @@
                OpStore %1819 %1817
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %1820
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %1820
+%gl_FragCoord_param = OpFunctionParameter %v4float
        %1824 = OpLabel
-       %1825 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %1825
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+       %1825 = OpFunctionCall %void %main_1
+       %1826 = OpLoad %v4float %x_GLF_color
+       %1827 = OpCompositeConstruct %main_out %1826
+               OpReturnValue %1827
                OpFunctionEnd
        %main = OpFunction %void None %419
-       %1827 = OpLabel
-       %1828 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %1828
-       %1829 = OpFunctionCall %void %main_1
-       %1831 = OpLoad %v4float %x_GLF_color
-       %1832 = OpCompositeConstruct %main_out %1831
-       %1830 = OpFunctionCall %void %tint_symbol_3 %1832
+       %1829 = OpLabel
+       %1831 = OpLoad %v4float %gl_FragCoord_param_1
+       %1830 = OpFunctionCall %main_out %main_inner %1831
+       %1832 = OpCompositeExtract %v4float %1830 0
+               OpStore %x_GLF_color_1_1 %1832
                OpReturn
                OpFunctionEnd
diff --git a/test/bug/tint/757.wgsl.expected.spvasm b/test/bug/tint/757.wgsl.expected.spvasm
index 1802700..d19f643 100644
--- a/test/bug/tint/757.wgsl.expected.spvasm
+++ b/test/bug/tint/757.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 78
+; Bound: 79
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %GlobalInvocationID_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %GlobalInvocationID_1 "GlobalInvocationID_1"
                OpName %Constants "Constants"
                OpMemberName %Constants 0 "level"
                OpName %constants "constants"
@@ -14,11 +15,13 @@
                OpName %Result "Result"
                OpMemberName %Result 0 "values"
                OpName %result "result"
-               OpName %tint_symbol "tint_symbol"
-               OpName %main "main"
+               OpName %main_inner "main_inner"
+               OpName %GlobalInvocationID "GlobalInvocationID"
                OpName %flatIndex "flatIndex"
                OpName %texel "texel"
                OpName %i "i"
+               OpName %main "main"
+               OpDecorate %GlobalInvocationID_1 BuiltIn GlobalInvocationId
                OpDecorate %Constants Block
                OpMemberDecorate %Constants 0 Offset 0
                OpDecorate %constants NonWritable
@@ -31,97 +34,99 @@
                OpDecorate %_runtimearr_float ArrayStride 4
                OpDecorate %result DescriptorSet 0
                OpDecorate %result Binding 3
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
+       %uint = OpTypeInt 32 0
+     %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%GlobalInvocationID_1 = OpVariable %_ptr_Input_v3uint Input
         %int = OpTypeInt 32 1
   %Constants = OpTypeStruct %int
 %_ptr_Uniform_Constants = OpTypePointer Uniform %Constants
   %constants = OpVariable %_ptr_Uniform_Constants Uniform
       %float = OpTypeFloat 32
-          %7 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-  %myTexture = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %11 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+  %myTexture = OpVariable %_ptr_UniformConstant_11 UniformConstant
 %_runtimearr_float = OpTypeRuntimeArray %float
      %Result = OpTypeStruct %_runtimearr_float
 %_ptr_StorageBuffer_Result = OpTypePointer StorageBuffer %Result
      %result = OpVariable %_ptr_StorageBuffer_Result StorageBuffer
-       %uint = OpTypeInt 32 0
-     %v3uint = OpTypeVector %uint 3
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
-         %17 = OpTypeFunction %void
+         %17 = OpTypeFunction %void %v3uint
      %uint_2 = OpConstant %uint 2
-%_ptr_Input_uint = OpTypePointer Input %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_0 = OpConstant %uint 0
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %38 = OpConstantNull %uint
+         %33 = OpConstantNull %uint
+     %uint_1 = OpConstant %uint 1
     %v4float = OpTypeVector %float 4
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
      %v2uint = OpTypeVector %uint 2
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %56 = OpConstantNull %v4float
+         %51 = OpConstantNull %v4float
+     %uint_0 = OpConstant %uint 0
        %bool = OpTypeBool
 %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
 %_ptr_Function_float = OpTypePointer Function %float
-       %main = OpFunction %void None %17
-         %20 = OpLabel
-  %flatIndex = OpVariable %_ptr_Function_uint Function %38
-      %texel = OpVariable %_ptr_Function_v4float Function %56
-          %i = OpVariable %_ptr_Function_uint Function %38
-         %22 = OpIMul %uint %uint_2 %uint_2
-         %24 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_2
-         %25 = OpLoad %uint %24
-         %26 = OpIMul %uint %22 %25
-         %28 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_1
-         %29 = OpLoad %uint %28
-         %30 = OpIMul %uint %uint_2 %29
-         %31 = OpIAdd %uint %26 %30
-         %33 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_0
-         %34 = OpLoad %uint %33
-         %35 = OpIAdd %uint %31 %34
-               OpStore %flatIndex %35
-         %39 = OpLoad %uint %flatIndex
-         %40 = OpIMul %uint %39 %uint_1
-               OpStore %flatIndex %40
-         %43 = OpLoad %7 %myTexture
-         %48 = OpLoad %v3uint %tint_symbol
-         %49 = OpVectorShuffle %v2uint %48 %48 0 1
-         %45 = OpBitcast %v2int %49
-         %50 = OpCompositeExtract %int %45 0
-         %51 = OpCompositeExtract %int %45 1
-         %53 = OpCompositeConstruct %v3int %50 %51 %int_0
-         %41 = OpImageFetch %v4float %43 %53 Lod %int_0
-               OpStore %texel %41
+         %74 = OpTypeFunction %void
+ %main_inner = OpFunction %void None %17
+%GlobalInvocationID = OpFunctionParameter %v3uint
+         %21 = OpLabel
+  %flatIndex = OpVariable %_ptr_Function_uint Function %33
+      %texel = OpVariable %_ptr_Function_v4float Function %51
+          %i = OpVariable %_ptr_Function_uint Function %33
+         %23 = OpIMul %uint %uint_2 %uint_2
+         %24 = OpCompositeExtract %uint %GlobalInvocationID 2
+         %25 = OpIMul %uint %23 %24
+         %26 = OpCompositeExtract %uint %GlobalInvocationID 1
+         %27 = OpIMul %uint %uint_2 %26
+         %28 = OpIAdd %uint %25 %27
+         %29 = OpCompositeExtract %uint %GlobalInvocationID 0
+         %30 = OpIAdd %uint %28 %29
+               OpStore %flatIndex %30
+         %34 = OpLoad %uint %flatIndex
+         %36 = OpIMul %uint %34 %uint_1
+               OpStore %flatIndex %36
+         %39 = OpLoad %11 %myTexture
+         %44 = OpVectorShuffle %v2uint %GlobalInvocationID %GlobalInvocationID 0 1
+         %41 = OpBitcast %v2int %44
+         %45 = OpCompositeExtract %int %41 0
+         %46 = OpCompositeExtract %int %41 1
+         %48 = OpCompositeConstruct %v3int %45 %46 %int_0
+         %37 = OpImageFetch %v4float %39 %48 Lod %int_0
+               OpStore %texel %37
                OpStore %i %uint_0
-               OpBranch %58
-         %58 = OpLabel
-               OpLoopMerge %59 %60 None
-               OpBranch %61
-         %61 = OpLabel
-         %63 = OpLoad %uint %i
-         %64 = OpULessThan %bool %63 %uint_1
-         %62 = OpLogicalNot %bool %64
-               OpSelectionMerge %66 None
-               OpBranchConditional %62 %67 %66
-         %67 = OpLabel
-               OpBranch %59
-         %66 = OpLabel
-         %68 = OpLoad %uint %flatIndex
-         %69 = OpLoad %uint %i
-         %70 = OpIAdd %uint %68 %69
-         %72 = OpAccessChain %_ptr_StorageBuffer_float %result %uint_0 %70
-         %74 = OpAccessChain %_ptr_Function_float %texel %uint_0
-         %75 = OpLoad %float %74
-               OpStore %72 %75
-               OpBranch %60
-         %60 = OpLabel
-         %76 = OpLoad %uint %i
-         %77 = OpIAdd %uint %76 %uint_1
-               OpStore %i %77
-               OpBranch %58
-         %59 = OpLabel
+               OpBranch %54
+         %54 = OpLabel
+               OpLoopMerge %55 %56 None
+               OpBranch %57
+         %57 = OpLabel
+         %59 = OpLoad %uint %i
+         %60 = OpULessThan %bool %59 %uint_1
+         %58 = OpLogicalNot %bool %60
+               OpSelectionMerge %62 None
+               OpBranchConditional %58 %63 %62
+         %63 = OpLabel
+               OpBranch %55
+         %62 = OpLabel
+         %64 = OpLoad %uint %flatIndex
+         %65 = OpLoad %uint %i
+         %66 = OpIAdd %uint %64 %65
+         %68 = OpAccessChain %_ptr_StorageBuffer_float %result %uint_0 %66
+         %70 = OpAccessChain %_ptr_Function_float %texel %uint_0
+         %71 = OpLoad %float %70
+               OpStore %68 %71
+               OpBranch %56
+         %56 = OpLabel
+         %72 = OpLoad %uint %i
+         %73 = OpIAdd %uint %72 %uint_1
+               OpStore %i %73
+               OpBranch %54
+         %55 = OpLabel
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %74
+         %76 = OpLabel
+         %78 = OpLoad %v3uint %GlobalInvocationID_1
+         %77 = OpFunctionCall %void %main_inner %78
                OpReturn
                OpFunctionEnd
diff --git a/test/bug/tint/824.wgsl.expected.spvasm b/test/bug/tint/824.wgsl.expected.spvasm
index feb9f7c..dc41468 100644
--- a/test/bug/tint/824.wgsl.expected.spvasm
+++ b/test/bug/tint/824.wgsl.expected.spvasm
@@ -1,111 +1,113 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 70
+; Bound: 71
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1 %tint_symbol_3 %tint_symbol_4
-               OpName %tint_pointsize "tint_pointsize"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
+               OpEntryPoint Vertex %main "main" %VertexIndex_1 %InstanceIndex_1 %Position_1 %color_1 %vertex_point_size
+               OpName %VertexIndex_1 "VertexIndex_1"
+               OpName %InstanceIndex_1 "InstanceIndex_1"
+               OpName %Position_1 "Position_1"
+               OpName %color_1 "color_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %Output "Output"
                OpMemberName %Output 0 "Position"
                OpMemberName %Output 1 "color"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %main "main"
+               OpName %main_inner "main_inner"
+               OpName %VertexIndex "VertexIndex"
+               OpName %InstanceIndex "InstanceIndex"
                OpName %zv "zv"
                OpName %output "output"
                OpName %colors "colors"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol BuiltIn VertexIndex
-               OpDecorate %tint_symbol_1 BuiltIn InstanceIndex
-               OpDecorate %tint_symbol_3 BuiltIn Position
-               OpDecorate %tint_symbol_4 Location 0
+               OpName %main "main"
+               OpDecorate %VertexIndex_1 BuiltIn VertexIndex
+               OpDecorate %InstanceIndex_1 BuiltIn InstanceIndex
+               OpDecorate %Position_1 BuiltIn Position
+               OpDecorate %color_1 Location 0
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %Output 0 Offset 0
                OpMemberDecorate %Output 1 Offset 16
                OpDecorate %_arr_v2float_uint_4 ArrayStride 8
                OpDecorate %_arr_v4float_uint_4 ArrayStride 16
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
-%tint_symbol_1 = OpVariable %_ptr_Input_uint Input
+%VertexIndex_1 = OpVariable %_ptr_Input_uint Input
+%InstanceIndex_1 = OpVariable %_ptr_Input_uint Input
+      %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %12
-%tint_symbol_4 = OpVariable %_ptr_Output_v4float Output %12
-       %void = OpTypeVoid
+          %9 = OpConstantNull %v4float
+ %Position_1 = OpVariable %_ptr_Output_v4float Output %9
+    %color_1 = OpVariable %_ptr_Output_v4float Output %9
+%_ptr_Output_float = OpTypePointer Output %float
+         %13 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %13
      %Output = OpTypeStruct %v4float %v4float
-         %14 = OpTypeFunction %void %Output
-         %22 = OpTypeFunction %void
-    %float_1 = OpConstant %float 1
+         %14 = OpTypeFunction %Output %uint %uint
     %v2float = OpTypeVector %float 2
      %uint_4 = OpConstant %uint 4
 %_arr_v2float_uint_4 = OpTypeArray %v2float %uint_4
 %float_0_200000003 = OpConstant %float 0.200000003
-         %30 = OpConstantComposite %v2float %float_0_200000003 %float_0_200000003
+         %24 = OpConstantComposite %v2float %float_0_200000003 %float_0_200000003
 %float_0_300000012 = OpConstant %float 0.300000012
-         %32 = OpConstantComposite %v2float %float_0_300000012 %float_0_300000012
+         %26 = OpConstantComposite %v2float %float_0_300000012 %float_0_300000012
 %float_n0_100000001 = OpConstant %float -0.100000001
-         %34 = OpConstantComposite %v2float %float_n0_100000001 %float_n0_100000001
+         %28 = OpConstantComposite %v2float %float_n0_100000001 %float_n0_100000001
 %float_1_10000002 = OpConstant %float 1.10000002
-         %36 = OpConstantComposite %v2float %float_1_10000002 %float_1_10000002
-         %37 = OpConstantComposite %_arr_v2float_uint_4 %30 %32 %34 %36
+         %30 = OpConstantComposite %v2float %float_1_10000002 %float_1_10000002
+         %31 = OpConstantComposite %_arr_v2float_uint_4 %24 %26 %28 %30
 %_ptr_Function__arr_v2float_uint_4 = OpTypePointer Function %_arr_v2float_uint_4
-         %40 = OpConstantNull %_arr_v2float_uint_4
+         %34 = OpConstantNull %_arr_v2float_uint_4
      %uint_0 = OpConstant %uint 0
 %_ptr_Function_float = OpTypePointer Function %float
 %_ptr_Function_Output = OpTypePointer Function %Output
-         %48 = OpConstantNull %Output
+         %41 = OpConstantNull %Output
 %_ptr_Function_v4float = OpTypePointer Function %v4float
   %float_0_5 = OpConstant %float 0.5
+    %float_1 = OpConstant %float 1
 %_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4
     %float_0 = OpConstant %float 0
-         %55 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
-         %56 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_1
-         %57 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1
-         %58 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-         %59 = OpConstantComposite %_arr_v4float_uint_4 %55 %56 %57 %58
+         %49 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+         %50 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_1
+         %51 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1
+         %52 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %53 = OpConstantComposite %_arr_v4float_uint_4 %49 %50 %51 %52
 %_ptr_Function__arr_v4float_uint_4 = OpTypePointer Function %_arr_v4float_uint_4
-         %62 = OpConstantNull %_arr_v4float_uint_4
+         %56 = OpConstantNull %_arr_v4float_uint_4
      %uint_1 = OpConstant %uint 1
-%tint_symbol_5 = OpFunction %void None %14
-%tint_symbol_2 = OpFunctionParameter %Output
+       %void = OpTypeVoid
+         %62 = OpTypeFunction %void
+ %main_inner = OpFunction %Output None %14
+%VertexIndex = OpFunctionParameter %uint
+%InstanceIndex = OpFunctionParameter %uint
          %19 = OpLabel
-         %20 = OpCompositeExtract %v4float %tint_symbol_2 0
-               OpStore %tint_symbol_3 %20
-         %21 = OpCompositeExtract %v4float %tint_symbol_2 1
-               OpStore %tint_symbol_4 %21
-               OpReturn
+         %zv = OpVariable %_ptr_Function__arr_v2float_uint_4 Function %34
+     %output = OpVariable %_ptr_Function_Output Function %41
+     %colors = OpVariable %_ptr_Function__arr_v4float_uint_4 Function %56
+               OpStore %zv %31
+         %37 = OpAccessChain %_ptr_Function_float %zv %InstanceIndex %uint_0
+         %38 = OpLoad %float %37
+         %43 = OpAccessChain %_ptr_Function_v4float %output %uint_0
+         %46 = OpCompositeConstruct %v4float %float_0_5 %float_0_5 %38 %float_1
+               OpStore %43 %46
+               OpStore %colors %53
+         %58 = OpAccessChain %_ptr_Function_v4float %output %uint_1
+         %59 = OpAccessChain %_ptr_Function_v4float %colors %InstanceIndex
+         %60 = OpLoad %v4float %59
+               OpStore %58 %60
+         %61 = OpLoad %Output %output
+               OpReturnValue %61
                OpFunctionEnd
-       %main = OpFunction %void None %22
-         %24 = OpLabel
-         %zv = OpVariable %_ptr_Function__arr_v2float_uint_4 Function %40
-     %output = OpVariable %_ptr_Function_Output Function %48
-     %colors = OpVariable %_ptr_Function__arr_v4float_uint_4 Function %62
-               OpStore %tint_pointsize %float_1
-               OpStore %zv %37
-         %41 = OpLoad %uint %tint_symbol_1
-         %44 = OpAccessChain %_ptr_Function_float %zv %41 %uint_0
-         %45 = OpLoad %float %44
-         %50 = OpAccessChain %_ptr_Function_v4float %output %uint_0
-         %52 = OpCompositeConstruct %v4float %float_0_5 %float_0_5 %45 %float_1
-               OpStore %50 %52
-               OpStore %colors %59
-         %64 = OpAccessChain %_ptr_Function_v4float %output %uint_1
-         %65 = OpLoad %uint %tint_symbol_1
-         %66 = OpAccessChain %_ptr_Function_v4float %colors %65
-         %67 = OpLoad %v4float %66
-               OpStore %64 %67
-         %69 = OpLoad %Output %output
-         %68 = OpFunctionCall %void %tint_symbol_5 %69
+       %main = OpFunction %void None %62
+         %65 = OpLabel
+         %67 = OpLoad %uint %VertexIndex_1
+         %68 = OpLoad %uint %InstanceIndex_1
+         %66 = OpFunctionCall %Output %main_inner %67 %68
+         %69 = OpCompositeExtract %v4float %66 0
+               OpStore %Position_1 %69
+         %70 = OpCompositeExtract %v4float %66 1
+               OpStore %color_1 %70
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/bug/tint/827.wgsl.expected.spvasm b/test/bug/tint/827.wgsl.expected.spvasm
index 4bc890f..d2f383b 100644
--- a/test/bug/tint/827.wgsl.expected.spvasm
+++ b/test/bug/tint/827.wgsl.expected.spvasm
@@ -5,15 +5,18 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %GlobalInvocationId_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %GlobalInvocationId_1 "GlobalInvocationId_1"
                OpName %width "width"
                OpName %tex "tex"
                OpName %Result "Result"
                OpMemberName %Result 0 "values"
                OpName %result "result"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
+               OpName %GlobalInvocationId "GlobalInvocationId"
                OpName %main "main"
+               OpDecorate %GlobalInvocationId_1 BuiltIn GlobalInvocationId
                OpDecorate %tex DescriptorSet 0
                OpDecorate %tex Binding 0
                OpDecorate %Result Block
@@ -21,49 +24,50 @@
                OpDecorate %_runtimearr_float ArrayStride 4
                OpDecorate %result DescriptorSet 0
                OpDecorate %result Binding 1
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
+     %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%GlobalInvocationId_1 = OpVariable %_ptr_Input_v3uint Input
       %width = OpConstant %uint 128
       %float = OpTypeFloat 32
-          %5 = OpTypeImage %float 2D 1 0 0 1 Unknown
-%_ptr_UniformConstant_5 = OpTypePointer UniformConstant %5
-        %tex = OpVariable %_ptr_UniformConstant_5 UniformConstant
+          %8 = OpTypeImage %float 2D 1 0 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+        %tex = OpVariable %_ptr_UniformConstant_8 UniformConstant
 %_runtimearr_float = OpTypeRuntimeArray %float
      %Result = OpTypeStruct %_runtimearr_float
 %_ptr_StorageBuffer_Result = OpTypePointer StorageBuffer %Result
      %result = OpVariable %_ptr_StorageBuffer_Result StorageBuffer
-     %v3uint = OpTypeVector %uint 3
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
-         %14 = OpTypeFunction %void
+         %14 = OpTypeFunction %void %v3uint
      %uint_0 = OpConstant %uint 0
-     %uint_1 = OpConstant %uint 1
-%_ptr_Input_uint = OpTypePointer Input %uint
 %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
     %v4float = OpTypeVector %float 4
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_0 = OpConstant %int 0
-       %main = OpFunction %void None %14
-         %17 = OpLabel
-         %21 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_1
-         %22 = OpLoad %uint %21
-         %23 = OpIMul %uint %22 %width
-         %24 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_0
-         %25 = OpLoad %uint %24
-         %26 = OpIAdd %uint %23 %25
-         %28 = OpAccessChain %_ptr_StorageBuffer_float %result %uint_0 %26
-         %32 = OpLoad %5 %tex
-         %36 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_0
-         %37 = OpLoad %uint %36
-         %35 = OpBitcast %int %37
-         %39 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_1
-         %40 = OpLoad %uint %39
-         %38 = OpBitcast %int %40
-         %41 = OpCompositeConstruct %v2int %35 %38
-         %30 = OpImageFetch %v4float %32 %41 Lod %int_0
-         %29 = OpCompositeExtract %float %30 0
-               OpStore %28 %29
+         %38 = OpTypeFunction %void
+ %main_inner = OpFunction %void None %14
+%GlobalInvocationId = OpFunctionParameter %v3uint
+         %18 = OpLabel
+         %20 = OpCompositeExtract %uint %GlobalInvocationId 1
+         %21 = OpIMul %uint %20 %width
+         %22 = OpCompositeExtract %uint %GlobalInvocationId 0
+         %23 = OpIAdd %uint %21 %22
+         %25 = OpAccessChain %_ptr_StorageBuffer_float %result %uint_0 %23
+         %29 = OpLoad %8 %tex
+         %33 = OpCompositeExtract %uint %GlobalInvocationId 0
+         %32 = OpBitcast %int %33
+         %35 = OpCompositeExtract %uint %GlobalInvocationId 1
+         %34 = OpBitcast %int %35
+         %36 = OpCompositeConstruct %v2int %32 %34
+         %27 = OpImageFetch %v4float %29 %36 Lod %int_0
+         %26 = OpCompositeExtract %float %27 0
+               OpStore %25 %26
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %38
+         %40 = OpLabel
+         %42 = OpLoad %v3uint %GlobalInvocationId_1
+         %41 = OpFunctionCall %void %main_inner %42
                OpReturn
                OpFunctionEnd
diff --git a/test/bug/tint/913.wgsl.expected.spvasm b/test/bug/tint/913.wgsl.expected.spvasm
index 0a66bbb..f34ef94 100644
--- a/test/bug/tint/913.wgsl.expected.spvasm
+++ b/test/bug/tint/913.wgsl.expected.spvasm
@@ -1,14 +1,15 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 191
+; Bound: 193
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
          %25 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %GlobalInvocationID_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %GlobalInvocationID_1 "GlobalInvocationID_1"
                OpName %src "src"
                OpName %dst "dst"
                OpName %OutputBuf "OutputBuf"
@@ -21,13 +22,15 @@
                OpMemberName %Uniforms 3 "dstCopyOrigin"
                OpMemberName %Uniforms 4 "copySize"
                OpName %uniforms "uniforms"
-               OpName %tint_symbol "tint_symbol"
                OpName %aboutEqual "aboutEqual"
                OpName %value "value"
                OpName %expect "expect"
-               OpName %main "main"
+               OpName %main_inner "main_inner"
+               OpName %GlobalInvocationID "GlobalInvocationID"
                OpName %success "success"
                OpName %srcTexCoord "srcTexCoord"
+               OpName %main "main"
+               OpDecorate %GlobalInvocationID_1 BuiltIn GlobalInvocationId
                OpDecorate %src DescriptorSet 0
                OpDecorate %src Binding 0
                OpDecorate %dst DescriptorSet 0
@@ -46,13 +49,15 @@
                OpDecorate %uniforms NonWritable
                OpDecorate %uniforms DescriptorSet 0
                OpDecorate %uniforms Binding 3
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
-      %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-        %src = OpVariable %_ptr_UniformConstant_3 UniformConstant
-        %dst = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %uint = OpTypeInt 32 0
+     %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%GlobalInvocationID_1 = OpVariable %_ptr_Input_v3uint Input
+      %float = OpTypeFloat 32
+          %7 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+        %src = OpVariable %_ptr_UniformConstant_7 UniformConstant
+        %dst = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %_runtimearr_uint = OpTypeRuntimeArray %uint
   %OutputBuf = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_OutputBuf = OpTypePointer StorageBuffer %OutputBuf
@@ -61,14 +66,11 @@
    %Uniforms = OpTypeStruct %uint %uint %v2uint %v2uint %v2uint
 %_ptr_Uniform_Uniforms = OpTypePointer Uniform %Uniforms
    %uniforms = OpVariable %_ptr_Uniform_Uniforms Uniform
-     %v3uint = OpTypeVector %uint 3
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %bool = OpTypeBool
          %18 = OpTypeFunction %bool %float %float
 %float_0_00100000005 = OpConstant %float 0.00100000005
        %void = OpTypeVoid
-         %29 = OpTypeFunction %void
+         %29 = OpTypeFunction %void %v3uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_0 = OpConstant %int 0
@@ -90,8 +92,8 @@
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
         %110 = OpConstantNull %v2uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-%_ptr_Input_uint = OpTypePointer Input %uint
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+        %188 = OpTypeFunction %void
  %aboutEqual = OpFunction %bool None %18
       %value = OpFunctionParameter %float
      %expect = OpFunctionParameter %float
@@ -101,16 +103,16 @@
          %28 = OpFOrdLessThan %bool %24 %float_0_00100000005
                OpReturnValue %28
                OpFunctionEnd
-       %main = OpFunction %void None %29
-         %32 = OpLabel
+ %main_inner = OpFunction %void None %29
+%GlobalInvocationID = OpFunctionParameter %v3uint
+         %33 = OpLabel
     %success = OpVariable %_ptr_Function_bool Function %50
 %srcTexCoord = OpVariable %_ptr_Function_v2uint Function %110
-         %36 = OpLoad %3 %src
-         %33 = OpImageQuerySizeLod %v2int %36 %int_0
-         %39 = OpLoad %3 %dst
-         %38 = OpImageQuerySizeLod %v2int %39 %int_0
-         %41 = OpLoad %v3uint %tint_symbol
-         %42 = OpVectorShuffle %v2uint %41 %41 0 1
+         %37 = OpLoad %7 %src
+         %34 = OpImageQuerySizeLod %v2int %37 %int_0
+         %40 = OpLoad %7 %dst
+         %39 = OpImageQuerySizeLod %v2int %40 %int_0
+         %42 = OpVectorShuffle %v2uint %GlobalInvocationID %GlobalInvocationID 0 1
                OpStore %success %true
          %51 = OpCompositeExtract %uint %42 0
          %55 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_3 %uint_0
@@ -125,7 +127,7 @@
          %64 = OpULessThan %bool %60 %63
                OpBranch %58
          %58 = OpLabel
-         %65 = OpPhi %bool %57 %32 %64 %59
+         %65 = OpPhi %bool %57 %33 %64 %59
                OpSelectionMerge %66 None
                OpBranchConditional %65 %66 %67
          %67 = OpLabel
@@ -159,7 +161,7 @@
                OpSelectionMerge %91 None
                OpBranchConditional %90 %92 %91
          %92 = OpLabel
-         %95 = OpLoad %3 %dst
+         %95 = OpLoad %7 %dst
          %96 = OpBitcast %v2int %42
          %94 = OpImageFetch %v4float %95 %96 Lod %int_0
          %97 = OpFOrdEqual %v4bool %94 %46
@@ -184,7 +186,7 @@
                OpBranchConditional %113 %115 %114
         %115 = OpLabel
         %117 = OpAccessChain %_ptr_Function_uint %srcTexCoord %uint_1
-        %119 = OpCompositeExtract %int %33 1
+        %119 = OpCompositeExtract %int %34 1
         %118 = OpBitcast %uint %119
         %120 = OpAccessChain %_ptr_Function_uint %srcTexCoord %uint_1
         %121 = OpLoad %uint %120
@@ -193,11 +195,11 @@
                OpStore %117 %123
                OpBranch %114
         %114 = OpLabel
-        %125 = OpLoad %3 %src
+        %125 = OpLoad %7 %src
         %127 = OpLoad %v2uint %srcTexCoord
         %126 = OpBitcast %v2int %127
         %124 = OpImageFetch %v4float %125 %126 Lod %int_0
-        %129 = OpLoad %3 %dst
+        %129 = OpLoad %7 %dst
         %130 = OpBitcast %v2int %42
         %128 = OpImageFetch %v4float %129 %130 Lod %int_0
         %131 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
@@ -270,25 +272,29 @@
         %134 = OpLabel
                OpBranch %87
          %87 = OpLabel
-        %176 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_1
-        %177 = OpLoad %uint %176
-        %179 = OpCompositeExtract %int %38 0
-        %178 = OpBitcast %uint %179
-        %180 = OpIMul %uint %177 %178
-        %181 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_0
-        %182 = OpLoad %uint %181
-        %183 = OpIAdd %uint %180 %182
-        %184 = OpLoad %bool %success
-               OpSelectionMerge %185 None
-               OpBranchConditional %184 %186 %187
-        %186 = OpLabel
-        %189 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %183
-               OpStore %189 %uint_1
-               OpBranch %185
-        %187 = OpLabel
-        %190 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %183
-               OpStore %190 %uint_0
-               OpBranch %185
-        %185 = OpLabel
+        %175 = OpCompositeExtract %uint %GlobalInvocationID 1
+        %177 = OpCompositeExtract %int %39 0
+        %176 = OpBitcast %uint %177
+        %178 = OpIMul %uint %175 %176
+        %179 = OpCompositeExtract %uint %GlobalInvocationID 0
+        %180 = OpIAdd %uint %178 %179
+        %181 = OpLoad %bool %success
+               OpSelectionMerge %182 None
+               OpBranchConditional %181 %183 %184
+        %183 = OpLabel
+        %186 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %180
+               OpStore %186 %uint_1
+               OpBranch %182
+        %184 = OpLabel
+        %187 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %180
+               OpStore %187 %uint_0
+               OpBranch %182
+        %182 = OpLabel
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %188
+        %190 = OpLabel
+        %192 = OpLoad %v3uint %GlobalInvocationID_1
+        %191 = OpFunctionCall %void %main_inner %192
                OpReturn
                OpFunctionEnd
diff --git a/test/bug/tint/914.wgsl.expected.spvasm b/test/bug/tint/914.wgsl.expected.spvasm
index a2c1018..5c4ef44 100644
--- a/test/bug/tint/914.wgsl.expected.spvasm
+++ b/test/bug/tint/914.wgsl.expected.spvasm
@@ -1,12 +1,15 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 372
+; Bound: 375
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol_2 %tint_symbol %tint_symbol_1
+               OpEntryPoint GLCompute %main "main" %local_id_1 %global_id_1 %local_invocation_index_1
                OpExecutionMode %main LocalSize 16 16 1
+               OpName %local_id_1 "local_id_1"
+               OpName %global_id_1 "global_id_1"
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %Matrix "Matrix"
                OpMemberName %Matrix 0 "numbers"
                OpName %firstMatrix "firstMatrix"
@@ -24,9 +27,6 @@
                OpName %TileAOuter "TileInner"
                OpName %mm_Asub "mm_Asub"
                OpName %mm_Bsub "mm_Bsub"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %mm_readA "mm_readA"
                OpName %row "row"
                OpName %col "col"
@@ -37,7 +37,10 @@
                OpName %row_1 "row"
                OpName %col_1 "col"
                OpName %value "value"
-               OpName %main "main"
+               OpName %main_inner "main_inner"
+               OpName %local_id "local_id"
+               OpName %global_id "global_id"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %idx "idx"
                OpName %acc "acc"
                OpName %ACached "ACached"
@@ -54,6 +57,10 @@
                OpName %innerCol_1 "innerCol"
                OpName %innerRow_2 "innerRow"
                OpName %innerCol_2 "innerCol"
+               OpName %main "main"
+               OpDecorate %local_id_1 BuiltIn LocalInvocationId
+               OpDecorate %global_id_1 BuiltIn GlobalInvocationId
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
                OpDecorate %Matrix Block
                OpMemberDecorate %Matrix 0 Offset 0
                OpDecorate %_runtimearr_float ArrayStride 4
@@ -75,11 +82,15 @@
                OpDecorate %uniforms Binding 3
                OpDecorate %_arr_float_TileAOuter ArrayStride 4
                OpDecorate %_arr__arr_float_TileAOuter_TileAOuter ArrayStride 256
-               OpDecorate %tint_symbol BuiltIn LocalInvocationId
-               OpDecorate %tint_symbol_1 BuiltIn GlobalInvocationId
-               OpDecorate %tint_symbol_2 BuiltIn LocalInvocationIndex
                OpDecorate %_arr_float_uint_16 ArrayStride 4
                OpDecorate %_arr_float_RowPerThread ArrayStride 4
+       %uint = OpTypeInt 32 0
+     %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+ %local_id_1 = OpVariable %_ptr_Input_v3uint Input
+%global_id_1 = OpVariable %_ptr_Input_v3uint Input
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
       %float = OpTypeFloat 32
 %_runtimearr_float = OpTypeRuntimeArray %float
      %Matrix = OpTypeStruct %_runtimearr_float
@@ -87,7 +98,6 @@
 %firstMatrix = OpVariable %_ptr_StorageBuffer_Matrix StorageBuffer
 %secondMatrix = OpVariable %_ptr_StorageBuffer_Matrix StorageBuffer
 %resultMatrix = OpVariable %_ptr_StorageBuffer_Matrix StorageBuffer
-       %uint = OpTypeInt 32 0
    %Uniforms = OpTypeStruct %uint %uint %uint
 %_ptr_Uniform_Uniforms = OpTypePointer Uniform %Uniforms
    %uniforms = OpVariable %_ptr_Uniform_Uniforms Uniform
@@ -98,12 +108,6 @@
 %_ptr_Workgroup__arr__arr_float_TileAOuter_TileAOuter = OpTypePointer Workgroup %_arr__arr_float_TileAOuter_TileAOuter
     %mm_Asub = OpVariable %_ptr_Workgroup__arr__arr_float_TileAOuter_TileAOuter Workgroup
     %mm_Bsub = OpVariable %_ptr_Workgroup__arr__arr_float_TileAOuter_TileAOuter Workgroup
-     %v3uint = OpTypeVector %uint 3
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
-%tint_symbol_1 = OpVariable %_ptr_Input_v3uint Input
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol_2 = OpVariable %_ptr_Input_uint Input
          %25 = OpTypeFunction %float %uint %uint
      %uint_0 = OpConstant %uint 0
 %_ptr_Uniform_uint = OpTypePointer Uniform %uint
@@ -114,22 +118,23 @@
      %uint_2 = OpConstant %uint 2
        %void = OpTypeVoid
          %75 = OpTypeFunction %void %uint %uint %float
-         %98 = OpTypeFunction %void
+         %98 = OpTypeFunction %void %v3uint %v3uint %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-        %104 = OpConstantNull %uint
+        %106 = OpConstantNull %uint
   %uint_4096 = OpConstant %uint 4096
 %_ptr_Workgroup_float = OpTypePointer Workgroup %float
-        %121 = OpConstantNull %float
+        %123 = OpConstantNull %float
    %uint_256 = OpConstant %uint 256
    %uint_264 = OpConstant %uint 264
     %uint_16 = OpConstant %uint 16
 %_arr_float_uint_16 = OpTypeArray %float %uint_16
 %_ptr_Function__arr_float_uint_16 = OpTypePointer Function %_arr_float_uint_16
-        %149 = OpConstantNull %_arr_float_uint_16
+        %147 = OpConstantNull %_arr_float_uint_16
 %_ptr_Function_float = OpTypePointer Function %float
 %_arr_float_RowPerThread = OpTypeArray %float %RowPerThread
 %_ptr_Function__arr_float_RowPerThread = OpTypePointer Function %_arr_float_RowPerThread
-        %155 = OpConstantNull %_arr_float_RowPerThread
+        %153 = OpConstantNull %_arr_float_RowPerThread
+        %368 = OpTypeFunction %void
    %mm_readA = OpFunction %float None %25
         %row = OpFunctionParameter %uint
         %col = OpFunctionParameter %uint
@@ -218,401 +223,405 @@
          %91 = OpLabel
                OpReturn
                OpFunctionEnd
-       %main = OpFunction %void None %98
-        %100 = OpLabel
-        %idx = OpVariable %_ptr_Function_uint Function %104
-        %acc = OpVariable %_ptr_Function__arr_float_uint_16 Function %149
-    %ACached = OpVariable %_ptr_Function_float Function %121
-    %BCached = OpVariable %_ptr_Function__arr_float_RowPerThread Function %155
-      %index = OpVariable %_ptr_Function_uint Function %104
-          %t = OpVariable %_ptr_Function_uint Function %104
-   %innerRow = OpVariable %_ptr_Function_uint Function %104
-   %innerCol = OpVariable %_ptr_Function_uint Function %104
- %innerRow_0 = OpVariable %_ptr_Function_uint Function %104
- %innerCol_0 = OpVariable %_ptr_Function_uint Function %104
-          %k = OpVariable %_ptr_Function_uint Function %104
-      %inner = OpVariable %_ptr_Function_uint Function %104
- %innerRow_1 = OpVariable %_ptr_Function_uint Function %104
- %innerCol_1 = OpVariable %_ptr_Function_uint Function %104
- %innerRow_2 = OpVariable %_ptr_Function_uint Function %104
- %innerCol_2 = OpVariable %_ptr_Function_uint Function %104
-        %101 = OpLoad %uint %tint_symbol_2
-               OpStore %idx %101
-               OpBranch %105
-        %105 = OpLabel
-               OpLoopMerge %106 %107 None
-               OpBranch %108
-        %108 = OpLabel
-        %110 = OpLoad %uint %idx
-        %112 = OpULessThan %bool %110 %uint_4096
-        %109 = OpLogicalNot %bool %112
-               OpSelectionMerge %113 None
-               OpBranchConditional %109 %114 %113
-        %114 = OpLabel
-               OpBranch %106
-        %113 = OpLabel
-        %115 = OpLoad %uint %idx
-        %116 = OpUDiv %uint %115 %TileAOuter
-        %117 = OpLoad %uint %idx
-        %118 = OpUMod %uint %117 %TileAOuter
-        %120 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %116 %118
-               OpStore %120 %121
-        %122 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %116 %118
-               OpStore %122 %121
+ %main_inner = OpFunction %void None %98
+   %local_id = OpFunctionParameter %v3uint
+  %global_id = OpFunctionParameter %v3uint
+%local_invocation_index = OpFunctionParameter %uint
+        %103 = OpLabel
+        %idx = OpVariable %_ptr_Function_uint Function %106
+        %acc = OpVariable %_ptr_Function__arr_float_uint_16 Function %147
+    %ACached = OpVariable %_ptr_Function_float Function %123
+    %BCached = OpVariable %_ptr_Function__arr_float_RowPerThread Function %153
+      %index = OpVariable %_ptr_Function_uint Function %106
+          %t = OpVariable %_ptr_Function_uint Function %106
+   %innerRow = OpVariable %_ptr_Function_uint Function %106
+   %innerCol = OpVariable %_ptr_Function_uint Function %106
+ %innerRow_0 = OpVariable %_ptr_Function_uint Function %106
+ %innerCol_0 = OpVariable %_ptr_Function_uint Function %106
+          %k = OpVariable %_ptr_Function_uint Function %106
+      %inner = OpVariable %_ptr_Function_uint Function %106
+ %innerRow_1 = OpVariable %_ptr_Function_uint Function %106
+ %innerCol_1 = OpVariable %_ptr_Function_uint Function %106
+ %innerRow_2 = OpVariable %_ptr_Function_uint Function %106
+ %innerCol_2 = OpVariable %_ptr_Function_uint Function %106
+               OpStore %idx %local_invocation_index
                OpBranch %107
         %107 = OpLabel
-        %123 = OpLoad %uint %idx
-        %125 = OpIAdd %uint %123 %uint_256
-               OpStore %idx %125
-               OpBranch %105
-        %106 = OpLabel
+               OpLoopMerge %108 %109 None
+               OpBranch %110
+        %110 = OpLabel
+        %112 = OpLoad %uint %idx
+        %114 = OpULessThan %bool %112 %uint_4096
+        %111 = OpLogicalNot %bool %114
+               OpSelectionMerge %115 None
+               OpBranchConditional %111 %116 %115
+        %116 = OpLabel
+               OpBranch %108
+        %115 = OpLabel
+        %117 = OpLoad %uint %idx
+        %118 = OpUDiv %uint %117 %TileAOuter
+        %119 = OpLoad %uint %idx
+        %120 = OpUMod %uint %119 %TileAOuter
+        %122 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %118 %120
+               OpStore %122 %123
+        %124 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %118 %120
+               OpStore %124 %123
+               OpBranch %109
+        %109 = OpLabel
+        %125 = OpLoad %uint %idx
+        %127 = OpIAdd %uint %125 %uint_256
+               OpStore %idx %127
+               OpBranch %107
+        %108 = OpLabel
                OpControlBarrier %uint_2 %uint_2 %uint_264
-        %128 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_1
-        %129 = OpLoad %uint %128
-        %130 = OpIMul %uint %129 %RowPerThread
-        %131 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_0
-        %132 = OpLoad %uint %131
+        %130 = OpCompositeExtract %uint %local_id 1
+        %131 = OpIMul %uint %130 %RowPerThread
+        %132 = OpCompositeExtract %uint %local_id 0
         %133 = OpIMul %uint %132 %RowPerThread
-        %134 = OpAccessChain %_ptr_Input_uint %tint_symbol_1 %uint_1
-        %135 = OpLoad %uint %134
-        %136 = OpIMul %uint %135 %RowPerThread
-        %137 = OpAccessChain %_ptr_Input_uint %tint_symbol_1 %uint_0
-        %138 = OpLoad %uint %137
-        %139 = OpIMul %uint %138 %RowPerThread
-        %140 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
-        %141 = OpLoad %uint %140
-        %142 = OpISub %uint %141 %uint_1
-        %143 = OpUDiv %uint %142 %TileAOuter
-        %144 = OpIAdd %uint %143 %uint_1
+        %134 = OpCompositeExtract %uint %global_id 1
+        %135 = OpIMul %uint %134 %RowPerThread
+        %136 = OpCompositeExtract %uint %global_id 0
+        %137 = OpIMul %uint %136 %RowPerThread
+        %138 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
+        %139 = OpLoad %uint %138
+        %140 = OpISub %uint %139 %uint_1
+        %141 = OpUDiv %uint %140 %TileAOuter
+        %142 = OpIAdd %uint %141 %uint_1
                OpStore %index %uint_0
+               OpBranch %155
+        %155 = OpLabel
+               OpLoopMerge %156 %157 None
+               OpBranch %158
+        %158 = OpLabel
+        %160 = OpLoad %uint %index
+        %161 = OpIMul %uint %RowPerThread %RowPerThread
+        %162 = OpULessThan %bool %160 %161
+        %159 = OpLogicalNot %bool %162
+               OpSelectionMerge %163 None
+               OpBranchConditional %159 %164 %163
+        %164 = OpLabel
+               OpBranch %156
+        %163 = OpLabel
+        %165 = OpLoad %uint %index
+        %166 = OpAccessChain %_ptr_Function_float %acc %165
+               OpStore %166 %float_0
                OpBranch %157
         %157 = OpLabel
-               OpLoopMerge %158 %159 None
-               OpBranch %160
-        %160 = OpLabel
-        %162 = OpLoad %uint %index
-        %163 = OpIMul %uint %RowPerThread %RowPerThread
-        %164 = OpULessThan %bool %162 %163
-        %161 = OpLogicalNot %bool %164
-               OpSelectionMerge %165 None
-               OpBranchConditional %161 %166 %165
-        %166 = OpLabel
-               OpBranch %158
-        %165 = OpLabel
         %167 = OpLoad %uint %index
-        %168 = OpAccessChain %_ptr_Function_float %acc %167
-               OpStore %168 %float_0
-               OpBranch %159
-        %159 = OpLabel
-        %169 = OpLoad %uint %index
-        %170 = OpIAdd %uint %169 %uint_1
-               OpStore %index %170
-               OpBranch %157
-        %158 = OpLabel
-        %171 = OpUDiv %uint %TileAOuter %uint_16
-        %172 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_0
-        %173 = OpLoad %uint %172
-        %174 = OpIMul %uint %173 %171
-        %175 = OpUDiv %uint %TileAOuter %uint_16
-        %176 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_1
-        %177 = OpLoad %uint %176
-        %178 = OpIMul %uint %177 %175
+        %168 = OpIAdd %uint %167 %uint_1
+               OpStore %index %168
+               OpBranch %155
+        %156 = OpLabel
+        %169 = OpUDiv %uint %TileAOuter %uint_16
+        %170 = OpCompositeExtract %uint %local_id 0
+        %171 = OpIMul %uint %170 %169
+        %172 = OpUDiv %uint %TileAOuter %uint_16
+        %173 = OpCompositeExtract %uint %local_id 1
+        %174 = OpIMul %uint %173 %172
                OpStore %t %uint_0
-               OpBranch %180
-        %180 = OpLabel
-               OpLoopMerge %181 %182 None
-               OpBranch %183
+               OpBranch %176
+        %176 = OpLabel
+               OpLoopMerge %177 %178 None
+               OpBranch %179
+        %179 = OpLabel
+        %181 = OpLoad %uint %t
+        %182 = OpULessThan %bool %181 %142
+        %180 = OpLogicalNot %bool %182
+               OpSelectionMerge %183 None
+               OpBranchConditional %180 %184 %183
+        %184 = OpLabel
+               OpBranch %177
         %183 = OpLabel
-        %185 = OpLoad %uint %t
-        %186 = OpULessThan %bool %185 %144
-        %184 = OpLogicalNot %bool %186
-               OpSelectionMerge %187 None
-               OpBranchConditional %184 %188 %187
-        %188 = OpLabel
-               OpBranch %181
-        %187 = OpLabel
                OpStore %innerRow %uint_0
-               OpBranch %190
-        %190 = OpLabel
-               OpLoopMerge %191 %192 None
-               OpBranch %193
+               OpBranch %186
+        %186 = OpLabel
+               OpLoopMerge %187 %188 None
+               OpBranch %189
+        %189 = OpLabel
+        %191 = OpLoad %uint %innerRow
+        %192 = OpULessThan %bool %191 %RowPerThread
+        %190 = OpLogicalNot %bool %192
+               OpSelectionMerge %193 None
+               OpBranchConditional %190 %194 %193
+        %194 = OpLabel
+               OpBranch %187
         %193 = OpLabel
-        %195 = OpLoad %uint %innerRow
-        %196 = OpULessThan %bool %195 %RowPerThread
-        %194 = OpLogicalNot %bool %196
-               OpSelectionMerge %197 None
-               OpBranchConditional %194 %198 %197
-        %198 = OpLabel
-               OpBranch %191
-        %197 = OpLabel
                OpStore %innerCol %uint_0
-               OpBranch %200
-        %200 = OpLabel
-               OpLoopMerge %201 %202 None
-               OpBranch %203
+               OpBranch %196
+        %196 = OpLabel
+               OpLoopMerge %197 %198 None
+               OpBranch %199
+        %199 = OpLabel
+        %201 = OpLoad %uint %innerCol
+        %202 = OpULessThan %bool %201 %169
+        %200 = OpLogicalNot %bool %202
+               OpSelectionMerge %203 None
+               OpBranchConditional %200 %204 %203
+        %204 = OpLabel
+               OpBranch %197
         %203 = OpLabel
-        %205 = OpLoad %uint %innerCol
-        %206 = OpULessThan %bool %205 %171
-        %204 = OpLogicalNot %bool %206
-               OpSelectionMerge %207 None
-               OpBranchConditional %204 %208 %207
-        %208 = OpLabel
-               OpBranch %201
-        %207 = OpLabel
-        %209 = OpLoad %uint %innerRow
-        %210 = OpIAdd %uint %130 %209
-        %211 = OpLoad %uint %innerCol
-        %212 = OpIAdd %uint %174 %211
-        %213 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %210 %212
-        %215 = OpLoad %uint %innerRow
-        %216 = OpIAdd %uint %136 %215
-        %217 = OpLoad %uint %t
-        %218 = OpIMul %uint %217 %TileAOuter
-        %219 = OpIAdd %uint %218 %212
-        %214 = OpFunctionCall %float %mm_readA %216 %219
-               OpStore %213 %214
-               OpBranch %202
-        %202 = OpLabel
-        %220 = OpLoad %uint %innerCol
-        %221 = OpIAdd %uint %220 %uint_1
-               OpStore %innerCol %221
-               OpBranch %200
-        %201 = OpLabel
-               OpBranch %192
-        %192 = OpLabel
-        %222 = OpLoad %uint %innerRow
-        %223 = OpIAdd %uint %222 %uint_1
-               OpStore %innerRow %223
-               OpBranch %190
-        %191 = OpLabel
+        %205 = OpLoad %uint %innerRow
+        %206 = OpIAdd %uint %131 %205
+        %207 = OpLoad %uint %innerCol
+        %208 = OpIAdd %uint %171 %207
+        %209 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %206 %208
+        %211 = OpLoad %uint %innerRow
+        %212 = OpIAdd %uint %135 %211
+        %213 = OpLoad %uint %t
+        %214 = OpIMul %uint %213 %TileAOuter
+        %215 = OpIAdd %uint %214 %208
+        %210 = OpFunctionCall %float %mm_readA %212 %215
+               OpStore %209 %210
+               OpBranch %198
+        %198 = OpLabel
+        %216 = OpLoad %uint %innerCol
+        %217 = OpIAdd %uint %216 %uint_1
+               OpStore %innerCol %217
+               OpBranch %196
+        %197 = OpLabel
+               OpBranch %188
+        %188 = OpLabel
+        %218 = OpLoad %uint %innerRow
+        %219 = OpIAdd %uint %218 %uint_1
+               OpStore %innerRow %219
+               OpBranch %186
+        %187 = OpLabel
                OpStore %innerRow_0 %uint_0
-               OpBranch %225
-        %225 = OpLabel
-               OpLoopMerge %226 %227 None
-               OpBranch %228
+               OpBranch %221
+        %221 = OpLabel
+               OpLoopMerge %222 %223 None
+               OpBranch %224
+        %224 = OpLabel
+        %226 = OpLoad %uint %innerRow_0
+        %227 = OpULessThan %bool %226 %172
+        %225 = OpLogicalNot %bool %227
+               OpSelectionMerge %228 None
+               OpBranchConditional %225 %229 %228
+        %229 = OpLabel
+               OpBranch %222
         %228 = OpLabel
-        %230 = OpLoad %uint %innerRow_0
-        %231 = OpULessThan %bool %230 %175
-        %229 = OpLogicalNot %bool %231
-               OpSelectionMerge %232 None
-               OpBranchConditional %229 %233 %232
-        %233 = OpLabel
-               OpBranch %226
-        %232 = OpLabel
                OpStore %innerCol_0 %uint_0
-               OpBranch %235
-        %235 = OpLabel
-               OpLoopMerge %236 %237 None
-               OpBranch %238
+               OpBranch %231
+        %231 = OpLabel
+               OpLoopMerge %232 %233 None
+               OpBranch %234
+        %234 = OpLabel
+        %236 = OpLoad %uint %innerCol_0
+        %237 = OpULessThan %bool %236 %RowPerThread
+        %235 = OpLogicalNot %bool %237
+               OpSelectionMerge %238 None
+               OpBranchConditional %235 %239 %238
+        %239 = OpLabel
+               OpBranch %232
         %238 = OpLabel
-        %240 = OpLoad %uint %innerCol_0
-        %241 = OpULessThan %bool %240 %RowPerThread
-        %239 = OpLogicalNot %bool %241
-               OpSelectionMerge %242 None
-               OpBranchConditional %239 %243 %242
-        %243 = OpLabel
-               OpBranch %236
-        %242 = OpLabel
-        %244 = OpLoad %uint %innerRow_0
-        %245 = OpIAdd %uint %178 %244
-        %246 = OpLoad %uint %innerCol_0
-        %247 = OpIAdd %uint %133 %246
-        %248 = OpLoad %uint %innerCol_0
-        %249 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %248 %247
-        %251 = OpLoad %uint %t
-        %252 = OpIMul %uint %251 %TileAOuter
-        %253 = OpIAdd %uint %252 %245
-        %254 = OpLoad %uint %innerCol_0
-        %255 = OpIAdd %uint %139 %254
-        %250 = OpFunctionCall %float %mm_readB %253 %255
-               OpStore %249 %250
-               OpBranch %237
-        %237 = OpLabel
-        %256 = OpLoad %uint %innerCol_0
-        %257 = OpIAdd %uint %256 %uint_1
-               OpStore %innerCol_0 %257
-               OpBranch %235
-        %236 = OpLabel
-               OpBranch %227
-        %227 = OpLabel
-        %258 = OpLoad %uint %innerRow_0
-        %259 = OpIAdd %uint %258 %uint_1
-               OpStore %innerRow_0 %259
-               OpBranch %225
-        %226 = OpLabel
+        %240 = OpLoad %uint %innerRow_0
+        %241 = OpIAdd %uint %174 %240
+        %242 = OpLoad %uint %innerCol_0
+        %243 = OpIAdd %uint %133 %242
+        %244 = OpLoad %uint %innerCol_0
+        %245 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %244 %243
+        %247 = OpLoad %uint %t
+        %248 = OpIMul %uint %247 %TileAOuter
+        %249 = OpIAdd %uint %248 %241
+        %250 = OpLoad %uint %innerCol_0
+        %251 = OpIAdd %uint %137 %250
+        %246 = OpFunctionCall %float %mm_readB %249 %251
+               OpStore %245 %246
+               OpBranch %233
+        %233 = OpLabel
+        %252 = OpLoad %uint %innerCol_0
+        %253 = OpIAdd %uint %252 %uint_1
+               OpStore %innerCol_0 %253
+               OpBranch %231
+        %232 = OpLabel
+               OpBranch %223
+        %223 = OpLabel
+        %254 = OpLoad %uint %innerRow_0
+        %255 = OpIAdd %uint %254 %uint_1
+               OpStore %innerRow_0 %255
+               OpBranch %221
+        %222 = OpLabel
                OpControlBarrier %uint_2 %uint_2 %uint_264
                OpStore %k %uint_0
-               OpBranch %262
-        %262 = OpLabel
-               OpLoopMerge %263 %264 None
-               OpBranch %265
+               OpBranch %258
+        %258 = OpLabel
+               OpLoopMerge %259 %260 None
+               OpBranch %261
+        %261 = OpLabel
+        %263 = OpLoad %uint %k
+        %264 = OpULessThan %bool %263 %TileAOuter
+        %262 = OpLogicalNot %bool %264
+               OpSelectionMerge %265 None
+               OpBranchConditional %262 %266 %265
+        %266 = OpLabel
+               OpBranch %259
         %265 = OpLabel
-        %267 = OpLoad %uint %k
-        %268 = OpULessThan %bool %267 %TileAOuter
-        %266 = OpLogicalNot %bool %268
-               OpSelectionMerge %269 None
-               OpBranchConditional %266 %270 %269
-        %270 = OpLabel
-               OpBranch %263
-        %269 = OpLabel
                OpStore %inner %uint_0
-               OpBranch %272
-        %272 = OpLabel
-               OpLoopMerge %273 %274 None
-               OpBranch %275
+               OpBranch %268
+        %268 = OpLabel
+               OpLoopMerge %269 %270 None
+               OpBranch %271
+        %271 = OpLabel
+        %273 = OpLoad %uint %inner
+        %274 = OpULessThan %bool %273 %RowPerThread
+        %272 = OpLogicalNot %bool %274
+               OpSelectionMerge %275 None
+               OpBranchConditional %272 %276 %275
+        %276 = OpLabel
+               OpBranch %269
         %275 = OpLabel
         %277 = OpLoad %uint %inner
-        %278 = OpULessThan %bool %277 %RowPerThread
-        %276 = OpLogicalNot %bool %278
-               OpSelectionMerge %279 None
-               OpBranchConditional %276 %280 %279
-        %280 = OpLabel
-               OpBranch %273
-        %279 = OpLabel
-        %281 = OpLoad %uint %inner
-        %282 = OpAccessChain %_ptr_Function_float %BCached %281
-        %283 = OpLoad %uint %k
+        %278 = OpAccessChain %_ptr_Function_float %BCached %277
+        %279 = OpLoad %uint %k
+        %280 = OpLoad %uint %inner
+        %281 = OpIAdd %uint %133 %280
+        %282 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %279 %281
+        %283 = OpLoad %float %282
+               OpStore %278 %283
+               OpBranch %270
+        %270 = OpLabel
         %284 = OpLoad %uint %inner
-        %285 = OpIAdd %uint %133 %284
-        %286 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %283 %285
-        %287 = OpLoad %float %286
-               OpStore %282 %287
-               OpBranch %274
-        %274 = OpLabel
-        %288 = OpLoad %uint %inner
-        %289 = OpIAdd %uint %288 %uint_1
-               OpStore %inner %289
-               OpBranch %272
-        %273 = OpLabel
+        %285 = OpIAdd %uint %284 %uint_1
+               OpStore %inner %285
+               OpBranch %268
+        %269 = OpLabel
                OpStore %innerRow_1 %uint_0
-               OpBranch %291
-        %291 = OpLabel
-               OpLoopMerge %292 %293 None
-               OpBranch %294
+               OpBranch %287
+        %287 = OpLabel
+               OpLoopMerge %288 %289 None
+               OpBranch %290
+        %290 = OpLabel
+        %292 = OpLoad %uint %innerRow_1
+        %293 = OpULessThan %bool %292 %RowPerThread
+        %291 = OpLogicalNot %bool %293
+               OpSelectionMerge %294 None
+               OpBranchConditional %291 %295 %294
+        %295 = OpLabel
+               OpBranch %288
         %294 = OpLabel
         %296 = OpLoad %uint %innerRow_1
-        %297 = OpULessThan %bool %296 %RowPerThread
-        %295 = OpLogicalNot %bool %297
-               OpSelectionMerge %298 None
-               OpBranchConditional %295 %299 %298
-        %299 = OpLabel
-               OpBranch %292
-        %298 = OpLabel
-        %300 = OpLoad %uint %innerRow_1
-        %301 = OpIAdd %uint %130 %300
-        %302 = OpLoad %uint %k
-        %303 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %301 %302
-        %304 = OpLoad %float %303
-               OpStore %ACached %304
+        %297 = OpIAdd %uint %131 %296
+        %298 = OpLoad %uint %k
+        %299 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %297 %298
+        %300 = OpLoad %float %299
+               OpStore %ACached %300
                OpStore %innerCol_1 %uint_0
-               OpBranch %306
-        %306 = OpLabel
-               OpLoopMerge %307 %308 None
-               OpBranch %309
+               OpBranch %302
+        %302 = OpLabel
+               OpLoopMerge %303 %304 None
+               OpBranch %305
+        %305 = OpLabel
+        %307 = OpLoad %uint %innerCol_1
+        %308 = OpULessThan %bool %307 %RowPerThread
+        %306 = OpLogicalNot %bool %308
+               OpSelectionMerge %309 None
+               OpBranchConditional %306 %310 %309
+        %310 = OpLabel
+               OpBranch %303
         %309 = OpLabel
-        %311 = OpLoad %uint %innerCol_1
-        %312 = OpULessThan %bool %311 %RowPerThread
-        %310 = OpLogicalNot %bool %312
-               OpSelectionMerge %313 None
-               OpBranchConditional %310 %314 %313
-        %314 = OpLabel
-               OpBranch %307
-        %313 = OpLabel
-        %315 = OpLoad %uint %innerRow_1
-        %316 = OpIMul %uint %315 %RowPerThread
-        %317 = OpLoad %uint %innerCol_1
-        %318 = OpIAdd %uint %316 %317
-        %319 = OpAccessChain %_ptr_Function_float %acc %318
-        %320 = OpAccessChain %_ptr_Function_float %acc %318
+        %311 = OpLoad %uint %innerRow_1
+        %312 = OpIMul %uint %311 %RowPerThread
+        %313 = OpLoad %uint %innerCol_1
+        %314 = OpIAdd %uint %312 %313
+        %315 = OpAccessChain %_ptr_Function_float %acc %314
+        %316 = OpAccessChain %_ptr_Function_float %acc %314
+        %317 = OpLoad %float %316
+        %318 = OpLoad %float %ACached
+        %319 = OpLoad %uint %innerCol_1
+        %320 = OpAccessChain %_ptr_Function_float %BCached %319
         %321 = OpLoad %float %320
-        %322 = OpLoad %float %ACached
-        %323 = OpLoad %uint %innerCol_1
-        %324 = OpAccessChain %_ptr_Function_float %BCached %323
-        %325 = OpLoad %float %324
-        %326 = OpFMul %float %322 %325
-        %327 = OpFAdd %float %321 %326
-               OpStore %319 %327
-               OpBranch %308
-        %308 = OpLabel
-        %328 = OpLoad %uint %innerCol_1
+        %322 = OpFMul %float %318 %321
+        %323 = OpFAdd %float %317 %322
+               OpStore %315 %323
+               OpBranch %304
+        %304 = OpLabel
+        %324 = OpLoad %uint %innerCol_1
+        %325 = OpIAdd %uint %324 %uint_1
+               OpStore %innerCol_1 %325
+               OpBranch %302
+        %303 = OpLabel
+               OpBranch %289
+        %289 = OpLabel
+        %326 = OpLoad %uint %innerRow_1
+        %327 = OpIAdd %uint %326 %uint_1
+               OpStore %innerRow_1 %327
+               OpBranch %287
+        %288 = OpLabel
+               OpBranch %260
+        %260 = OpLabel
+        %328 = OpLoad %uint %k
         %329 = OpIAdd %uint %328 %uint_1
-               OpStore %innerCol_1 %329
-               OpBranch %306
-        %307 = OpLabel
-               OpBranch %293
-        %293 = OpLabel
-        %330 = OpLoad %uint %innerRow_1
-        %331 = OpIAdd %uint %330 %uint_1
-               OpStore %innerRow_1 %331
-               OpBranch %291
-        %292 = OpLabel
-               OpBranch %264
-        %264 = OpLabel
-        %332 = OpLoad %uint %k
-        %333 = OpIAdd %uint %332 %uint_1
-               OpStore %k %333
-               OpBranch %262
-        %263 = OpLabel
+               OpStore %k %329
+               OpBranch %258
+        %259 = OpLabel
                OpControlBarrier %uint_2 %uint_2 %uint_264
-               OpBranch %182
-        %182 = OpLabel
-        %335 = OpLoad %uint %t
-        %336 = OpIAdd %uint %335 %uint_1
-               OpStore %t %336
-               OpBranch %180
-        %181 = OpLabel
+               OpBranch %178
+        %178 = OpLabel
+        %331 = OpLoad %uint %t
+        %332 = OpIAdd %uint %331 %uint_1
+               OpStore %t %332
+               OpBranch %176
+        %177 = OpLabel
                OpStore %innerRow_2 %uint_0
-               OpBranch %338
-        %338 = OpLabel
-               OpLoopMerge %339 %340 None
-               OpBranch %341
+               OpBranch %334
+        %334 = OpLabel
+               OpLoopMerge %335 %336 None
+               OpBranch %337
+        %337 = OpLabel
+        %339 = OpLoad %uint %innerRow_2
+        %340 = OpULessThan %bool %339 %RowPerThread
+        %338 = OpLogicalNot %bool %340
+               OpSelectionMerge %341 None
+               OpBranchConditional %338 %342 %341
+        %342 = OpLabel
+               OpBranch %335
         %341 = OpLabel
-        %343 = OpLoad %uint %innerRow_2
-        %344 = OpULessThan %bool %343 %RowPerThread
-        %342 = OpLogicalNot %bool %344
-               OpSelectionMerge %345 None
-               OpBranchConditional %342 %346 %345
-        %346 = OpLabel
-               OpBranch %339
-        %345 = OpLabel
                OpStore %innerCol_2 %uint_0
-               OpBranch %348
-        %348 = OpLabel
-               OpLoopMerge %349 %350 None
-               OpBranch %351
+               OpBranch %344
+        %344 = OpLabel
+               OpLoopMerge %345 %346 None
+               OpBranch %347
+        %347 = OpLabel
+        %349 = OpLoad %uint %innerCol_2
+        %350 = OpULessThan %bool %349 %RowPerThread
+        %348 = OpLogicalNot %bool %350
+               OpSelectionMerge %351 None
+               OpBranchConditional %348 %352 %351
+        %352 = OpLabel
+               OpBranch %345
         %351 = OpLabel
-        %353 = OpLoad %uint %innerCol_2
-        %354 = OpULessThan %bool %353 %RowPerThread
-        %352 = OpLogicalNot %bool %354
-               OpSelectionMerge %355 None
-               OpBranchConditional %352 %356 %355
-        %356 = OpLabel
-               OpBranch %349
-        %355 = OpLabel
-        %357 = OpLoad %uint %innerRow_2
-        %358 = OpIMul %uint %357 %RowPerThread
-        %359 = OpLoad %uint %innerCol_2
-        %360 = OpIAdd %uint %358 %359
-        %362 = OpLoad %uint %innerRow_2
-        %363 = OpIAdd %uint %136 %362
+        %353 = OpLoad %uint %innerRow_2
+        %354 = OpIMul %uint %353 %RowPerThread
+        %355 = OpLoad %uint %innerCol_2
+        %356 = OpIAdd %uint %354 %355
+        %358 = OpLoad %uint %innerRow_2
+        %359 = OpIAdd %uint %135 %358
+        %360 = OpLoad %uint %innerCol_2
+        %361 = OpIAdd %uint %137 %360
+        %362 = OpAccessChain %_ptr_Function_float %acc %356
+        %363 = OpLoad %float %362
+        %357 = OpFunctionCall %void %mm_write %359 %361 %363
+               OpBranch %346
+        %346 = OpLabel
         %364 = OpLoad %uint %innerCol_2
-        %365 = OpIAdd %uint %139 %364
-        %366 = OpAccessChain %_ptr_Function_float %acc %360
-        %367 = OpLoad %float %366
-        %361 = OpFunctionCall %void %mm_write %363 %365 %367
-               OpBranch %350
-        %350 = OpLabel
-        %368 = OpLoad %uint %innerCol_2
-        %369 = OpIAdd %uint %368 %uint_1
-               OpStore %innerCol_2 %369
-               OpBranch %348
-        %349 = OpLabel
-               OpBranch %340
-        %340 = OpLabel
-        %370 = OpLoad %uint %innerRow_2
-        %371 = OpIAdd %uint %370 %uint_1
-               OpStore %innerRow_2 %371
-               OpBranch %338
-        %339 = OpLabel
+        %365 = OpIAdd %uint %364 %uint_1
+               OpStore %innerCol_2 %365
+               OpBranch %344
+        %345 = OpLabel
+               OpBranch %336
+        %336 = OpLabel
+        %366 = OpLoad %uint %innerRow_2
+        %367 = OpIAdd %uint %366 %uint_1
+               OpStore %innerRow_2 %367
+               OpBranch %334
+        %335 = OpLabel
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %368
+        %370 = OpLabel
+        %372 = OpLoad %v3uint %local_id_1
+        %373 = OpLoad %v3uint %global_id_1
+        %374 = OpLoad %uint %local_invocation_index_1
+        %371 = OpFunctionCall %void %main_inner %372 %373 %374
                OpReturn
                OpFunctionEnd
diff --git a/test/bug/tint/922.wgsl.expected.spvasm b/test/bug/tint/922.wgsl.expected.spvasm
index 1f01f8a..f81704a 100644
--- a/test/bug/tint/922.wgsl.expected.spvasm
+++ b/test/bug/tint/922.wgsl.expected.spvasm
@@ -1,12 +1,20 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 383
+; Bound: 387
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4 %tint_symbol_6 %tint_symbol_7 %tint_symbol_8
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %a_Position_1 %a_UV_1 %a_Color_1 %a_Normal_1 %a_PosMtxIdx_1 %v_Color_1 %v_TexCoord_1 %member_1 %vertex_point_size
+               OpName %a_Position_1 "a_Position_1"
+               OpName %a_UV_1 "a_UV_1"
+               OpName %a_Color_1 "a_Color_1"
+               OpName %a_Normal_1 "a_Normal_1"
+               OpName %a_PosMtxIdx_1 "a_PosMtxIdx_1"
+               OpName %v_Color_1 "v_Color_1"
+               OpName %v_TexCoord_1 "v_TexCoord_1"
+               OpName %member_1 "member_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %ub_SceneParams "ub_SceneParams"
                OpMemberName %ub_SceneParams 0 "u_Projection"
                OpName %Mat4x4_ "Mat4x4_"
@@ -37,14 +45,6 @@
                OpName %v_Color "v_Color"
                OpName %v_TexCoord "v_TexCoord"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_6 "tint_symbol_6"
-               OpName %tint_symbol_7 "tint_symbol_7"
-               OpName %tint_symbol_8 "tint_symbol_8"
                OpName %Mat4x3GetCol0_ "Mat4x3GetCol0_"
                OpName %m "m"
                OpName %m1 "m1"
@@ -104,10 +104,22 @@
                OpMemberName %VertexOutput 0 "v_Color"
                OpMemberName %VertexOutput 1 "v_TexCoord"
                OpMemberName %VertexOutput 2 "member"
-               OpName %tint_symbol_9 "tint_symbol_9"
-               OpName %tint_symbol_5 "tint_symbol_5"
+               OpName %main_inner "main_inner"
+               OpName %a_Position "a_Position"
+               OpName %a_UV "a_UV"
+               OpName %a_Color "a_Color"
+               OpName %a_Normal "a_Normal"
+               OpName %a_PosMtxIdx "a_PosMtxIdx"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %a_Position_1 Location 0
+               OpDecorate %a_UV_1 Location 1
+               OpDecorate %a_Color_1 Location 2
+               OpDecorate %a_Normal_1 Location 3
+               OpDecorate %a_PosMtxIdx_1 Location 4
+               OpDecorate %v_Color_1 Location 0
+               OpDecorate %v_TexCoord_1 Location 1
+               OpDecorate %member_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %ub_SceneParams Block
                OpMemberDecorate %ub_SceneParams 0 Offset 0
                OpMemberDecorate %Mat4x4_ 0 Offset 0
@@ -135,22 +147,32 @@
                OpDecorate %global2 NonWritable
                OpDecorate %global2 DescriptorSet 0
                OpDecorate %global2 Binding 2
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_1 Location 1
-               OpDecorate %tint_symbol_2 Location 2
-               OpDecorate %tint_symbol_3 Location 3
-               OpDecorate %tint_symbol_4 Location 4
-               OpDecorate %tint_symbol_6 Location 0
-               OpDecorate %tint_symbol_7 Location 1
-               OpDecorate %tint_symbol_8 BuiltIn Position
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
                OpMemberDecorate %VertexOutput 2 Offset 32
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+    %v3float = OpTypeVector %float 3
+%_ptr_Input_v3float = OpTypePointer Input %v3float
+%a_Position_1 = OpVariable %_ptr_Input_v3float Input
+    %v2float = OpTypeVector %float 2
+%_ptr_Input_v2float = OpTypePointer Input %v2float
+     %a_UV_1 = OpVariable %_ptr_Input_v2float Input
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+  %a_Color_1 = OpVariable %_ptr_Input_v4float Input
+ %a_Normal_1 = OpVariable %_ptr_Input_v3float Input
+%_ptr_Input_float = OpTypePointer Input %float
+%a_PosMtxIdx_1 = OpVariable %_ptr_Input_float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+         %16 = OpConstantNull %v4float
+  %v_Color_1 = OpVariable %_ptr_Output_v4float Output %16
+%_ptr_Output_v2float = OpTypePointer Output %v2float
+         %19 = OpConstantNull %v2float
+%v_TexCoord_1 = OpVariable %_ptr_Output_v2float Output %19
+   %member_1 = OpVariable %_ptr_Output_v4float Output %16
+%_ptr_Output_float = OpTypePointer Output %float
+         %23 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %23
     %Mat4x4_ = OpTypeStruct %v4float %v4float %v4float %v4float
 %ub_SceneParams = OpTypeStruct %Mat4x4_
 %_ptr_Uniform_ub_SceneParams = OpTypePointer Uniform %ub_SceneParams
@@ -168,37 +190,19 @@
 %ub_PacketParams = OpTypeStruct %_arr_Mat4x3__uint_32
 %_ptr_Uniform_ub_PacketParams = OpTypePointer Uniform %ub_PacketParams
     %global2 = OpVariable %_ptr_Uniform_ub_PacketParams Uniform
-    %v3float = OpTypeVector %float 3
 %_ptr_Private_v3float = OpTypePointer Private %v3float
-         %26 = OpConstantNull %v3float
-%a_Position1 = OpVariable %_ptr_Private_v3float Private %26
-    %v2float = OpTypeVector %float 2
+         %43 = OpConstantNull %v3float
+%a_Position1 = OpVariable %_ptr_Private_v3float Private %43
 %_ptr_Private_v2float = OpTypePointer Private %v2float
-         %30 = OpConstantNull %v2float
-      %a_UV1 = OpVariable %_ptr_Private_v2float Private %30
+      %a_UV1 = OpVariable %_ptr_Private_v2float Private %19
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %33 = OpConstantNull %v4float
-   %a_Color1 = OpVariable %_ptr_Private_v4float Private %33
-  %a_Normal1 = OpVariable %_ptr_Private_v3float Private %26
+   %a_Color1 = OpVariable %_ptr_Private_v4float Private %16
+  %a_Normal1 = OpVariable %_ptr_Private_v3float Private %43
 %_ptr_Private_float = OpTypePointer Private %float
-%a_PosMtxIdx1 = OpVariable %_ptr_Private_float Private %4
-    %v_Color = OpVariable %_ptr_Private_v4float Private %33
- %v_TexCoord = OpVariable %_ptr_Private_v2float Private %30
-%gl_Position = OpVariable %_ptr_Private_v4float Private %33
-%_ptr_Input_v3float = OpTypePointer Input %v3float
-%tint_symbol = OpVariable %_ptr_Input_v3float Input
-%_ptr_Input_v2float = OpTypePointer Input %v2float
-%tint_symbol_1 = OpVariable %_ptr_Input_v2float Input
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol_2 = OpVariable %_ptr_Input_v4float Input
-%tint_symbol_3 = OpVariable %_ptr_Input_v3float Input
-%_ptr_Input_float = OpTypePointer Input %float
-%tint_symbol_4 = OpVariable %_ptr_Input_float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_6 = OpVariable %_ptr_Output_v4float Output %33
-%_ptr_Output_v2float = OpTypePointer Output %v2float
-%tint_symbol_7 = OpVariable %_ptr_Output_v2float Output %30
-%tint_symbol_8 = OpVariable %_ptr_Output_v4float Output %33
+%a_PosMtxIdx1 = OpVariable %_ptr_Private_float Private %23
+    %v_Color = OpVariable %_ptr_Private_v4float Private %16
+ %v_TexCoord = OpVariable %_ptr_Private_v2float Private %19
+%gl_Position = OpVariable %_ptr_Private_v4float Private %16
          %54 = OpTypeFunction %v3float %Mat4x3_
 %_ptr_Function_Mat4x3_ = OpTypePointer Function %Mat4x3_
          %60 = OpConstantNull %Mat4x3_
@@ -235,7 +239,7 @@
       %int_0 = OpConstant %int 0
 %_ptr_Uniform_Mat4x2_ = OpTypePointer Uniform %Mat4x2_
 %VertexOutput = OpTypeStruct %v4float %v2float %v4float
-        %362 = OpTypeFunction %void %VertexOutput
+        %362 = OpTypeFunction %VertexOutput %v3float %v2float %v4float %v3float %float
 %Mat4x3GetCol0_ = OpFunction %v3float None %54
           %m = OpFunctionParameter %Mat4x3_
          %57 = OpLabel
@@ -309,7 +313,7 @@
           %v = OpFunctionParameter %v4float
         %117 = OpLabel
          %m9 = OpVariable %_ptr_Function_Mat4x4_ Function %120
-         %v1 = OpVariable %_ptr_Function_v4float Function %33
+         %v1 = OpVariable %_ptr_Function_v4float Function %16
                OpStore %m9 %m8
                OpStore %v1 %v
         %123 = OpLoad %Mat4x4_ %m9
@@ -336,7 +340,7 @@
          %v2 = OpFunctionParameter %v4float
         %144 = OpLabel
         %m11 = OpVariable %_ptr_Function_Mat4x3_ Function %60
-         %v3 = OpVariable %_ptr_Function_v4float Function %33
+         %v3 = OpVariable %_ptr_Function_v4float Function %16
                OpStore %m11 %m10
                OpStore %v3 %v2
         %147 = OpLoad %Mat4x3_ %m11
@@ -359,7 +363,7 @@
          %v4 = OpFunctionParameter %v4float
         %164 = OpLabel
         %m13 = OpVariable %_ptr_Function_Mat4x2_ Function %167
-         %v5 = OpVariable %_ptr_Function_v4float Function %33
+         %v5 = OpVariable %_ptr_Function_v4float Function %16
                OpStore %m13 %m12
                OpStore %v5 %v4
         %169 = OpLoad %Mat4x2_ %m13
@@ -377,7 +381,7 @@
          %v6 = OpFunctionParameter %v3float
         %m14 = OpFunctionParameter %Mat4x3_
         %182 = OpLabel
-         %v7 = OpVariable %_ptr_Function_v3float Function %26
+         %v7 = OpVariable %_ptr_Function_v3float Function %43
         %m15 = OpVariable %_ptr_Function_Mat4x3_ Function %60
                OpStore %v7 %v6
                OpStore %m15 %m14
@@ -403,7 +407,7 @@
    %_Mat4x4_ = OpFunction %Mat4x4_ None %203
           %n = OpFunctionParameter %float
         %206 = OpLabel
-         %n1 = OpVariable %_ptr_Function_float Function %4
+         %n1 = OpVariable %_ptr_Function_float Function %23
           %o = OpVariable %_ptr_Function_Mat4x4_ Function %120
                OpStore %n1 %n
         %210 = OpLoad %float %n1
@@ -470,7 +474,7 @@
    %_Mat4x3_ = OpFunction %Mat4x3_ None %259
          %n2 = OpFunctionParameter %float
         %262 = OpLabel
-         %n3 = OpVariable %_ptr_Function_float Function %4
+         %n3 = OpVariable %_ptr_Function_float Function %23
          %o3 = OpVariable %_ptr_Function_Mat4x3_ Function %60
                OpStore %n3 %n2
         %265 = OpLoad %float %n3
@@ -512,7 +516,7 @@
       %main1 = OpFunction %void None %291
         %294 = OpLabel
    %t_PosMtx = OpVariable %_ptr_Function_Mat4x3_ Function %60
-%t_TexSpaceCoord = OpVariable %_ptr_Function_v2float Function %30
+%t_TexSpaceCoord = OpVariable %_ptr_Function_v2float Function %19
         %298 = OpLoad %float %a_PosMtxIdx1
         %299 = OpConvertFToS %int %298
         %302 = OpAccessChain %_ptr_Uniform_Mat4x3_ %global2 %uint_0 %299
@@ -580,35 +584,39 @@
         %338 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_9 = OpFunction %void None %362
-%tint_symbol_5 = OpFunctionParameter %VertexOutput
-        %366 = OpLabel
-        %367 = OpCompositeExtract %v4float %tint_symbol_5 0
-               OpStore %tint_symbol_6 %367
-        %368 = OpCompositeExtract %v2float %tint_symbol_5 1
-               OpStore %tint_symbol_7 %368
-        %369 = OpCompositeExtract %v4float %tint_symbol_5 2
-               OpStore %tint_symbol_8 %369
-               OpReturn
+ %main_inner = OpFunction %VertexOutput None %362
+ %a_Position = OpFunctionParameter %v3float
+       %a_UV = OpFunctionParameter %v2float
+    %a_Color = OpFunctionParameter %v4float
+   %a_Normal = OpFunctionParameter %v3float
+%a_PosMtxIdx = OpFunctionParameter %float
+        %370 = OpLabel
+               OpStore %a_Position1 %a_Position
+               OpStore %a_UV1 %a_UV
+               OpStore %a_Color1 %a_Color
+               OpStore %a_Normal1 %a_Normal
+               OpStore %a_PosMtxIdx1 %a_PosMtxIdx
+        %371 = OpFunctionCall %void %main1
+        %372 = OpLoad %v4float %v_Color
+        %373 = OpLoad %v2float %v_TexCoord
+        %374 = OpLoad %v4float %gl_Position
+        %375 = OpCompositeConstruct %VertexOutput %372 %373 %374
+               OpReturnValue %375
                OpFunctionEnd
        %main = OpFunction %void None %291
-        %371 = OpLabel
-               OpStore %tint_pointsize %float_1
-        %372 = OpLoad %v3float %tint_symbol
-               OpStore %a_Position1 %372
-        %373 = OpLoad %v2float %tint_symbol_1
-               OpStore %a_UV1 %373
-        %374 = OpLoad %v4float %tint_symbol_2
-               OpStore %a_Color1 %374
-        %375 = OpLoad %v3float %tint_symbol_3
-               OpStore %a_Normal1 %375
-        %376 = OpLoad %float %tint_symbol_4
-               OpStore %a_PosMtxIdx1 %376
-        %377 = OpFunctionCall %void %main1
-        %378 = OpLoad %v4float %v_Color
-        %379 = OpLoad %v2float %v_TexCoord
-        %380 = OpLoad %v4float %gl_Position
-        %382 = OpCompositeConstruct %VertexOutput %378 %379 %380
-        %381 = OpFunctionCall %void %tint_symbol_9 %382
+        %377 = OpLabel
+        %379 = OpLoad %v3float %a_Position_1
+        %380 = OpLoad %v2float %a_UV_1
+        %381 = OpLoad %v4float %a_Color_1
+        %382 = OpLoad %v3float %a_Normal_1
+        %383 = OpLoad %float %a_PosMtxIdx_1
+        %378 = OpFunctionCall %VertexOutput %main_inner %379 %380 %381 %382 %383
+        %384 = OpCompositeExtract %v4float %378 0
+               OpStore %v_Color_1 %384
+        %385 = OpCompositeExtract %v2float %378 1
+               OpStore %v_TexCoord_1 %385
+        %386 = OpCompositeExtract %v4float %378 2
+               OpStore %member_1 %386
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/bug/tint/926.wgsl.expected.spvasm b/test/bug/tint/926.wgsl.expected.spvasm
index 5389a2c..8b29d27 100644
--- a/test/bug/tint/926.wgsl.expected.spvasm
+++ b/test/bug/tint/926.wgsl.expected.spvasm
@@ -1,41 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 21
+; Bound: 27
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %computeMain "computeMain"
+               OpEntryPoint GLCompute %computeMain "computeMain" %global_id_1
                OpExecutionMode %computeMain LocalSize 1 1 1
+               OpName %global_id_1 "global_id_1"
                OpName %DrawIndirectArgs "DrawIndirectArgs"
                OpMemberName %DrawIndirectArgs 0 "vertexCount"
                OpName %drawOut "drawOut"
                OpName %cubeVerts "cubeVerts"
-               OpName %tint_symbol "tint_symbol"
+               OpName %computeMain_inner "computeMain_inner"
+               OpName %global_id "global_id"
                OpName %computeMain "computeMain"
+               OpDecorate %global_id_1 BuiltIn GlobalInvocationId
                OpDecorate %DrawIndirectArgs Block
                OpMemberDecorate %DrawIndirectArgs 0 Offset 0
                OpDecorate %drawOut DescriptorSet 0
                OpDecorate %drawOut Binding 5
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
+     %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%global_id_1 = OpVariable %_ptr_Input_v3uint Input
 %DrawIndirectArgs = OpTypeStruct %uint
 %_ptr_StorageBuffer_DrawIndirectArgs = OpTypePointer StorageBuffer %DrawIndirectArgs
     %drawOut = OpVariable %_ptr_StorageBuffer_DrawIndirectArgs StorageBuffer
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_uint = OpTypePointer Private %uint
   %cubeVerts = OpVariable %_ptr_Private_uint Private %uint_0
-     %v3uint = OpTypeVector %uint 3
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
-         %11 = OpTypeFunction %void
+         %11 = OpTypeFunction %void %v3uint
      %uint_1 = OpConstant %uint 1
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%computeMain = OpFunction %void None %11
-         %14 = OpLabel
-         %19 = OpAccessChain %_ptr_StorageBuffer_uint %drawOut %uint_0
-         %20 = OpLoad %uint %cubeVerts
-         %15 = OpAtomicIAdd %uint %19 %uint_1 %uint_0 %20
+         %22 = OpTypeFunction %void
+%computeMain_inner = OpFunction %void None %11
+  %global_id = OpFunctionParameter %v3uint
+         %15 = OpLabel
+         %20 = OpAccessChain %_ptr_StorageBuffer_uint %drawOut %uint_0
+         %21 = OpLoad %uint %cubeVerts
+         %16 = OpAtomicIAdd %uint %20 %uint_1 %uint_0 %21
+               OpReturn
+               OpFunctionEnd
+%computeMain = OpFunction %void None %22
+         %24 = OpLabel
+         %26 = OpLoad %v3uint %global_id_1
+         %25 = OpFunctionCall %void %computeMain_inner %26
                OpReturn
                OpFunctionEnd
diff --git a/test/bug/tint/942.wgsl.expected.spvasm b/test/bug/tint/942.wgsl.expected.spvasm
index 29414dc..0111307 100644
--- a/test/bug/tint/942.wgsl.expected.spvasm
+++ b/test/bug/tint/942.wgsl.expected.spvasm
@@ -1,13 +1,16 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 254
+; Bound: 259
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol_2 %tint_symbol %tint_symbol_1
+               OpEntryPoint GLCompute %main "main" %WorkGroupID_1 %LocalInvocationID_1 %local_invocation_index_1
                OpExecutionMode %main LocalSize 64 1 1
+               OpName %WorkGroupID_1 "WorkGroupID_1"
+               OpName %LocalInvocationID_1 "LocalInvocationID_1"
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %samp "samp"
                OpName %Params "Params"
                OpMemberName %Params 0 "filterDim"
@@ -19,10 +22,10 @@
                OpMemberName %Flip 0 "value"
                OpName %flip "flip"
                OpName %tile "tile"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %main "main"
+               OpName %main_inner "main_inner"
+               OpName %WorkGroupID "WorkGroupID"
+               OpName %LocalInvocationID "LocalInvocationID"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %idx "idx"
                OpName %r "r"
                OpName %c "c"
@@ -33,6 +36,10 @@
                OpName %acc "acc"
                OpName %f "f"
                OpName %i "i"
+               OpName %main "main"
+               OpDecorate %WorkGroupID_1 BuiltIn WorkgroupId
+               OpDecorate %LocalInvocationID_1 BuiltIn LocalInvocationId
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
                OpDecorate %samp DescriptorSet 0
                OpDecorate %samp Binding 0
                OpDecorate %Params Block
@@ -53,23 +60,26 @@
                OpDecorate %flip Binding 3
                OpDecorate %_arr_v3float_uint_256 ArrayStride 16
                OpDecorate %_arr__arr_v3float_uint_256_uint_4 ArrayStride 4096
-               OpDecorate %tint_symbol BuiltIn WorkgroupId
-               OpDecorate %tint_symbol_1 BuiltIn LocalInvocationId
-               OpDecorate %tint_symbol_2 BuiltIn LocalInvocationIndex
-          %3 = OpTypeSampler
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-       %samp = OpVariable %_ptr_UniformConstant_3 UniformConstant
        %uint = OpTypeInt 32 0
+     %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%WorkGroupID_1 = OpVariable %_ptr_Input_v3uint Input
+%LocalInvocationID_1 = OpVariable %_ptr_Input_v3uint Input
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+       %samp = OpVariable %_ptr_UniformConstant_10 UniformConstant
      %Params = OpTypeStruct %uint %uint
 %_ptr_Uniform_Params = OpTypePointer Uniform %Params
      %params = OpVariable %_ptr_Uniform_Params Uniform
       %float = OpTypeFloat 32
-         %10 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-   %inputTex = OpVariable %_ptr_UniformConstant_10 UniformConstant
-         %14 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
-  %outputTex = OpVariable %_ptr_UniformConstant_14 UniformConstant
+         %16 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
+   %inputTex = OpVariable %_ptr_UniformConstant_16 UniformConstant
+         %20 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_20 = OpTypePointer UniformConstant %20
+  %outputTex = OpVariable %_ptr_UniformConstant_20 UniformConstant
        %Flip = OpTypeStruct %uint
 %_ptr_Uniform_Flip = OpTypePointer Uniform %Flip
        %flip = OpVariable %_ptr_Uniform_Flip Uniform
@@ -80,20 +90,14 @@
 %_arr__arr_v3float_uint_256_uint_4 = OpTypeArray %_arr_v3float_uint_256 %uint_4
 %_ptr_Workgroup__arr__arr_v3float_uint_256_uint_4 = OpTypePointer Workgroup %_arr__arr_v3float_uint_256_uint_4
        %tile = OpVariable %_ptr_Workgroup__arr__arr_v3float_uint_256_uint_4 Workgroup
-     %v3uint = OpTypeVector %uint 3
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
-%tint_symbol_1 = OpVariable %_ptr_Input_v3uint Input
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol_2 = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
-         %31 = OpTypeFunction %void
+         %31 = OpTypeFunction %void %v3uint %v3uint %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %38 = OpConstantNull %uint
+         %40 = OpConstantNull %uint
   %uint_1024 = OpConstant %uint 1024
        %bool = OpTypeBool
 %_ptr_Workgroup_v3float = OpTypePointer Workgroup %v3float
-         %56 = OpConstantNull %v3float
+         %58 = OpConstantNull %v3float
     %uint_64 = OpConstant %uint 64
      %uint_2 = OpConstant %uint 2
    %uint_264 = OpConstant %uint 264
@@ -108,76 +112,77 @@
 %_ptr_Function_v2int = OpTypePointer Function %v2int
         %119 = OpConstantNull %v2int
     %v4float = OpTypeVector %float 4
-        %138 = OpTypeSampledImage %10
+        %137 = OpTypeSampledImage %16
     %v2float = OpTypeVector %float 2
  %float_0_25 = OpConstant %float 0.25
-        %144 = OpConstantComposite %v2float %float_0_25 %float_0_25
+        %143 = OpConstantComposite %v2float %float_0_25 %float_0_25
     %float_0 = OpConstant %float 0
      %v2bool = OpTypeVector %bool 2
-        %209 = OpConstantComposite %v3float %float_0 %float_0 %float_0
+        %207 = OpConstantComposite %v3float %float_0 %float_0 %float_0
 %_ptr_Function_v3float = OpTypePointer Function %v3float
     %float_1 = OpConstant %float 1
-       %main = OpFunction %void None %31
-         %34 = OpLabel
-        %idx = OpVariable %_ptr_Function_uint Function %38
-          %r = OpVariable %_ptr_Function_uint Function %38
-          %c = OpVariable %_ptr_Function_uint Function %38
+        %252 = OpTypeFunction %void
+ %main_inner = OpFunction %void None %31
+%WorkGroupID = OpFunctionParameter %v3uint
+%LocalInvocationID = OpFunctionParameter %v3uint
+%local_invocation_index = OpFunctionParameter %uint
+         %37 = OpLabel
+        %idx = OpVariable %_ptr_Function_uint Function %40
+          %r = OpVariable %_ptr_Function_uint Function %40
+          %c = OpVariable %_ptr_Function_uint Function %40
   %loadIndex = OpVariable %_ptr_Function_v2int Function %119
-        %r_0 = OpVariable %_ptr_Function_uint Function %38
-        %c_0 = OpVariable %_ptr_Function_uint Function %38
+        %r_0 = OpVariable %_ptr_Function_uint Function %40
+        %c_0 = OpVariable %_ptr_Function_uint Function %40
  %writeIndex = OpVariable %_ptr_Function_v2int Function %119
-        %acc = OpVariable %_ptr_Function_v3float Function %56
-          %f = OpVariable %_ptr_Function_uint Function %38
-          %i = OpVariable %_ptr_Function_uint Function %38
-         %35 = OpLoad %uint %tint_symbol_2
-               OpStore %idx %35
-               OpBranch %39
-         %39 = OpLabel
-               OpLoopMerge %40 %41 None
-               OpBranch %42
-         %42 = OpLabel
-         %44 = OpLoad %uint %idx
-         %46 = OpULessThan %bool %44 %uint_1024
-         %43 = OpLogicalNot %bool %46
-               OpSelectionMerge %48 None
-               OpBranchConditional %43 %49 %48
-         %49 = OpLabel
-               OpBranch %40
-         %48 = OpLabel
-         %50 = OpLoad %uint %idx
-         %51 = OpUDiv %uint %50 %uint_256
-         %52 = OpLoad %uint %idx
-         %53 = OpUMod %uint %52 %uint_256
-         %55 = OpAccessChain %_ptr_Workgroup_v3float %tile %51 %53
-               OpStore %55 %56
+        %acc = OpVariable %_ptr_Function_v3float Function %58
+          %f = OpVariable %_ptr_Function_uint Function %40
+          %i = OpVariable %_ptr_Function_uint Function %40
+               OpStore %idx %local_invocation_index
                OpBranch %41
          %41 = OpLabel
-         %57 = OpLoad %uint %idx
-         %59 = OpIAdd %uint %57 %uint_64
-               OpStore %idx %59
-               OpBranch %39
-         %40 = OpLabel
+               OpLoopMerge %42 %43 None
+               OpBranch %44
+         %44 = OpLabel
+         %46 = OpLoad %uint %idx
+         %48 = OpULessThan %bool %46 %uint_1024
+         %45 = OpLogicalNot %bool %48
+               OpSelectionMerge %50 None
+               OpBranchConditional %45 %51 %50
+         %51 = OpLabel
+               OpBranch %42
+         %50 = OpLabel
+         %52 = OpLoad %uint %idx
+         %53 = OpUDiv %uint %52 %uint_256
+         %54 = OpLoad %uint %idx
+         %55 = OpUMod %uint %54 %uint_256
+         %57 = OpAccessChain %_ptr_Workgroup_v3float %tile %53 %55
+               OpStore %57 %58
+               OpBranch %43
+         %43 = OpLabel
+         %59 = OpLoad %uint %idx
+         %61 = OpIAdd %uint %59 %uint_64
+               OpStore %idx %61
+               OpBranch %41
+         %42 = OpLabel
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %65 = OpAccessChain %_ptr_Uniform_uint %params %uint_0
-         %66 = OpLoad %uint %65
-         %68 = OpISub %uint %66 %uint_1
-         %69 = OpUDiv %uint %68 %uint_2
-         %73 = OpLoad %10 %inputTex
-         %70 = OpImageQuerySizeLod %v2int %73 %int_0
-         %77 = OpLoad %v3uint %tint_symbol
-         %78 = OpVectorShuffle %v2uint %77 %77 0 1
-         %79 = OpAccessChain %_ptr_Uniform_uint %params %uint_1
-         %80 = OpLoad %uint %79
-         %81 = OpCompositeConstruct %v2uint %80 %uint_4
-         %82 = OpIMul %v2uint %78 %81
-         %83 = OpLoad %v3uint %tint_symbol_1
-         %84 = OpVectorShuffle %v2uint %83 %83 0 1
+         %67 = OpAccessChain %_ptr_Uniform_uint %params %uint_0
+         %68 = OpLoad %uint %67
+         %70 = OpISub %uint %68 %uint_1
+         %71 = OpUDiv %uint %70 %uint_2
+         %75 = OpLoad %16 %inputTex
+         %72 = OpImageQuerySizeLod %v2int %75 %int_0
+         %79 = OpVectorShuffle %v2uint %WorkGroupID %WorkGroupID 0 1
+         %80 = OpAccessChain %_ptr_Uniform_uint %params %uint_1
+         %81 = OpLoad %uint %80
+         %82 = OpCompositeConstruct %v2uint %81 %uint_4
+         %83 = OpIMul %v2uint %79 %82
+         %84 = OpVectorShuffle %v2uint %LocalInvocationID %LocalInvocationID 0 1
          %86 = OpIMul %v2uint %84 %85
-         %87 = OpIAdd %v2uint %82 %86
-         %75 = OpBitcast %v2int %87
-         %88 = OpBitcast %int %69
+         %87 = OpIAdd %v2uint %83 %86
+         %77 = OpBitcast %v2int %87
+         %88 = OpBitcast %int %71
          %89 = OpCompositeConstruct %v2int %88 %int_0
-         %90 = OpISub %v2int %75 %89
+         %90 = OpISub %v2int %77 %89
                OpStore %r %uint_0
                OpBranch %92
          %92 = OpLabel
@@ -225,173 +230,179 @@
                OpBranch %123
         %123 = OpLabel
         %127 = OpLoad %uint %r
-        %128 = OpAccessChain %_ptr_Input_uint %tint_symbol_1 %uint_0
-        %129 = OpLoad %uint %128
-        %130 = OpIMul %uint %uint_4 %129
-        %131 = OpLoad %uint %c
-        %132 = OpIAdd %uint %130 %131
-        %133 = OpAccessChain %_ptr_Workgroup_v3float %tile %127 %132
-        %136 = OpLoad %3 %samp
-        %137 = OpLoad %10 %inputTex
-        %139 = OpSampledImage %138 %137 %136
-        %142 = OpLoad %v2int %loadIndex
-        %140 = OpConvertSToF %v2float %142
-        %145 = OpFAdd %v2float %140 %144
-        %146 = OpConvertSToF %v2float %70
-        %147 = OpFDiv %v2float %145 %146
-        %134 = OpImageSampleExplicitLod %v4float %139 %147 Lod %float_0
-        %149 = OpVectorShuffle %v3float %134 %134 0 1 2
-               OpStore %133 %149
+        %128 = OpCompositeExtract %uint %LocalInvocationID 0
+        %129 = OpIMul %uint %uint_4 %128
+        %130 = OpLoad %uint %c
+        %131 = OpIAdd %uint %129 %130
+        %132 = OpAccessChain %_ptr_Workgroup_v3float %tile %127 %131
+        %135 = OpLoad %10 %samp
+        %136 = OpLoad %16 %inputTex
+        %138 = OpSampledImage %137 %136 %135
+        %141 = OpLoad %v2int %loadIndex
+        %139 = OpConvertSToF %v2float %141
+        %144 = OpFAdd %v2float %139 %143
+        %145 = OpConvertSToF %v2float %72
+        %146 = OpFDiv %v2float %144 %145
+        %133 = OpImageSampleExplicitLod %v4float %138 %146 Lod %float_0
+        %148 = OpVectorShuffle %v3float %133 %133 0 1 2
+               OpStore %132 %148
                OpBranch %104
         %104 = OpLabel
-        %150 = OpLoad %uint %c
-        %151 = OpIAdd %uint %150 %uint_1
-               OpStore %c %151
+        %149 = OpLoad %uint %c
+        %150 = OpIAdd %uint %149 %uint_1
+               OpStore %c %150
                OpBranch %102
         %103 = OpLabel
                OpBranch %94
          %94 = OpLabel
-        %152 = OpLoad %uint %r
-        %153 = OpIAdd %uint %152 %uint_1
-               OpStore %r %153
+        %151 = OpLoad %uint %r
+        %152 = OpIAdd %uint %151 %uint_1
+               OpStore %r %152
                OpBranch %92
          %93 = OpLabel
                OpControlBarrier %uint_2 %uint_2 %uint_264
                OpStore %r_0 %uint_0
-               OpBranch %156
-        %156 = OpLabel
-               OpLoopMerge %157 %158 None
-               OpBranch %159
-        %159 = OpLabel
-        %161 = OpLoad %uint %r_0
-        %162 = OpULessThan %bool %161 %uint_4
-        %160 = OpLogicalNot %bool %162
-               OpSelectionMerge %163 None
-               OpBranchConditional %160 %164 %163
-        %164 = OpLabel
-               OpBranch %157
-        %163 = OpLabel
-               OpStore %c_0 %uint_0
-               OpBranch %166
-        %166 = OpLabel
-               OpLoopMerge %167 %168 None
-               OpBranch %169
-        %169 = OpLabel
-        %171 = OpLoad %uint %c_0
-        %172 = OpULessThan %bool %171 %uint_4
-        %170 = OpLogicalNot %bool %172
-               OpSelectionMerge %173 None
-               OpBranchConditional %170 %174 %173
-        %174 = OpLabel
-               OpBranch %167
-        %173 = OpLabel
-        %176 = OpLoad %uint %c_0
-        %175 = OpBitcast %int %176
-        %178 = OpLoad %uint %r_0
-        %177 = OpBitcast %int %178
-        %179 = OpCompositeConstruct %v2int %175 %177
-        %180 = OpIAdd %v2int %90 %179
-               OpStore %writeIndex %180
-        %182 = OpAccessChain %_ptr_Uniform_uint %flip %uint_0
-        %183 = OpLoad %uint %182
-        %184 = OpINotEqual %bool %183 %uint_0
-               OpSelectionMerge %185 None
-               OpBranchConditional %184 %186 %185
-        %186 = OpLabel
-        %187 = OpLoad %v2int %writeIndex
-        %188 = OpVectorShuffle %v2int %187 %187 1 0
-               OpStore %writeIndex %188
-               OpBranch %185
-        %185 = OpLabel
-        %189 = OpAccessChain %_ptr_Input_uint %tint_symbol_1 %uint_0
-        %190 = OpLoad %uint %189
-        %191 = OpIMul %uint %uint_4 %190
-        %192 = OpLoad %uint %c_0
-        %193 = OpIAdd %uint %191 %192
-        %194 = OpUGreaterThanEqual %bool %193 %69
-               OpSelectionMerge %195 None
-               OpBranchConditional %194 %196 %195
-        %196 = OpLabel
-        %197 = OpISub %uint %uint_256 %69
-        %198 = OpULessThan %bool %193 %197
-               OpBranch %195
-        %195 = OpLabel
-        %199 = OpPhi %bool %194 %185 %198 %196
-               OpSelectionMerge %200 None
-               OpBranchConditional %199 %201 %200
-        %201 = OpLabel
-        %203 = OpLoad %v2int %writeIndex
-        %204 = OpSLessThan %v2bool %203 %70
-        %202 = OpAll %bool %204
-               OpBranch %200
-        %200 = OpLabel
-        %206 = OpPhi %bool %199 %195 %202 %201
-               OpSelectionMerge %207 None
-               OpBranchConditional %206 %208 %207
-        %208 = OpLabel
-               OpStore %acc %209
-               OpStore %f %uint_0
-               OpBranch %213
-        %213 = OpLabel
-               OpLoopMerge %214 %215 None
-               OpBranch %216
-        %216 = OpLabel
-        %218 = OpLoad %uint %f
-        %219 = OpAccessChain %_ptr_Uniform_uint %params %uint_0
-        %220 = OpLoad %uint %219
-        %221 = OpULessThan %bool %218 %220
-        %217 = OpLogicalNot %bool %221
-               OpSelectionMerge %222 None
-               OpBranchConditional %217 %223 %222
-        %223 = OpLabel
-               OpBranch %214
-        %222 = OpLabel
-        %224 = OpLoad %uint %f
-        %225 = OpIAdd %uint %193 %224
-        %226 = OpISub %uint %225 %69
-               OpStore %i %226
-        %228 = OpLoad %v3float %acc
-        %231 = OpAccessChain %_ptr_Uniform_uint %params %uint_0
-        %232 = OpLoad %uint %231
-        %230 = OpConvertUToF %float %232
-        %233 = OpFDiv %float %float_1 %230
-        %234 = OpLoad %uint %r_0
-        %235 = OpLoad %uint %i
-        %236 = OpAccessChain %_ptr_Workgroup_v3float %tile %234 %235
-        %237 = OpLoad %v3float %236
-        %238 = OpVectorTimesScalar %v3float %237 %233
-        %239 = OpFAdd %v3float %228 %238
-               OpStore %acc %239
-               OpBranch %215
-        %215 = OpLabel
-        %240 = OpLoad %uint %f
-        %241 = OpIAdd %uint %240 %uint_1
-               OpStore %f %241
-               OpBranch %213
-        %214 = OpLabel
-        %243 = OpLoad %14 %outputTex
-        %244 = OpLoad %v2int %writeIndex
-        %245 = OpLoad %v3float %acc
-        %246 = OpCompositeExtract %float %245 0
-        %247 = OpCompositeExtract %float %245 1
-        %248 = OpCompositeExtract %float %245 2
-        %249 = OpCompositeConstruct %v4float %246 %247 %248 %float_1
-               OpImageWrite %243 %244 %249
-               OpBranch %207
-        %207 = OpLabel
-               OpBranch %168
-        %168 = OpLabel
-        %250 = OpLoad %uint %c_0
-        %251 = OpIAdd %uint %250 %uint_1
-               OpStore %c_0 %251
-               OpBranch %166
-        %167 = OpLabel
+               OpBranch %155
+        %155 = OpLabel
+               OpLoopMerge %156 %157 None
                OpBranch %158
         %158 = OpLabel
-        %252 = OpLoad %uint %r_0
-        %253 = OpIAdd %uint %252 %uint_1
-               OpStore %r_0 %253
+        %160 = OpLoad %uint %r_0
+        %161 = OpULessThan %bool %160 %uint_4
+        %159 = OpLogicalNot %bool %161
+               OpSelectionMerge %162 None
+               OpBranchConditional %159 %163 %162
+        %163 = OpLabel
                OpBranch %156
+        %162 = OpLabel
+               OpStore %c_0 %uint_0
+               OpBranch %165
+        %165 = OpLabel
+               OpLoopMerge %166 %167 None
+               OpBranch %168
+        %168 = OpLabel
+        %170 = OpLoad %uint %c_0
+        %171 = OpULessThan %bool %170 %uint_4
+        %169 = OpLogicalNot %bool %171
+               OpSelectionMerge %172 None
+               OpBranchConditional %169 %173 %172
+        %173 = OpLabel
+               OpBranch %166
+        %172 = OpLabel
+        %175 = OpLoad %uint %c_0
+        %174 = OpBitcast %int %175
+        %177 = OpLoad %uint %r_0
+        %176 = OpBitcast %int %177
+        %178 = OpCompositeConstruct %v2int %174 %176
+        %179 = OpIAdd %v2int %90 %178
+               OpStore %writeIndex %179
+        %181 = OpAccessChain %_ptr_Uniform_uint %flip %uint_0
+        %182 = OpLoad %uint %181
+        %183 = OpINotEqual %bool %182 %uint_0
+               OpSelectionMerge %184 None
+               OpBranchConditional %183 %185 %184
+        %185 = OpLabel
+        %186 = OpLoad %v2int %writeIndex
+        %187 = OpVectorShuffle %v2int %186 %186 1 0
+               OpStore %writeIndex %187
+               OpBranch %184
+        %184 = OpLabel
+        %188 = OpCompositeExtract %uint %LocalInvocationID 0
+        %189 = OpIMul %uint %uint_4 %188
+        %190 = OpLoad %uint %c_0
+        %191 = OpIAdd %uint %189 %190
+        %192 = OpUGreaterThanEqual %bool %191 %71
+               OpSelectionMerge %193 None
+               OpBranchConditional %192 %194 %193
+        %194 = OpLabel
+        %195 = OpISub %uint %uint_256 %71
+        %196 = OpULessThan %bool %191 %195
+               OpBranch %193
+        %193 = OpLabel
+        %197 = OpPhi %bool %192 %184 %196 %194
+               OpSelectionMerge %198 None
+               OpBranchConditional %197 %199 %198
+        %199 = OpLabel
+        %201 = OpLoad %v2int %writeIndex
+        %202 = OpSLessThan %v2bool %201 %72
+        %200 = OpAll %bool %202
+               OpBranch %198
+        %198 = OpLabel
+        %204 = OpPhi %bool %197 %193 %200 %199
+               OpSelectionMerge %205 None
+               OpBranchConditional %204 %206 %205
+        %206 = OpLabel
+               OpStore %acc %207
+               OpStore %f %uint_0
+               OpBranch %211
+        %211 = OpLabel
+               OpLoopMerge %212 %213 None
+               OpBranch %214
+        %214 = OpLabel
+        %216 = OpLoad %uint %f
+        %217 = OpAccessChain %_ptr_Uniform_uint %params %uint_0
+        %218 = OpLoad %uint %217
+        %219 = OpULessThan %bool %216 %218
+        %215 = OpLogicalNot %bool %219
+               OpSelectionMerge %220 None
+               OpBranchConditional %215 %221 %220
+        %221 = OpLabel
+               OpBranch %212
+        %220 = OpLabel
+        %222 = OpLoad %uint %f
+        %223 = OpIAdd %uint %191 %222
+        %224 = OpISub %uint %223 %71
+               OpStore %i %224
+        %226 = OpLoad %v3float %acc
+        %229 = OpAccessChain %_ptr_Uniform_uint %params %uint_0
+        %230 = OpLoad %uint %229
+        %228 = OpConvertUToF %float %230
+        %231 = OpFDiv %float %float_1 %228
+        %232 = OpLoad %uint %r_0
+        %233 = OpLoad %uint %i
+        %234 = OpAccessChain %_ptr_Workgroup_v3float %tile %232 %233
+        %235 = OpLoad %v3float %234
+        %236 = OpVectorTimesScalar %v3float %235 %231
+        %237 = OpFAdd %v3float %226 %236
+               OpStore %acc %237
+               OpBranch %213
+        %213 = OpLabel
+        %238 = OpLoad %uint %f
+        %239 = OpIAdd %uint %238 %uint_1
+               OpStore %f %239
+               OpBranch %211
+        %212 = OpLabel
+        %241 = OpLoad %20 %outputTex
+        %242 = OpLoad %v2int %writeIndex
+        %243 = OpLoad %v3float %acc
+        %244 = OpCompositeExtract %float %243 0
+        %245 = OpCompositeExtract %float %243 1
+        %246 = OpCompositeExtract %float %243 2
+        %247 = OpCompositeConstruct %v4float %244 %245 %246 %float_1
+               OpImageWrite %241 %242 %247
+               OpBranch %205
+        %205 = OpLabel
+               OpBranch %167
+        %167 = OpLabel
+        %248 = OpLoad %uint %c_0
+        %249 = OpIAdd %uint %248 %uint_1
+               OpStore %c_0 %249
+               OpBranch %165
+        %166 = OpLabel
+               OpBranch %157
         %157 = OpLabel
+        %250 = OpLoad %uint %r_0
+        %251 = OpIAdd %uint %250 %uint_1
+               OpStore %r_0 %251
+               OpBranch %155
+        %156 = OpLabel
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %252
+        %254 = OpLabel
+        %256 = OpLoad %v3uint %WorkGroupID_1
+        %257 = OpLoad %v3uint %LocalInvocationID_1
+        %258 = OpLoad %uint %local_invocation_index_1
+        %255 = OpFunctionCall %void %main_inner %256 %257 %258
                OpReturn
                OpFunctionEnd
diff --git a/test/bug/tint/943.spvasm.expected.spvasm b/test/bug/tint/943.spvasm.expected.spvasm
index 252bb7a..315f30e 100644
--- a/test/bug/tint/943.spvasm.expected.spvasm
+++ b/test/bug/tint/943.spvasm.expected.spvasm
@@ -1,12 +1,15 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 628
+; Bound: 633
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol_2 %tint_symbol %tint_symbol_1
+               OpEntryPoint GLCompute %main "main" %gl_LocalInvocationID_param_1 %gl_GlobalInvocationID_param_1 %local_invocation_index_1
                OpExecutionMode %main LocalSize 1 64 1
+               OpName %gl_LocalInvocationID_param_1 "gl_LocalInvocationID_param_1"
+               OpName %gl_GlobalInvocationID_param_1 "gl_GlobalInvocationID_param_1"
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %dimAOuter_1 "dimAOuter_1"
                OpName %Uniforms "Uniforms"
                OpMemberName %Uniforms 0 "NAN"
@@ -31,9 +34,6 @@
                OpName %ssbB "ssbB"
                OpMemberName %ssbB 0 "B"
                OpName %x_185 "x_185"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %coordsInBounds_vi2_vi2_ "coordsInBounds_vi2_vi2_"
                OpName %coord "coord"
                OpName %shape "shape"
@@ -120,8 +120,15 @@
                OpName %param_18 "param_18"
                OpName %param_19 "param_19"
                OpName %param_20 "param_20"
-               OpName %main "main"
+               OpName %main_inner "main_inner"
+               OpName %gl_LocalInvocationID_param "gl_LocalInvocationID_param"
+               OpName %gl_GlobalInvocationID_param "gl_GlobalInvocationID_param"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %idx "idx"
+               OpName %main "main"
+               OpDecorate %gl_LocalInvocationID_param_1 BuiltIn LocalInvocationId
+               OpDecorate %gl_GlobalInvocationID_param_1 BuiltIn GlobalInvocationId
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
                OpDecorate %Uniforms Block
                OpMemberDecorate %Uniforms 0 Offset 0
                OpMemberDecorate %Uniforms 1 Offset 16
@@ -150,32 +157,34 @@
                OpDecorate %x_185 NonWritable
                OpDecorate %x_185 DescriptorSet 0
                OpDecorate %x_185 Binding 2
-               OpDecorate %tint_symbol BuiltIn LocalInvocationId
-               OpDecorate %tint_symbol_1 BuiltIn GlobalInvocationId
-               OpDecorate %tint_symbol_2 BuiltIn LocalInvocationIndex
                OpDecorate %_arr__arr_float_uint_1_uint_1 ArrayStride 4
+       %uint = OpTypeInt 32 0
+     %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%gl_LocalInvocationID_param_1 = OpVariable %_ptr_Input_v3uint Input
+%gl_GlobalInvocationID_param_1 = OpVariable %_ptr_Input_v3uint Input
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
 %_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-%dimAOuter_1 = OpVariable %_ptr_Private_int Private %4
+         %11 = OpConstantNull %int
+%dimAOuter_1 = OpVariable %_ptr_Private_int Private %11
       %float = OpTypeFloat 32
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
    %Uniforms = OpTypeStruct %float %v3int %v3int %v3int %v2int
 %_ptr_Uniform_Uniforms = OpTypePointer Uniform %Uniforms
        %x_48 = OpVariable %_ptr_Uniform_Uniforms Uniform
- %dimInner_1 = OpVariable %_ptr_Private_int Private %4
-%dimBOuter_1 = OpVariable %_ptr_Private_int Private %4
+ %dimInner_1 = OpVariable %_ptr_Private_int Private %11
+%dimBOuter_1 = OpVariable %_ptr_Private_int Private %11
 %_runtimearr_float = OpTypeRuntimeArray %float
      %ssbOut = OpTypeStruct %_runtimearr_float
 %_ptr_StorageBuffer_ssbOut = OpTypePointer StorageBuffer %ssbOut
        %x_54 = OpVariable %_ptr_StorageBuffer_ssbOut StorageBuffer
-       %uint = OpTypeInt 32 0
-     %v3uint = OpTypeVector %uint 3
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-         %21 = OpConstantNull %v3uint
-%gl_LocalInvocationID = OpVariable %_ptr_Private_v3uint Private %21
-%gl_GlobalInvocationID = OpVariable %_ptr_Private_v3uint Private %21
+         %26 = OpConstantNull %v3uint
+%gl_LocalInvocationID = OpVariable %_ptr_Private_v3uint Private %26
+%gl_GlobalInvocationID = OpVariable %_ptr_Private_v3uint Private %26
     %uint_64 = OpConstant %uint 64
 %_arr_float_uint_64 = OpTypeArray %float %uint_64
 %_arr__arr_float_uint_64_uint_64 = OpTypeArray %_arr_float_uint_64 %uint_64
@@ -189,15 +198,10 @@
        %ssbA = OpTypeStruct %_runtimearr_float
 %_ptr_StorageBuffer_ssbA = OpTypePointer StorageBuffer %ssbA
       %x_165 = OpVariable %_ptr_StorageBuffer_ssbA StorageBuffer
-      %batch = OpVariable %_ptr_Private_int Private %4
+      %batch = OpVariable %_ptr_Private_int Private %11
        %ssbB = OpTypeStruct %_runtimearr_float
 %_ptr_StorageBuffer_ssbB = OpTypePointer StorageBuffer %ssbB
       %x_185 = OpVariable %_ptr_StorageBuffer_ssbB StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
-%tint_symbol_1 = OpVariable %_ptr_Input_v3uint Input
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol_2 = OpVariable %_ptr_Input_uint Input
        %bool = OpTypeBool
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %45 = OpTypeFunction %bool %_ptr_Function_v2int %_ptr_Function_v2int
@@ -237,8 +241,9 @@
 %_ptr_Workgroup_float = OpTypePointer Workgroup %float
    %uint_264 = OpConstant %uint 264
         %575 = OpTypeFunction %void
+        %597 = OpTypeFunction %void %v3uint %v3uint %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-        %606 = OpConstantNull %uint
+        %607 = OpConstantNull %uint
   %uint_4096 = OpConstant %uint 4096
 %coordsInBounds_vi2_vi2_ = OpFunction %bool None %45
       %coord = OpFunctionParameter %_ptr_Function_v2int
@@ -269,7 +274,7 @@
         %row = OpFunctionParameter %_ptr_Function_int
         %col = OpFunctionParameter %_ptr_Function_int
          %78 = OpLabel
- %batchASize = OpVariable %_ptr_Function_int Function %4
+ %batchASize = OpVariable %_ptr_Function_int Function %11
    %param_10 = OpVariable %_ptr_Function_v2int Function %81
    %param_11 = OpVariable %_ptr_Function_v2int Function %81
       %x_430 = OpVariable %_ptr_Function_float Function %85
@@ -315,7 +320,7 @@
       %row_1 = OpFunctionParameter %_ptr_Function_int
       %col_1 = OpFunctionParameter %_ptr_Function_int
         %127 = OpLabel
- %batchBSize = OpVariable %_ptr_Function_int Function %4
+ %batchBSize = OpVariable %_ptr_Function_int Function %11
    %param_12 = OpVariable %_ptr_Function_v2int Function %81
    %param_13 = OpVariable %_ptr_Function_v2int Function %81
       %x_468 = OpVariable %_ptr_Function_float Function %85
@@ -388,9 +393,9 @@
          %d2 = OpFunctionParameter %_ptr_Function_int
     %value_1 = OpFunctionParameter %_ptr_Function_float
         %201 = OpLabel
-%flatIndex_1 = OpVariable %_ptr_Function_int Function %4
+%flatIndex_1 = OpVariable %_ptr_Function_int Function %11
       %param = OpVariable %_ptr_Function_v3int Function %204
-    %param_1 = OpVariable %_ptr_Function_int Function %4
+    %param_1 = OpVariable %_ptr_Function_int Function %11
     %param_2 = OpVariable %_ptr_Function_float Function %85
         %208 = OpLoad %int %d0
         %210 = OpLoad %int %d1
@@ -412,9 +417,9 @@
     %value_2 = OpFunctionParameter %_ptr_Function_float
         %227 = OpLabel
    %outCoord = OpVariable %_ptr_Function_v3int Function %204
-   %param_14 = OpVariable %_ptr_Function_int Function %4
-   %param_15 = OpVariable %_ptr_Function_int Function %4
-   %param_16 = OpVariable %_ptr_Function_int Function %4
+   %param_14 = OpVariable %_ptr_Function_int Function %11
+   %param_15 = OpVariable %_ptr_Function_int Function %11
+   %param_16 = OpVariable %_ptr_Function_int Function %11
    %param_17 = OpVariable %_ptr_Function_float Function %85
         %233 = OpLoad %int %batch
         %235 = OpLoad %int %row_2
@@ -437,39 +442,39 @@
    %dimInner = OpFunctionParameter %_ptr_Function_int
   %dimBOuter = OpFunctionParameter %_ptr_Function_int
         %256 = OpLabel
-    %tileRow = OpVariable %_ptr_Function_int Function %4
-    %tileCol = OpVariable %_ptr_Function_int Function %4
-  %globalRow = OpVariable %_ptr_Function_int Function %4
-  %globalCol = OpVariable %_ptr_Function_int Function %4
-   %numTiles = OpVariable %_ptr_Function_int Function %4
-   %innerRow = OpVariable %_ptr_Function_int Function %4
-   %innerCol = OpVariable %_ptr_Function_int Function %4
+    %tileRow = OpVariable %_ptr_Function_int Function %11
+    %tileCol = OpVariable %_ptr_Function_int Function %11
+  %globalRow = OpVariable %_ptr_Function_int Function %11
+  %globalCol = OpVariable %_ptr_Function_int Function %11
+   %numTiles = OpVariable %_ptr_Function_int Function %11
+   %innerRow = OpVariable %_ptr_Function_int Function %11
+   %innerCol = OpVariable %_ptr_Function_int Function %11
         %acc = OpVariable %_ptr_Function__arr__arr_float_uint_1_uint_1 Function %267
-   %tileColA = OpVariable %_ptr_Function_int Function %4
-   %tileRowB = OpVariable %_ptr_Function_int Function %4
-          %t = OpVariable %_ptr_Function_int Function %4
- %innerRow_1 = OpVariable %_ptr_Function_int Function %4
- %innerCol_1 = OpVariable %_ptr_Function_int Function %4
-   %inputRow = OpVariable %_ptr_Function_int Function %4
-   %inputCol = OpVariable %_ptr_Function_int Function %4
-    %param_3 = OpVariable %_ptr_Function_int Function %4
-    %param_4 = OpVariable %_ptr_Function_int Function %4
- %innerRow_2 = OpVariable %_ptr_Function_int Function %4
- %innerCol_2 = OpVariable %_ptr_Function_int Function %4
- %inputRow_1 = OpVariable %_ptr_Function_int Function %4
- %inputCol_1 = OpVariable %_ptr_Function_int Function %4
-    %param_5 = OpVariable %_ptr_Function_int Function %4
-    %param_6 = OpVariable %_ptr_Function_int Function %4
-          %k = OpVariable %_ptr_Function_int Function %4
-      %inner = OpVariable %_ptr_Function_int Function %4
+   %tileColA = OpVariable %_ptr_Function_int Function %11
+   %tileRowB = OpVariable %_ptr_Function_int Function %11
+          %t = OpVariable %_ptr_Function_int Function %11
+ %innerRow_1 = OpVariable %_ptr_Function_int Function %11
+ %innerCol_1 = OpVariable %_ptr_Function_int Function %11
+   %inputRow = OpVariable %_ptr_Function_int Function %11
+   %inputCol = OpVariable %_ptr_Function_int Function %11
+    %param_3 = OpVariable %_ptr_Function_int Function %11
+    %param_4 = OpVariable %_ptr_Function_int Function %11
+ %innerRow_2 = OpVariable %_ptr_Function_int Function %11
+ %innerCol_2 = OpVariable %_ptr_Function_int Function %11
+ %inputRow_1 = OpVariable %_ptr_Function_int Function %11
+ %inputCol_1 = OpVariable %_ptr_Function_int Function %11
+    %param_5 = OpVariable %_ptr_Function_int Function %11
+    %param_6 = OpVariable %_ptr_Function_int Function %11
+          %k = OpVariable %_ptr_Function_int Function %11
+      %inner = OpVariable %_ptr_Function_int Function %11
     %BCached = OpVariable %_ptr_Function__arr_float_uint_1 Function %287
- %innerRow_3 = OpVariable %_ptr_Function_int Function %4
+ %innerRow_3 = OpVariable %_ptr_Function_int Function %11
     %ACached = OpVariable %_ptr_Function_float Function %85
- %innerCol_3 = OpVariable %_ptr_Function_int Function %4
- %innerRow_4 = OpVariable %_ptr_Function_int Function %4
- %innerCol_4 = OpVariable %_ptr_Function_int Function %4
-    %param_7 = OpVariable %_ptr_Function_int Function %4
-    %param_8 = OpVariable %_ptr_Function_int Function %4
+ %innerCol_3 = OpVariable %_ptr_Function_int Function %11
+ %innerRow_4 = OpVariable %_ptr_Function_int Function %11
+ %innerCol_4 = OpVariable %_ptr_Function_int Function %11
+    %param_7 = OpVariable %_ptr_Function_int Function %11
+    %param_8 = OpVariable %_ptr_Function_int Function %11
     %param_9 = OpVariable %_ptr_Function_float Function %85
       %x_393 = OpVariable %_ptr_Function_bool Function %54
   %x_394_phi = OpVariable %_ptr_Function_bool Function %54
@@ -916,9 +921,9 @@
                OpFunctionEnd
      %main_1 = OpFunction %void None %575
         %577 = OpLabel
-   %param_18 = OpVariable %_ptr_Function_int Function %4
-   %param_19 = OpVariable %_ptr_Function_int Function %4
-   %param_20 = OpVariable %_ptr_Function_int Function %4
+   %param_18 = OpVariable %_ptr_Function_int Function %11
+   %param_19 = OpVariable %_ptr_Function_int Function %11
+   %param_20 = OpVariable %_ptr_Function_int Function %11
         %581 = OpAccessChain %_ptr_Uniform_int %x_48 %uint_1 %uint_1
         %582 = OpLoad %int %581
                OpStore %dimAOuter_1 %582
@@ -941,47 +946,53 @@
         %593 = OpFunctionCall %void %mm_matMul_i1_i1_i1_ %param_18 %param_19 %param_20
                OpReturn
                OpFunctionEnd
-       %main = OpFunction %void None %575
-        %598 = OpLabel
-        %idx = OpVariable %_ptr_Function_uint Function %606
-        %599 = OpLoad %uint %tint_symbol_2
-        %600 = OpLoad %uint %tint_symbol_2
-        %601 = OpUMod %uint %600 %uint_1
-        %602 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %599 %601
-               OpStore %602 %85
-        %603 = OpLoad %uint %tint_symbol_2
-               OpStore %idx %603
-               OpBranch %607
-        %607 = OpLabel
-               OpLoopMerge %608 %609 None
+ %main_inner = OpFunction %void None %597
+%gl_LocalInvocationID_param = OpFunctionParameter %v3uint
+%gl_GlobalInvocationID_param = OpFunctionParameter %v3uint
+%local_invocation_index = OpFunctionParameter %uint
+        %602 = OpLabel
+        %idx = OpVariable %_ptr_Function_uint Function %607
+        %603 = OpUMod %uint %local_invocation_index %uint_1
+        %604 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %local_invocation_index %603
+               OpStore %604 %85
+               OpStore %idx %local_invocation_index
+               OpBranch %608
+        %608 = OpLabel
+               OpLoopMerge %609 %610 None
+               OpBranch %611
+        %611 = OpLabel
+        %613 = OpLoad %uint %idx
+        %615 = OpULessThan %bool %613 %uint_4096
+        %612 = OpLogicalNot %bool %615
+               OpSelectionMerge %616 None
+               OpBranchConditional %612 %617 %616
+        %617 = OpLabel
+               OpBranch %609
+        %616 = OpLabel
+        %618 = OpLoad %uint %idx
+        %619 = OpUDiv %uint %618 %uint_64
+        %620 = OpLoad %uint %idx
+        %621 = OpUMod %uint %620 %uint_64
+        %622 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %619 %621
+               OpStore %622 %85
                OpBranch %610
         %610 = OpLabel
-        %612 = OpLoad %uint %idx
-        %614 = OpULessThan %bool %612 %uint_4096
-        %611 = OpLogicalNot %bool %614
-               OpSelectionMerge %615 None
-               OpBranchConditional %611 %616 %615
-        %616 = OpLabel
+        %623 = OpLoad %uint %idx
+        %624 = OpIAdd %uint %623 %uint_64
+               OpStore %idx %624
                OpBranch %608
-        %615 = OpLabel
-        %617 = OpLoad %uint %idx
-        %618 = OpUDiv %uint %617 %uint_64
-        %619 = OpLoad %uint %idx
-        %620 = OpUMod %uint %619 %uint_64
-        %621 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %618 %620
-               OpStore %621 %85
-               OpBranch %609
         %609 = OpLabel
-        %622 = OpLoad %uint %idx
-        %623 = OpIAdd %uint %622 %uint_64
-               OpStore %idx %623
-               OpBranch %607
-        %608 = OpLabel
                OpControlBarrier %uint_2 %uint_2 %uint_264
-        %625 = OpLoad %v3uint %tint_symbol
-               OpStore %gl_LocalInvocationID %625
-        %626 = OpLoad %v3uint %tint_symbol_1
-               OpStore %gl_GlobalInvocationID %626
-        %627 = OpFunctionCall %void %main_1
+               OpStore %gl_LocalInvocationID %gl_LocalInvocationID_param
+               OpStore %gl_GlobalInvocationID %gl_GlobalInvocationID_param
+        %626 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %575
+        %628 = OpLabel
+        %630 = OpLoad %v3uint %gl_LocalInvocationID_param_1
+        %631 = OpLoad %v3uint %gl_GlobalInvocationID_param_1
+        %632 = OpLoad %uint %local_invocation_index_1
+        %629 = OpFunctionCall %void %main_inner %630 %631 %632
                OpReturn
                OpFunctionEnd
diff --git a/test/bug/tint/948.wgsl.expected.spvasm b/test/bug/tint/948.wgsl.expected.spvasm
index 81d4524..51c0bb0 100644
--- a/test/bug/tint/948.wgsl.expected.spvasm
+++ b/test/bug/tint/948.wgsl.expected.spvasm
@@ -1,13 +1,20 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 381
+; Bound: 386
 ; Schema: 0
                OpCapability Shader
         %138 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4 %tint_symbol_5 %tint_symbol_7
+               OpEntryPoint Fragment %main "main" %tUV_param_1 %tileID_1_param_1 %levelUnits_param_1 %stageUnits_1_param_1 %vPosition_param_1 %vUV_param_1 %glFragColor_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %tUV_param_1 "tUV_param_1"
+               OpName %tileID_1_param_1 "tileID_1_param_1"
+               OpName %levelUnits_param_1 "levelUnits_param_1"
+               OpName %stageUnits_1_param_1 "stageUnits_1_param_1"
+               OpName %vPosition_param_1 "vPosition_param_1"
+               OpName %vUV_param_1 "vUV_param_1"
+               OpName %glFragColor_1_1 "glFragColor_1_1"
                OpName %LeftOver "LeftOver"
                OpMemberName %LeftOver 0 "time"
                OpMemberName %LeftOver 1 "padding"
@@ -36,13 +43,6 @@
                OpName %stageUnits_1 "stageUnits_1"
                OpName %vPosition "vPosition"
                OpName %vUV "vUV"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_7 "tint_symbol_7"
                OpName %getFrameData_f1_ "getFrameData_f1_"
                OpName %frameID "frameID"
                OpName %fX "fX"
@@ -67,9 +67,21 @@
                OpName %mixed "mixed"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "glFragColor_1"
-               OpName %tint_symbol_8 "tint_symbol_8"
-               OpName %tint_symbol_6 "tint_symbol_6"
+               OpName %main_inner "main_inner"
+               OpName %tUV_param "tUV_param"
+               OpName %tileID_1_param "tileID_1_param"
+               OpName %levelUnits_param "levelUnits_param"
+               OpName %stageUnits_1_param "stageUnits_1_param"
+               OpName %vPosition_param "vPosition_param"
+               OpName %vUV_param "vUV_param"
                OpName %main "main"
+               OpDecorate %tUV_param_1 Location 2
+               OpDecorate %tileID_1_param_1 Location 5
+               OpDecorate %levelUnits_param_1 Location 4
+               OpDecorate %stageUnits_1_param_1 Location 3
+               OpDecorate %vPosition_param_1 Location 0
+               OpDecorate %vUV_param_1 Location 1
+               OpDecorate %glFragColor_1_1 Location 0
                OpDecorate %LeftOver Block
                OpMemberDecorate %LeftOver 0 Offset 0
                OpMemberDecorate %LeftOver 1 Offset 4
@@ -103,67 +115,60 @@
                OpDecorate %spriteSheetTexture Binding 1
                OpDecorate %spriteSheetSampler DescriptorSet 2
                OpDecorate %spriteSheetSampler Binding 0
-               OpDecorate %tint_symbol Location 2
-               OpDecorate %tint_symbol_1 Location 5
-               OpDecorate %tint_symbol_2 Location 4
-               OpDecorate %tint_symbol_3 Location 3
-               OpDecorate %tint_symbol_4 Location 0
-               OpDecorate %tint_symbol_5 Location 1
-               OpDecorate %tint_symbol_7 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-    %v4float = OpTypeVector %float 4
-%mat4v4float = OpTypeMatrix %v4float 4
     %v2float = OpTypeVector %float 2
+%_ptr_Input_v2float = OpTypePointer Input %v2float
+%tUV_param_1 = OpVariable %_ptr_Input_v2float Input
+%tileID_1_param_1 = OpVariable %_ptr_Input_v2float Input
+%levelUnits_param_1 = OpVariable %_ptr_Input_v2float Input
+%stageUnits_1_param_1 = OpVariable %_ptr_Input_v2float Input
     %v3float = OpTypeVector %float 3
+%_ptr_Input_v3float = OpTypePointer Input %v3float
+%vPosition_param_1 = OpVariable %_ptr_Input_v3float Input
+%vUV_param_1 = OpVariable %_ptr_Input_v2float Input
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+         %15 = OpConstantNull %v4float
+%glFragColor_1_1 = OpVariable %_ptr_Output_v4float Output %15
+       %uint = OpTypeInt 32 0
+%mat4v4float = OpTypeMatrix %v4float 4
    %LeftOver = OpTypeStruct %float %uint %mat4v4float %v2float %v2float %v2float %float %float %v3float
 %_ptr_Uniform_LeftOver = OpTypePointer Uniform %LeftOver
        %x_20 = OpVariable %_ptr_Uniform_LeftOver Uniform
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-%frameMapTexture = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-%frameMapSampler = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %23 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_23 = OpTypePointer UniformConstant %23
+%frameMapTexture = OpVariable %_ptr_UniformConstant_23 UniformConstant
+         %26 = OpTypeSampler
+%_ptr_UniformConstant_26 = OpTypePointer UniformConstant %26
+%frameMapSampler = OpVariable %_ptr_UniformConstant_26 UniformConstant
 %_ptr_Private_v2float = OpTypePointer Private %v2float
-         %18 = OpConstantNull %v2float
-        %tUV = OpVariable %_ptr_Private_v2float Private %18
-%tileMapsTexture0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-%tileMapsSampler = OpVariable %_ptr_UniformConstant_15 UniformConstant
-%tileMapsTexture1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-%animationMapTexture = OpVariable %_ptr_UniformConstant_12 UniformConstant
-%animationMapSampler = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %29 = OpConstantNull %v2float
+        %tUV = OpVariable %_ptr_Private_v2float Private %29
+%tileMapsTexture0 = OpVariable %_ptr_UniformConstant_23 UniformConstant
+%tileMapsSampler = OpVariable %_ptr_UniformConstant_26 UniformConstant
+%tileMapsTexture1 = OpVariable %_ptr_UniformConstant_23 UniformConstant
+%animationMapTexture = OpVariable %_ptr_UniformConstant_23 UniformConstant
+%animationMapSampler = OpVariable %_ptr_UniformConstant_26 UniformConstant
 %_ptr_Private_float = OpTypePointer Private %float
-         %26 = OpConstantNull %float
-         %mt = OpVariable %_ptr_Private_float Private %26
-%spriteSheetTexture = OpVariable %_ptr_UniformConstant_12 UniformConstant
-%spriteSheetSampler = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %37 = OpConstantNull %float
+         %mt = OpVariable %_ptr_Private_float Private %37
+%spriteSheetTexture = OpVariable %_ptr_UniformConstant_23 UniformConstant
+%spriteSheetSampler = OpVariable %_ptr_UniformConstant_26 UniformConstant
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %31 = OpConstantNull %v4float
-%glFragColor = OpVariable %_ptr_Private_v4float Private %31
-   %tileID_1 = OpVariable %_ptr_Private_v2float Private %18
- %levelUnits = OpVariable %_ptr_Private_v2float Private %18
-%stageUnits_1 = OpVariable %_ptr_Private_v2float Private %18
+%glFragColor = OpVariable %_ptr_Private_v4float Private %15
+   %tileID_1 = OpVariable %_ptr_Private_v2float Private %29
+ %levelUnits = OpVariable %_ptr_Private_v2float Private %29
+%stageUnits_1 = OpVariable %_ptr_Private_v2float Private %29
 %_ptr_Private_v3float = OpTypePointer Private %v3float
-         %37 = OpConstantNull %v3float
-  %vPosition = OpVariable %_ptr_Private_v3float Private %37
-        %vUV = OpVariable %_ptr_Private_v2float Private %18
-%_ptr_Input_v2float = OpTypePointer Input %v2float
-%tint_symbol = OpVariable %_ptr_Input_v2float Input
-%tint_symbol_1 = OpVariable %_ptr_Input_v2float Input
-%tint_symbol_2 = OpVariable %_ptr_Input_v2float Input
-%tint_symbol_3 = OpVariable %_ptr_Input_v2float Input
-%_ptr_Input_v3float = OpTypePointer Input %v3float
-%tint_symbol_4 = OpVariable %_ptr_Input_v3float Input
-%tint_symbol_5 = OpVariable %_ptr_Input_v2float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_7 = OpVariable %_ptr_Output_v4float Output %31
+         %47 = OpConstantNull %v3float
+  %vPosition = OpVariable %_ptr_Private_v3float Private %47
+        %vUV = OpVariable %_ptr_Private_v2float Private %29
 %_ptr_Function_float = OpTypePointer Function %float
          %49 = OpTypeFunction %mat4v4float %_ptr_Function_float
      %uint_7 = OpConstant %uint 7
 %_ptr_Uniform_float = OpTypePointer Uniform %float
-         %66 = OpTypeSampledImage %12
+         %66 = OpTypeSampledImage %23
     %float_0 = OpConstant %float 0
  %float_0_25 = OpConstant %float 0.25
   %float_0_5 = OpConstant %float 0.5
@@ -197,31 +202,31 @@
      %uint_8 = OpConstant %uint 8
 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float
    %main_out = OpTypeStruct %v4float
-        %363 = OpTypeFunction %void %main_out
+        %363 = OpTypeFunction %main_out %v2float %v2float %v2float %v2float %v3float %v2float
 %getFrameData_f1_ = OpFunction %mat4v4float None %49
     %frameID = OpFunctionParameter %_ptr_Function_float
          %53 = OpLabel
-         %fX = OpVariable %_ptr_Function_float Function %26
+         %fX = OpVariable %_ptr_Function_float Function %37
          %56 = OpLoad %float %frameID
          %59 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_7
          %60 = OpLoad %float %59
          %61 = OpFDiv %float %56 %60
                OpStore %fX %61
          %62 = OpLoad %float %fX
-         %64 = OpLoad %15 %frameMapSampler
-         %65 = OpLoad %12 %frameMapTexture
+         %64 = OpLoad %26 %frameMapSampler
+         %65 = OpLoad %23 %frameMapTexture
          %67 = OpSampledImage %66 %65 %64
          %69 = OpCompositeConstruct %v2float %62 %float_0
          %63 = OpImageSampleImplicitLod %v4float %67 %69 Bias %float_0
          %70 = OpLoad %float %fX
-         %72 = OpLoad %15 %frameMapSampler
-         %73 = OpLoad %12 %frameMapTexture
+         %72 = OpLoad %26 %frameMapSampler
+         %73 = OpLoad %23 %frameMapTexture
          %74 = OpSampledImage %66 %73 %72
          %76 = OpCompositeConstruct %v2float %70 %float_0_25
          %71 = OpImageSampleImplicitLod %v4float %74 %76 Bias %float_0
          %77 = OpLoad %float %fX
-         %79 = OpLoad %15 %frameMapSampler
-         %80 = OpLoad %12 %frameMapTexture
+         %79 = OpLoad %26 %frameMapSampler
+         %80 = OpLoad %23 %frameMapTexture
          %81 = OpSampledImage %66 %80 %79
          %83 = OpCompositeConstruct %v2float %77 %float_0_5
          %78 = OpImageSampleImplicitLod %v4float %81 %83 Bias %float_0
@@ -250,24 +255,24 @@
                OpFunctionEnd
      %main_1 = OpFunction %void None %106
         %109 = OpLabel
-      %color = OpVariable %_ptr_Function_v4float Function %31
-     %tileUV = OpVariable %_ptr_Function_v2float Function %18
-     %tileID = OpVariable %_ptr_Function_v2float Function %18
- %sheetUnits = OpVariable %_ptr_Function_v2float Function %18
-%spriteUnits = OpVariable %_ptr_Function_float Function %26
- %stageUnits = OpVariable %_ptr_Function_v2float Function %18
+      %color = OpVariable %_ptr_Function_v4float Function %15
+     %tileUV = OpVariable %_ptr_Function_v2float Function %29
+     %tileID = OpVariable %_ptr_Function_v2float Function %29
+ %sheetUnits = OpVariable %_ptr_Function_v2float Function %29
+%spriteUnits = OpVariable %_ptr_Function_float Function %37
+ %stageUnits = OpVariable %_ptr_Function_v2float Function %29
           %i = OpVariable %_ptr_Function_int Function %121
-  %frameID_1 = OpVariable %_ptr_Function_float Function %26
-%animationData = OpVariable %_ptr_Function_v4float Function %31
-          %f = OpVariable %_ptr_Function_float Function %26
+  %frameID_1 = OpVariable %_ptr_Function_float Function %37
+%animationData = OpVariable %_ptr_Function_v4float Function %15
+          %f = OpVariable %_ptr_Function_float Function %37
   %frameData = OpVariable %_ptr_Function_mat4v4float Function %127
-      %param = OpVariable %_ptr_Function_float Function %26
-  %frameSize = OpVariable %_ptr_Function_v2float Function %18
-   %offset_1 = OpVariable %_ptr_Function_v2float Function %18
-      %ratio = OpVariable %_ptr_Function_v2float Function %18
-         %nc = OpVariable %_ptr_Function_v4float Function %31
-      %alpha = OpVariable %_ptr_Function_float Function %26
-      %mixed = OpVariable %_ptr_Function_v3float Function %37
+      %param = OpVariable %_ptr_Function_float Function %37
+  %frameSize = OpVariable %_ptr_Function_v2float Function %29
+   %offset_1 = OpVariable %_ptr_Function_v2float Function %29
+      %ratio = OpVariable %_ptr_Function_v2float Function %29
+         %nc = OpVariable %_ptr_Function_v4float Function %15
+      %alpha = OpVariable %_ptr_Function_float Function %37
+      %mixed = OpVariable %_ptr_Function_v3float Function %47
                OpStore %color %99
         %136 = OpLoad %v2float %tUV
         %137 = OpExtInst %v2float %138 Fract %136
@@ -314,8 +319,8 @@
         %177 = OpLoad %v2float %tileID
         %178 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_4
         %179 = OpLoad %v2float %178
-        %181 = OpLoad %15 %tileMapsSampler
-        %182 = OpLoad %12 %tileMapsTexture1
+        %181 = OpLoad %26 %tileMapsSampler
+        %182 = OpLoad %23 %tileMapsTexture1
         %183 = OpSampledImage %66 %182 %181
         %185 = OpFAdd %v2float %177 %184
         %186 = OpFDiv %v2float %185 %179
@@ -327,8 +332,8 @@
         %188 = OpLoad %v2float %tileID
         %189 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_4
         %190 = OpLoad %v2float %189
-        %192 = OpLoad %15 %tileMapsSampler
-        %193 = OpLoad %12 %tileMapsTexture0
+        %192 = OpLoad %26 %tileMapsSampler
+        %193 = OpLoad %23 %tileMapsTexture0
         %194 = OpSampledImage %66 %193 %192
         %195 = OpFAdd %v2float %188 %184
         %196 = OpFDiv %v2float %195 %190
@@ -342,8 +347,8 @@
         %198 = OpLoad %float %frameID_1
         %199 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_7
         %200 = OpLoad %float %199
-        %202 = OpLoad %15 %animationMapSampler
-        %203 = OpLoad %12 %animationMapTexture
+        %202 = OpLoad %26 %animationMapSampler
+        %203 = OpLoad %23 %animationMapTexture
         %204 = OpSampledImage %66 %203 %202
         %205 = OpFAdd %float %198 %float_0_5
         %206 = OpFDiv %float %205 %200
@@ -394,8 +399,8 @@
         %240 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_7
         %241 = OpLoad %float %240
         %242 = OpLoad %float %f
-        %244 = OpLoad %15 %animationMapSampler
-        %245 = OpLoad %12 %animationMapTexture
+        %244 = OpLoad %26 %animationMapSampler
+        %245 = OpLoad %23 %animationMapTexture
         %246 = OpSampledImage %66 %245 %244
         %247 = OpFAdd %float %239 %float_0_5
         %248 = OpFDiv %float %247 %241
@@ -467,8 +472,8 @@
         %298 = OpLoad %v2float %tileUV
         %299 = OpLoad %v2float %frameSize
         %300 = OpLoad %v2float %offset_1
-        %302 = OpLoad %15 %spriteSheetSampler
-        %303 = OpLoad %12 %spriteSheetTexture
+        %302 = OpLoad %26 %spriteSheetSampler
+        %303 = OpLoad %23 %spriteSheetTexture
         %304 = OpSampledImage %66 %303 %302
         %305 = OpFMul %v2float %298 %299
         %306 = OpFAdd %v2float %305 %300
@@ -479,8 +484,8 @@
         %307 = OpLoad %v2float %tileUV
         %308 = OpLoad %v2float %frameSize
         %309 = OpLoad %v2float %offset_1
-        %311 = OpLoad %15 %spriteSheetSampler
-        %312 = OpLoad %12 %spriteSheetTexture
+        %311 = OpLoad %26 %spriteSheetSampler
+        %312 = OpLoad %23 %spriteSheetTexture
         %313 = OpSampledImage %66 %312 %311
         %314 = OpFMul %v2float %307 %308
         %315 = OpFAdd %v2float %314 %309
@@ -543,30 +548,35 @@
                OpStore %glFragColor %362
                OpReturn
                OpFunctionEnd
-%tint_symbol_8 = OpFunction %void None %363
-%tint_symbol_6 = OpFunctionParameter %main_out
-        %367 = OpLabel
-        %368 = OpCompositeExtract %v4float %tint_symbol_6 0
-               OpStore %tint_symbol_7 %368
-               OpReturn
+ %main_inner = OpFunction %main_out None %363
+  %tUV_param = OpFunctionParameter %v2float
+%tileID_1_param = OpFunctionParameter %v2float
+%levelUnits_param = OpFunctionParameter %v2float
+%stageUnits_1_param = OpFunctionParameter %v2float
+%vPosition_param = OpFunctionParameter %v3float
+  %vUV_param = OpFunctionParameter %v2float
+        %372 = OpLabel
+               OpStore %tUV %tUV_param
+               OpStore %tileID_1 %tileID_1_param
+               OpStore %levelUnits %levelUnits_param
+               OpStore %stageUnits_1 %stageUnits_1_param
+               OpStore %vPosition %vPosition_param
+               OpStore %vUV %vUV_param
+        %373 = OpFunctionCall %void %main_1
+        %374 = OpLoad %v4float %glFragColor
+        %375 = OpCompositeConstruct %main_out %374
+               OpReturnValue %375
                OpFunctionEnd
        %main = OpFunction %void None %106
-        %370 = OpLabel
-        %371 = OpLoad %v2float %tint_symbol
-               OpStore %tUV %371
-        %372 = OpLoad %v2float %tint_symbol_1
-               OpStore %tileID_1 %372
-        %373 = OpLoad %v2float %tint_symbol_2
-               OpStore %levelUnits %373
-        %374 = OpLoad %v2float %tint_symbol_3
-               OpStore %stageUnits_1 %374
-        %375 = OpLoad %v3float %tint_symbol_4
-               OpStore %vPosition %375
-        %376 = OpLoad %v2float %tint_symbol_5
-               OpStore %vUV %376
-        %377 = OpFunctionCall %void %main_1
-        %379 = OpLoad %v4float %glFragColor
-        %380 = OpCompositeConstruct %main_out %379
-        %378 = OpFunctionCall %void %tint_symbol_8 %380
+        %377 = OpLabel
+        %379 = OpLoad %v2float %tUV_param_1
+        %380 = OpLoad %v2float %tileID_1_param_1
+        %381 = OpLoad %v2float %levelUnits_param_1
+        %382 = OpLoad %v2float %stageUnits_1_param_1
+        %383 = OpLoad %v3float %vPosition_param_1
+        %384 = OpLoad %v2float %vUV_param_1
+        %378 = OpFunctionCall %main_out %main_inner %379 %380 %381 %382 %383 %384
+        %385 = OpCompositeExtract %v4float %378 0
+               OpStore %glFragColor_1_1 %385
                OpReturn
                OpFunctionEnd
diff --git a/test/bug/tint/949.wgsl.expected.spvasm b/test/bug/tint/949.wgsl.expected.spvasm
index 1d55ece..e2fce0a 100644
--- a/test/bug/tint/949.wgsl.expected.spvasm
+++ b/test/bug/tint/949.wgsl.expected.spvasm
@@ -1,13 +1,19 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 671
+; Bound: 675
 ; Schema: 0
                OpCapability Shader
          %88 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4 %tint_symbol_6
+               OpEntryPoint Fragment %main "main" %vMainuv_param_1 %v_output1_param_1 %gl_FrontFacing_param_1 %v_uv_param_1 %v_output2_param_1 %glFragColor_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %vMainuv_param_1 "vMainuv_param_1"
+               OpName %v_output1_param_1 "v_output1_param_1"
+               OpName %gl_FrontFacing_param_1 "gl_FrontFacing_param_1"
+               OpName %v_uv_param_1 "v_uv_param_1"
+               OpName %v_output2_param_1 "v_output2_param_1"
+               OpName %glFragColor_1_1 "glFragColor_1_1"
                OpName %u_Float "u_Float"
                OpName %u_Color "u_Color"
                OpName %TextureSamplerTexture "TextureSamplerTexture"
@@ -42,12 +48,6 @@
                OpName %glFragColor "glFragColor"
                OpName %bumpSamplerSampler "bumpSamplerSampler"
                OpName %bumpSamplerTexture "bumpSamplerTexture"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_6 "tint_symbol_6"
                OpName %cotangent_frame_vf3_vf3_vf2_vf2_ "cotangent_frame_vf3_vf3_vf2_vf2_"
                OpName %normal_1 "normal_1"
                OpName %p "p"
@@ -150,9 +150,19 @@
                OpName %output3 "output3"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "glFragColor_1"
-               OpName %tint_symbol_7 "tint_symbol_7"
-               OpName %tint_symbol_5 "tint_symbol_5"
+               OpName %main_inner "main_inner"
+               OpName %vMainuv_param "vMainuv_param"
+               OpName %v_output1_param "v_output1_param"
+               OpName %gl_FrontFacing_param "gl_FrontFacing_param"
+               OpName %v_uv_param "v_uv_param"
+               OpName %v_output2_param "v_output2_param"
                OpName %main "main"
+               OpDecorate %vMainuv_param_1 Location 1
+               OpDecorate %v_output1_param_1 Location 0
+               OpDecorate %gl_FrontFacing_param_1 BuiltIn FrontFacing
+               OpDecorate %v_uv_param_1 Location 3
+               OpDecorate %v_output2_param_1 Location 2
+               OpDecorate %glFragColor_1_1 Location 0
                OpDecorate %TextureSamplerTexture DescriptorSet 2
                OpDecorate %TextureSamplerTexture Binding 1
                OpDecorate %TextureSamplerSampler DescriptorSet 2
@@ -193,66 +203,60 @@
                OpDecorate %bumpSamplerSampler Binding 4
                OpDecorate %bumpSamplerTexture DescriptorSet 2
                OpDecorate %bumpSamplerTexture Binding 5
-               OpDecorate %tint_symbol Location 1
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_2 BuiltIn FrontFacing
-               OpDecorate %tint_symbol_3 Location 3
-               OpDecorate %tint_symbol_4 Location 2
-               OpDecorate %tint_symbol_6 Location 0
                OpMemberDecorate %lightingInfo 0 Offset 0
                OpMemberDecorate %lightingInfo 1 Offset 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v2float = OpTypeVector %float 2
+%_ptr_Input_v2float = OpTypePointer Input %v2float
+%vMainuv_param_1 = OpVariable %_ptr_Input_v2float Input
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%v_output1_param_1 = OpVariable %_ptr_Input_v4float Input
+       %bool = OpTypeBool
+%_ptr_Input_bool = OpTypePointer Input %bool
+%gl_FrontFacing_param_1 = OpVariable %_ptr_Input_bool Input
+%v_uv_param_1 = OpVariable %_ptr_Input_v2float Input
+%v_output2_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+         %15 = OpConstantNull %v4float
+%glFragColor_1_1 = OpVariable %_ptr_Output_v4float Output %15
 %_ptr_Private_float = OpTypePointer Private %float
-          %4 = OpConstantNull %float
-    %u_Float = OpVariable %_ptr_Private_float Private %4
+         %18 = OpConstantNull %float
+    %u_Float = OpVariable %_ptr_Private_float Private %18
     %v3float = OpTypeVector %float 3
 %_ptr_Private_v3float = OpTypePointer Private %v3float
-          %8 = OpConstantNull %v3float
-    %u_Color = OpVariable %_ptr_Private_v3float Private %8
-         %11 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
-%TextureSamplerTexture = OpVariable %_ptr_UniformConstant_11 UniformConstant
-         %14 = OpTypeSampler
-%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
-%TextureSamplerSampler = OpVariable %_ptr_UniformConstant_14 UniformConstant
-    %v2float = OpTypeVector %float 2
+         %22 = OpConstantNull %v3float
+    %u_Color = OpVariable %_ptr_Private_v3float Private %22
+         %25 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_25 = OpTypePointer UniformConstant %25
+%TextureSamplerTexture = OpVariable %_ptr_UniformConstant_25 UniformConstant
+         %28 = OpTypeSampler
+%_ptr_UniformConstant_28 = OpTypePointer UniformConstant %28
+%TextureSamplerSampler = OpVariable %_ptr_UniformConstant_28 UniformConstant
 %_ptr_Private_v2float = OpTypePointer Private %v2float
-         %18 = OpConstantNull %v2float
-    %vMainuv = OpVariable %_ptr_Private_v2float Private %18
-    %v4float = OpTypeVector %float 4
+         %31 = OpConstantNull %v2float
+    %vMainuv = OpVariable %_ptr_Private_v2float Private %31
 %mat4v4float = OpTypeMatrix %v4float 4
        %uint = OpTypeInt 32 0
    %LeftOver = OpTypeStruct %mat4v4float %mat4v4float %float %uint %v3float %float %float %uint %v2float
 %_ptr_Uniform_LeftOver = OpTypePointer Uniform %LeftOver
       %x_269 = OpVariable %_ptr_Uniform_LeftOver Uniform
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %27 = OpConstantNull %v4float
-  %v_output1 = OpVariable %_ptr_Private_v4float Private %27
-       %bool = OpTypeBool
+  %v_output1 = OpVariable %_ptr_Private_v4float Private %15
 %_ptr_Private_bool = OpTypePointer Private %bool
-         %31 = OpConstantNull %bool
-%gl_FrontFacing = OpVariable %_ptr_Private_bool Private %31
-       %v_uv = OpVariable %_ptr_Private_v2float Private %18
-  %v_output2 = OpVariable %_ptr_Private_v4float Private %27
-%TextureSampler1Texture = OpVariable %_ptr_UniformConstant_11 UniformConstant
-%TextureSampler1Sampler = OpVariable %_ptr_UniformConstant_14 UniformConstant
+         %41 = OpConstantNull %bool
+%gl_FrontFacing = OpVariable %_ptr_Private_bool Private %41
+       %v_uv = OpVariable %_ptr_Private_v2float Private %31
+  %v_output2 = OpVariable %_ptr_Private_v4float Private %15
+%TextureSampler1Texture = OpVariable %_ptr_UniformConstant_25 UniformConstant
+%TextureSampler1Sampler = OpVariable %_ptr_UniformConstant_28 UniformConstant
      %Light0 = OpTypeStruct %v4float %v4float %v4float %v3float %uint %v4float %v2float
 %_ptr_Uniform_Light0 = OpTypePointer Uniform %Light0
      %light0 = OpVariable %_ptr_Uniform_Light0 Uniform
-%glFragColor = OpVariable %_ptr_Private_v4float Private %27
-%bumpSamplerSampler = OpVariable %_ptr_UniformConstant_14 UniformConstant
-%bumpSamplerTexture = OpVariable %_ptr_UniformConstant_11 UniformConstant
-%_ptr_Input_v2float = OpTypePointer Input %v2float
-%tint_symbol = OpVariable %_ptr_Input_v2float Input
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol_1 = OpVariable %_ptr_Input_v4float Input
-%_ptr_Input_bool = OpTypePointer Input %bool
-%tint_symbol_2 = OpVariable %_ptr_Input_bool Input
-%tint_symbol_3 = OpVariable %_ptr_Input_v2float Input
-%tint_symbol_4 = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_6 = OpVariable %_ptr_Output_v4float Output %27
+%glFragColor = OpVariable %_ptr_Private_v4float Private %15
+%bumpSamplerSampler = OpVariable %_ptr_UniformConstant_28 UniformConstant
+%bumpSamplerTexture = OpVariable %_ptr_UniformConstant_25 UniformConstant
 %mat3v3float = OpTypeMatrix %v3float 3
 %_ptr_Function_v3float = OpTypePointer Function %v3float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
@@ -285,7 +289,7 @@
         %342 = OpConstantNull %int
   %float_100 = OpConstant %float 100
         %371 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5
-        %376 = OpTypeSampledImage %11
+        %376 = OpTypeSampledImage %25
      %uint_6 = OpConstant %uint 6
 %_ptr_Uniform_float = OpTypePointer Uniform %float
      %uint_4 = OpConstant %uint 4
@@ -302,22 +306,22 @@
 %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
      %uint_3 = OpConstant %uint 3
    %main_out = OpTypeStruct %v4float
-        %654 = OpTypeFunction %void %main_out
+        %654 = OpTypeFunction %main_out %v2float %v4float %bool %v2float %v4float
 %cotangent_frame_vf3_vf3_vf2_vf2_ = OpFunction %mat3v3float None %52
    %normal_1 = OpFunctionParameter %_ptr_Function_v3float
           %p = OpFunctionParameter %_ptr_Function_v3float
          %uv = OpFunctionParameter %_ptr_Function_v2float
 %tangentSpaceParams = OpFunctionParameter %_ptr_Function_v2float
          %61 = OpLabel
-        %dp1 = OpVariable %_ptr_Function_v3float Function %8
-        %dp2 = OpVariable %_ptr_Function_v3float Function %8
-       %duv1 = OpVariable %_ptr_Function_v2float Function %18
-       %duv2 = OpVariable %_ptr_Function_v2float Function %18
-    %dp2perp = OpVariable %_ptr_Function_v3float Function %8
-    %dp1perp = OpVariable %_ptr_Function_v3float Function %8
-    %tangent = OpVariable %_ptr_Function_v3float Function %8
-  %bitangent = OpVariable %_ptr_Function_v3float Function %8
-     %invmax = OpVariable %_ptr_Function_float Function %4
+        %dp1 = OpVariable %_ptr_Function_v3float Function %22
+        %dp2 = OpVariable %_ptr_Function_v3float Function %22
+       %duv1 = OpVariable %_ptr_Function_v2float Function %31
+       %duv2 = OpVariable %_ptr_Function_v2float Function %31
+    %dp2perp = OpVariable %_ptr_Function_v3float Function %22
+    %dp1perp = OpVariable %_ptr_Function_v3float Function %22
+    %tangent = OpVariable %_ptr_Function_v3float Function %22
+  %bitangent = OpVariable %_ptr_Function_v3float Function %22
+     %invmax = OpVariable %_ptr_Function_float Function %18
          %73 = OpLoad %v3float %p
          %74 = OpDPdx %v3float %73
                OpStore %dp1 %74
@@ -402,9 +406,9 @@
 %transposeMat3_mf33_ = OpFunction %mat3v3float None %152
    %inMatrix = OpFunctionParameter %_ptr_Function_mat3v3float
         %156 = OpLabel
-         %i0 = OpVariable %_ptr_Function_v3float Function %8
-         %i1 = OpVariable %_ptr_Function_v3float Function %8
-         %i2 = OpVariable %_ptr_Function_v3float Function %8
+         %i0 = OpVariable %_ptr_Function_v3float Function %22
+         %i1 = OpVariable %_ptr_Function_v3float Function %22
+         %i2 = OpVariable %_ptr_Function_v3float Function %22
   %outMatrix = OpVariable %_ptr_Function_mat3v3float Function %161
         %165 = OpAccessChain %_ptr_Function_v3float %inMatrix %int_0
         %166 = OpLoad %v3float %165
@@ -470,8 +474,8 @@
     %scale_1 = OpFunctionParameter %_ptr_Function_float
         %227 = OpLabel
       %param = OpVariable %_ptr_Function_mat3v3float Function %161
-    %param_1 = OpVariable %_ptr_Function_v3float Function %8
-    %param_2 = OpVariable %_ptr_Function_float Function %4
+    %param_1 = OpVariable %_ptr_Function_v3float Function %22
+    %param_2 = OpVariable %_ptr_Function_float Function %18
         %232 = OpLoad %v3float %textureSample
         %234 = OpLoad %mat3v3float %cotangentFrame_1
                OpStore %param %234
@@ -492,10 +496,10 @@
 %groundColor = OpFunctionParameter %_ptr_Function_v3float
  %glossiness = OpFunctionParameter %_ptr_Function_float
         %257 = OpLabel
-        %ndl = OpVariable %_ptr_Function_float Function %4
+        %ndl = OpVariable %_ptr_Function_float Function %18
      %result = OpVariable %_ptr_Function_lightingInfo Function %261
-     %angleW = OpVariable %_ptr_Function_v3float Function %8
-   %specComp = OpVariable %_ptr_Function_float Function %4
+     %angleW = OpVariable %_ptr_Function_v3float Function %22
+   %specComp = OpVariable %_ptr_Function_float Function %18
         %265 = OpLoad %v3float %vNormal
         %267 = OpLoad %v4float %lightData
         %269 = OpCompositeExtract %float %267 0
@@ -542,64 +546,64 @@
                OpFunctionEnd
      %main_1 = OpFunction %void None %311
         %314 = OpLabel
-%tempTextureRead = OpVariable %_ptr_Function_v4float Function %27
-        %rgb = OpVariable %_ptr_Function_v3float Function %8
-    %output5 = OpVariable %_ptr_Function_v3float Function %8
-    %output4 = OpVariable %_ptr_Function_v4float Function %27
-   %uvOffset = OpVariable %_ptr_Function_v2float Function %18
-%normalScale = OpVariable %_ptr_Function_float Function %4
-      %TBNUV = OpVariable %_ptr_Function_v2float Function %18
-      %x_299 = OpVariable %_ptr_Function_v2float Function %18
+%tempTextureRead = OpVariable %_ptr_Function_v4float Function %15
+        %rgb = OpVariable %_ptr_Function_v3float Function %22
+    %output5 = OpVariable %_ptr_Function_v3float Function %22
+    %output4 = OpVariable %_ptr_Function_v4float Function %15
+   %uvOffset = OpVariable %_ptr_Function_v2float Function %31
+%normalScale = OpVariable %_ptr_Function_float Function %18
+      %TBNUV = OpVariable %_ptr_Function_v2float Function %31
+      %x_299 = OpVariable %_ptr_Function_v2float Function %31
         %TBN = OpVariable %_ptr_Function_mat3v3float Function %161
-    %param_3 = OpVariable %_ptr_Function_v3float Function %8
-    %param_4 = OpVariable %_ptr_Function_v3float Function %8
-    %param_5 = OpVariable %_ptr_Function_v2float Function %18
-    %param_6 = OpVariable %_ptr_Function_v2float Function %18
+    %param_3 = OpVariable %_ptr_Function_v3float Function %22
+    %param_4 = OpVariable %_ptr_Function_v3float Function %22
+    %param_5 = OpVariable %_ptr_Function_v2float Function %31
+    %param_6 = OpVariable %_ptr_Function_v2float Function %31
      %invTBN = OpVariable %_ptr_Function_mat3v3float Function %161
     %param_7 = OpVariable %_ptr_Function_mat3v3float Function %161
-%parallaxLimit = OpVariable %_ptr_Function_float Function %4
- %vOffsetDir = OpVariable %_ptr_Function_v2float Function %18
- %vMaxOffset = OpVariable %_ptr_Function_v2float Function %18
- %numSamples = OpVariable %_ptr_Function_float Function %4
-   %stepSize = OpVariable %_ptr_Function_float Function %4
-%currRayHeight = OpVariable %_ptr_Function_float Function %4
-%vCurrOffset = OpVariable %_ptr_Function_v2float Function %18
-%vLastOffset = OpVariable %_ptr_Function_v2float Function %18
-%lastSampledHeight = OpVariable %_ptr_Function_float Function %4
-%currSampledHeight = OpVariable %_ptr_Function_float Function %4
+%parallaxLimit = OpVariable %_ptr_Function_float Function %18
+ %vOffsetDir = OpVariable %_ptr_Function_v2float Function %31
+ %vMaxOffset = OpVariable %_ptr_Function_v2float Function %31
+ %numSamples = OpVariable %_ptr_Function_float Function %18
+   %stepSize = OpVariable %_ptr_Function_float Function %18
+%currRayHeight = OpVariable %_ptr_Function_float Function %18
+%vCurrOffset = OpVariable %_ptr_Function_v2float Function %31
+%vLastOffset = OpVariable %_ptr_Function_v2float Function %31
+%lastSampledHeight = OpVariable %_ptr_Function_float Function %18
+%currSampledHeight = OpVariable %_ptr_Function_float Function %18
           %i = OpVariable %_ptr_Function_int Function %342
-     %delta1 = OpVariable %_ptr_Function_float Function %4
-     %delta2 = OpVariable %_ptr_Function_float Function %4
-      %ratio = OpVariable %_ptr_Function_float Function %4
-%parallaxOcclusion_0 = OpVariable %_ptr_Function_v2float Function %18
+     %delta1 = OpVariable %_ptr_Function_float Function %18
+     %delta2 = OpVariable %_ptr_Function_float Function %18
+      %ratio = OpVariable %_ptr_Function_float Function %18
+%parallaxOcclusion_0 = OpVariable %_ptr_Function_v2float Function %31
     %param_8 = OpVariable %_ptr_Function_mat3v3float Function %161
-    %param_9 = OpVariable %_ptr_Function_v3float Function %8
-   %param_10 = OpVariable %_ptr_Function_float Function %4
-    %output6 = OpVariable %_ptr_Function_v2float Function %18
-%tempTextureRead1 = OpVariable %_ptr_Function_v4float Function %27
-       %rgb1 = OpVariable %_ptr_Function_v3float Function %8
-%viewDirectionW_1 = OpVariable %_ptr_Function_v3float Function %8
-     %shadow = OpVariable %_ptr_Function_float Function %4
-%glossiness_1 = OpVariable %_ptr_Function_float Function %4
-%diffuseBase = OpVariable %_ptr_Function_v3float Function %8
-%specularBase = OpVariable %_ptr_Function_v3float Function %8
-    %normalW = OpVariable %_ptr_Function_v3float Function %8
+    %param_9 = OpVariable %_ptr_Function_v3float Function %22
+   %param_10 = OpVariable %_ptr_Function_float Function %18
+    %output6 = OpVariable %_ptr_Function_v2float Function %31
+%tempTextureRead1 = OpVariable %_ptr_Function_v4float Function %15
+       %rgb1 = OpVariable %_ptr_Function_v3float Function %22
+%viewDirectionW_1 = OpVariable %_ptr_Function_v3float Function %22
+     %shadow = OpVariable %_ptr_Function_float Function %18
+%glossiness_1 = OpVariable %_ptr_Function_float Function %18
+%diffuseBase = OpVariable %_ptr_Function_v3float Function %22
+%specularBase = OpVariable %_ptr_Function_v3float Function %22
+    %normalW = OpVariable %_ptr_Function_v3float Function %22
        %info = OpVariable %_ptr_Function_lightingInfo Function %261
-   %param_11 = OpVariable %_ptr_Function_v3float Function %8
-   %param_12 = OpVariable %_ptr_Function_v3float Function %8
-   %param_13 = OpVariable %_ptr_Function_v4float Function %27
-   %param_14 = OpVariable %_ptr_Function_v3float Function %8
-   %param_15 = OpVariable %_ptr_Function_v3float Function %8
-   %param_16 = OpVariable %_ptr_Function_v3float Function %8
-   %param_17 = OpVariable %_ptr_Function_float Function %4
-%diffuseOutput = OpVariable %_ptr_Function_v3float Function %8
-%specularOutput = OpVariable %_ptr_Function_v3float Function %8
-    %output3 = OpVariable %_ptr_Function_v3float Function %8
+   %param_11 = OpVariable %_ptr_Function_v3float Function %22
+   %param_12 = OpVariable %_ptr_Function_v3float Function %22
+   %param_13 = OpVariable %_ptr_Function_v4float Function %15
+   %param_14 = OpVariable %_ptr_Function_v3float Function %22
+   %param_15 = OpVariable %_ptr_Function_v3float Function %22
+   %param_16 = OpVariable %_ptr_Function_v3float Function %22
+   %param_17 = OpVariable %_ptr_Function_float Function %18
+%diffuseOutput = OpVariable %_ptr_Function_v3float Function %22
+%specularOutput = OpVariable %_ptr_Function_v3float Function %22
+    %output3 = OpVariable %_ptr_Function_v3float Function %22
                OpStore %u_Float %float_100
                OpStore %u_Color %371
         %372 = OpLoad %v2float %vMainuv
-        %374 = OpLoad %14 %TextureSamplerSampler
-        %375 = OpLoad %11 %TextureSamplerTexture
+        %374 = OpLoad %28 %TextureSamplerSampler
+        %375 = OpLoad %25 %TextureSamplerTexture
         %377 = OpSampledImage %376 %375 %374
         %373 = OpImageSampleImplicitLod %v4float %377 %372
                OpStore %tempTextureRead %373
@@ -741,8 +745,8 @@
         %492 = OpLabel
         %495 = OpLoad %v2float %v_uv
         %496 = OpLoad %v2float %vCurrOffset
-        %498 = OpLoad %14 %TextureSamplerSampler
-        %499 = OpLoad %11 %TextureSamplerTexture
+        %498 = OpLoad %28 %TextureSamplerSampler
+        %499 = OpLoad %25 %TextureSamplerTexture
         %500 = OpSampledImage %376 %499 %498
         %501 = OpFAdd %v2float %495 %496
         %497 = OpImageSampleImplicitLod %v4float %500 %501
@@ -810,8 +814,8 @@
                OpStore %uvOffset %543
         %544 = OpLoad %v2float %v_uv
         %545 = OpLoad %v2float %uvOffset
-        %547 = OpLoad %14 %TextureSamplerSampler
-        %548 = OpLoad %11 %TextureSamplerTexture
+        %547 = OpLoad %28 %TextureSamplerSampler
+        %548 = OpLoad %25 %TextureSamplerTexture
         %549 = OpSampledImage %376 %548 %547
         %550 = OpFAdd %v2float %544 %545
         %546 = OpImageSampleImplicitLod %v4float %549 %550
@@ -839,8 +843,8 @@
         %571 = OpFAdd %v2float %569 %570
                OpStore %output6 %571
         %572 = OpLoad %v2float %output6
-        %574 = OpLoad %14 %TextureSampler1Sampler
-        %575 = OpLoad %11 %TextureSampler1Texture
+        %574 = OpLoad %28 %TextureSampler1Sampler
+        %575 = OpLoad %25 %TextureSampler1Texture
         %576 = OpSampledImage %376 %575 %574
         %573 = OpImageSampleImplicitLod %v4float %576 %572
                OpStore %tempTextureRead1 %573
@@ -935,28 +939,32 @@
                OpStore %glFragColor %653
                OpReturn
                OpFunctionEnd
-%tint_symbol_7 = OpFunction %void None %654
-%tint_symbol_5 = OpFunctionParameter %main_out
-        %658 = OpLabel
-        %659 = OpCompositeExtract %v4float %tint_symbol_5 0
-               OpStore %tint_symbol_6 %659
-               OpReturn
+ %main_inner = OpFunction %main_out None %654
+%vMainuv_param = OpFunctionParameter %v2float
+%v_output1_param = OpFunctionParameter %v4float
+%gl_FrontFacing_param = OpFunctionParameter %bool
+ %v_uv_param = OpFunctionParameter %v2float
+%v_output2_param = OpFunctionParameter %v4float
+        %662 = OpLabel
+               OpStore %vMainuv %vMainuv_param
+               OpStore %v_output1 %v_output1_param
+               OpStore %gl_FrontFacing %gl_FrontFacing_param
+               OpStore %v_uv %v_uv_param
+               OpStore %v_output2 %v_output2_param
+        %663 = OpFunctionCall %void %main_1
+        %664 = OpLoad %v4float %glFragColor
+        %665 = OpCompositeConstruct %main_out %664
+               OpReturnValue %665
                OpFunctionEnd
        %main = OpFunction %void None %311
-        %661 = OpLabel
-        %662 = OpLoad %v2float %tint_symbol
-               OpStore %vMainuv %662
-        %663 = OpLoad %v4float %tint_symbol_1
-               OpStore %v_output1 %663
-        %664 = OpLoad %bool %tint_symbol_2
-               OpStore %gl_FrontFacing %664
-        %665 = OpLoad %v2float %tint_symbol_3
-               OpStore %v_uv %665
-        %666 = OpLoad %v4float %tint_symbol_4
-               OpStore %v_output2 %666
-        %667 = OpFunctionCall %void %main_1
-        %669 = OpLoad %v4float %glFragColor
-        %670 = OpCompositeConstruct %main_out %669
-        %668 = OpFunctionCall %void %tint_symbol_7 %670
+        %667 = OpLabel
+        %669 = OpLoad %v2float %vMainuv_param_1
+        %670 = OpLoad %v4float %v_output1_param_1
+        %671 = OpLoad %bool %gl_FrontFacing_param_1
+        %672 = OpLoad %v2float %v_uv_param_1
+        %673 = OpLoad %v4float %v_output2_param_1
+        %668 = OpFunctionCall %main_out %main_inner %669 %670 %671 %672 %673
+        %674 = OpCompositeExtract %v4float %668 0
+               OpStore %glFragColor_1_1 %674
                OpReturn
                OpFunctionEnd
diff --git a/test/bug/tint/951.spvasm.expected.spvasm b/test/bug/tint/951.spvasm.expected.spvasm
index 608d251..dfbd8de 100644
--- a/test/bug/tint/951.spvasm.expected.spvasm
+++ b/test/bug/tint/951.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 92
+; Bound: 97
 ; Schema: 0
                OpCapability Shader
          %46 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID_param_1
                OpExecutionMode %main LocalSize 128 1 1
+               OpName %gl_GlobalInvocationID_param_1 "gl_GlobalInvocationID_param_1"
                OpName %ssbOut "ssbOut"
                OpMemberName %ssbOut 0 "result"
                OpName %x_16 "x_16"
@@ -22,7 +23,6 @@
                OpMemberName %Uniforms 3 "outShapeStrides"
                OpMemberName %Uniforms 4 "size"
                OpName %x_24 "x_24"
-               OpName %tint_symbol "tint_symbol"
                OpName %getAAtOutCoords_ "getAAtOutCoords_"
                OpName %unaryOperation_f1_ "unaryOperation_f1_"
                OpName %a "a"
@@ -35,7 +35,10 @@
                OpName %param "param"
                OpName %param_1 "param_1"
                OpName %param_2 "param_2"
+               OpName %main_inner "main_inner"
+               OpName %gl_GlobalInvocationID_param "gl_GlobalInvocationID_param"
                OpName %main "main"
+               OpDecorate %gl_GlobalInvocationID_param_1 BuiltIn GlobalInvocationId
                OpDecorate %ssbOut Block
                OpMemberDecorate %ssbOut 0 Offset 0
                OpDecorate %_runtimearr_float ArrayStride 4
@@ -55,7 +58,10 @@
                OpDecorate %x_24 NonWritable
                OpDecorate %x_24 DescriptorSet 0
                OpDecorate %x_24 Binding 2
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
+       %uint = OpTypeInt 32 0
+     %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%gl_GlobalInvocationID_param_1 = OpVariable %_ptr_Input_v3uint Input
       %float = OpTypeFloat 32
 %_runtimearr_float = OpTypeRuntimeArray %float
      %ssbOut = OpTypeStruct %_runtimearr_float
@@ -64,17 +70,13 @@
        %ssbA = OpTypeStruct %_runtimearr_float
 %_ptr_StorageBuffer_ssbA = OpTypePointer StorageBuffer %ssbA
        %x_20 = OpVariable %_ptr_StorageBuffer_ssbA StorageBuffer
-       %uint = OpTypeInt 32 0
-     %v3uint = OpTypeVector %uint 3
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-         %13 = OpConstantNull %v3uint
-%gl_GlobalInvocationID = OpVariable %_ptr_Private_v3uint Private %13
+         %15 = OpConstantNull %v3uint
+%gl_GlobalInvocationID = OpVariable %_ptr_Private_v3uint Private %15
         %int = OpTypeInt 32 1
    %Uniforms = OpTypeStruct %float %int %int %int %int
 %_ptr_Uniform_Uniforms = OpTypePointer Uniform %Uniforms
        %x_24 = OpVariable %_ptr_Uniform_Uniforms Uniform
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
          %20 = OpTypeFunction %float
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_uint = OpTypePointer Private %uint
@@ -92,6 +94,7 @@
          %65 = OpConstantNull %float
      %uint_4 = OpConstant %uint 4
 %_ptr_Uniform_int = OpTypePointer Uniform %int
+         %88 = OpTypeFunction %void %v3uint
 %getAAtOutCoords_ = OpFunction %float None %20
          %22 = OpLabel
          %25 = OpAccessChain %_ptr_Private_uint %gl_GlobalInvocationID %uint_0
@@ -155,10 +158,16 @@
          %78 = OpLabel
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %88
+%gl_GlobalInvocationID_param = OpFunctionParameter %v3uint
+         %91 = OpLabel
+               OpStore %gl_GlobalInvocationID %gl_GlobalInvocationID_param
+         %92 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %59
-         %89 = OpLabel
-         %90 = OpLoad %v3uint %tint_symbol
-               OpStore %gl_GlobalInvocationID %90
-         %91 = OpFunctionCall %void %main_1
+         %94 = OpLabel
+         %96 = OpLoad %v3uint %gl_GlobalInvocationID_param_1
+         %95 = OpFunctionCall %void %main_inner %96
                OpReturn
                OpFunctionEnd
diff --git a/test/bug/tint/977.spvasm.expected.spvasm b/test/bug/tint/977.spvasm.expected.spvasm
index 25f6c65..4640725 100644
--- a/test/bug/tint/977.spvasm.expected.spvasm
+++ b/test/bug/tint/977.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 98
+; Bound: 103
 ; Schema: 0
                OpCapability Shader
          %43 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %gl_GlobalInvocationID_param_1 "gl_GlobalInvocationID_param_1"
                OpName %gl_GlobalInvocationID "gl_GlobalInvocationID"
                OpName %ResultMatrix "ResultMatrix"
                OpMemberName %ResultMatrix 0 "numbers"
@@ -23,7 +24,6 @@
                OpMemberName %Uniforms 1 "sizeA"
                OpMemberName %Uniforms 2 "sizeB"
                OpName %x_46 "x_46"
-               OpName %tint_symbol "tint_symbol"
                OpName %binaryOperation_f1_f1_ "binaryOperation_f1_f1_"
                OpName %a "a"
                OpName %b "b"
@@ -33,7 +33,10 @@
                OpName %a_1 "a_1"
                OpName %param "param"
                OpName %param_1 "param_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_GlobalInvocationID_param "gl_GlobalInvocationID_param"
                OpName %main "main"
+               OpDecorate %gl_GlobalInvocationID_param_1 BuiltIn GlobalInvocationId
                OpDecorate %ResultMatrix Block
                OpMemberDecorate %ResultMatrix 0 Offset 0
                OpDecorate %_runtimearr_float ArrayStride 4
@@ -56,12 +59,13 @@
                OpDecorate %x_46 NonWritable
                OpDecorate %x_46 DescriptorSet 0
                OpDecorate %x_46 Binding 3
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%gl_GlobalInvocationID_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-%gl_GlobalInvocationID = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+%gl_GlobalInvocationID = OpVariable %_ptr_Private_v3uint Private %7
       %float = OpTypeFloat 32
 %_runtimearr_float = OpTypeRuntimeArray %float
 %ResultMatrix = OpTypeStruct %_runtimearr_float
@@ -77,8 +81,6 @@
    %Uniforms = OpTypeStruct %float %int %int
 %_ptr_Uniform_Uniforms = OpTypePointer Uniform %Uniforms
        %x_46 = OpVariable %_ptr_Uniform_Uniforms Uniform
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Function_float = OpTypePointer Function %float
          %23 = OpTypeFunction %float %_ptr_Function_float %_ptr_Function_float
          %30 = OpConstantNull %float
@@ -96,6 +98,7 @@
    %float_n4 = OpConstant %float -4
    %float_n3 = OpConstant %float -3
 %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+         %94 = OpTypeFunction %void %v3uint
 %binaryOperation_f1_f1_ = OpFunction %float None %23
           %a = OpFunctionParameter %_ptr_Function_float
           %b = OpFunctionParameter %_ptr_Function_float
@@ -158,10 +161,16 @@
                OpStore %93 %89
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %94
+%gl_GlobalInvocationID_param = OpFunctionParameter %v3uint
+         %97 = OpLabel
+               OpStore %gl_GlobalInvocationID %gl_GlobalInvocationID_param
+         %98 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %70
-         %95 = OpLabel
-         %96 = OpLoad %v3uint %tint_symbol
-               OpStore %gl_GlobalInvocationID %96
-         %97 = OpFunctionCall %void %main_1
+        %100 = OpLabel
+        %102 = OpLoad %v3uint %gl_GlobalInvocationID_param_1
+        %101 = OpFunctionCall %void %main_inner %102
                OpReturn
                OpFunctionEnd
diff --git a/test/bug/tint/978.wgsl.expected.spvasm b/test/bug/tint/978.wgsl.expected.spvasm
index d9eb5b2..e1da002 100644
--- a/test/bug/tint/978.wgsl.expected.spvasm
+++ b/test/bug/tint/978.wgsl.expected.spvasm
@@ -5,81 +5,81 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_3
+               OpEntryPoint Fragment %main "main" %vUv_1 %color_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %vUv_1 "vUv_1"
+               OpName %color_1 "color_1"
                OpName %depthMap "depthMap"
                OpName %texSampler "texSampler"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %FragmentOutput "FragmentOutput"
                OpMemberName %FragmentOutput 0 "color"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %main "main"
                OpName %FragmentInput "FragmentInput"
                OpMemberName %FragmentInput 0 "vUv"
+               OpName %main_inner "main_inner"
+               OpName %fIn "fIn"
                OpName %fOut "fOut"
+               OpName %main "main"
+               OpDecorate %vUv_1 Location 2
+               OpDecorate %color_1 Location 0
                OpDecorate %depthMap Binding 5
                OpDecorate %depthMap DescriptorSet 1
                OpDecorate %texSampler Binding 3
                OpDecorate %texSampler DescriptorSet 1
-               OpDecorate %tint_symbol Location 2
-               OpDecorate %tint_symbol_3 Location 0
                OpMemberDecorate %FragmentOutput 0 Offset 0
                OpMemberDecorate %FragmentInput 0 Offset 0
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 1 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-   %depthMap = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
- %texSampler = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v2float = OpTypeVector %float 2
 %_ptr_Input_v2float = OpTypePointer Input %v2float
-%tint_symbol = OpVariable %_ptr_Input_v2float Input
+      %vUv_1 = OpVariable %_ptr_Input_v2float Input
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %14
-       %void = OpTypeVoid
+          %8 = OpConstantNull %v4float
+    %color_1 = OpVariable %_ptr_Output_v4float Output %8
+         %11 = OpTypeImage %float 2D 1 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+   %depthMap = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+ %texSampler = OpVariable %_ptr_UniformConstant_14 UniformConstant
 %FragmentOutput = OpTypeStruct %v4float
-         %15 = OpTypeFunction %void %FragmentOutput
-         %22 = OpTypeFunction %void
 %FragmentInput = OpTypeStruct %v2float
-         %32 = OpTypeSampledImage %3
+         %15 = OpTypeFunction %FragmentOutput %FragmentInput
+         %25 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
 %_ptr_Function_FragmentOutput = OpTypePointer Function %FragmentOutput
-         %39 = OpConstantNull %FragmentOutput
+         %32 = OpConstantNull %FragmentOutput
        %uint = OpTypeInt 32 0
      %uint_0 = OpConstant %uint 0
 %_ptr_Function_v4float = OpTypePointer Function %v4float
     %float_1 = OpConstant %float 1
-%tint_symbol_4 = OpFunction %void None %15
-%tint_symbol_2 = OpFunctionParameter %FragmentOutput
+       %void = OpTypeVoid
+         %43 = OpTypeFunction %void
+ %main_inner = OpFunction %FragmentOutput None %15
+        %fIn = OpFunctionParameter %FragmentInput
          %20 = OpLabel
-         %21 = OpCompositeExtract %v4float %tint_symbol_2 0
-               OpStore %tint_symbol_3 %21
-               OpReturn
+       %fOut = OpVariable %_ptr_Function_FragmentOutput Function %32
+         %23 = OpLoad %14 %texSampler
+         %24 = OpLoad %11 %depthMap
+         %26 = OpSampledImage %25 %24 %23
+         %27 = OpCompositeExtract %v2float %fIn 0
+         %22 = OpImageSampleImplicitLod %v4float %26 %27
+         %21 = OpCompositeExtract %float %22 0
+         %29 = OpCompositeConstruct %v3float %21 %21 %21
+         %36 = OpAccessChain %_ptr_Function_v4float %fOut %uint_0
+         %37 = OpCompositeExtract %float %29 0
+         %38 = OpCompositeExtract %float %29 1
+         %39 = OpCompositeExtract %float %29 2
+         %41 = OpCompositeConstruct %v4float %37 %38 %39 %float_1
+               OpStore %36 %41
+         %42 = OpLoad %FragmentOutput %fOut
+               OpReturnValue %42
                OpFunctionEnd
-       %main = OpFunction %void None %22
-         %24 = OpLabel
-       %fOut = OpVariable %_ptr_Function_FragmentOutput Function %39
-         %26 = OpLoad %v2float %tint_symbol
-         %27 = OpCompositeConstruct %FragmentInput %26
-         %30 = OpLoad %7 %texSampler
-         %31 = OpLoad %3 %depthMap
-         %33 = OpSampledImage %32 %31 %30
-         %34 = OpCompositeExtract %v2float %27 0
-         %29 = OpImageSampleImplicitLod %v4float %33 %34
-         %28 = OpCompositeExtract %float %29 0
-         %36 = OpCompositeConstruct %v3float %28 %28 %28
-         %43 = OpAccessChain %_ptr_Function_v4float %fOut %uint_0
-         %44 = OpCompositeExtract %float %36 0
-         %45 = OpCompositeExtract %float %36 1
-         %46 = OpCompositeExtract %float %36 2
-         %48 = OpCompositeConstruct %v4float %44 %45 %46 %float_1
-               OpStore %43 %48
-         %50 = OpLoad %FragmentOutput %fOut
-         %49 = OpFunctionCall %void %tint_symbol_4 %50
+       %main = OpFunction %void None %43
+         %46 = OpLabel
+         %48 = OpLoad %v2float %vUv_1
+         %49 = OpCompositeConstruct %FragmentInput %48
+         %47 = OpFunctionCall %FragmentOutput %main_inner %49
+         %50 = OpCompositeExtract %v4float %47 0
+               OpStore %color_1 %50
                OpReturn
                OpFunctionEnd
diff --git a/test/bug/tint/980.wgsl.expected.spvasm b/test/bug/tint/980.wgsl.expected.spvasm
index 2323ab3..ee66623 100644
--- a/test/bug/tint/980.wgsl.expected.spvasm
+++ b/test/bug/tint/980.wgsl.expected.spvasm
@@ -1,37 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
          %23 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main"
+               OpEntryPoint GLCompute %main "main" %idx_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %idx_1 "idx_1"
                OpName %S "S"
                OpMemberName %S 0 "v"
                OpMemberName %S 1 "i"
                OpName %io "io"
-               OpName %tint_symbol "tint_symbol"
                OpName %Bad "Bad"
                OpName %index "index"
                OpName %rd "rd"
                OpName %normal "normal"
+               OpName %main_inner "main_inner"
+               OpName %idx "idx"
                OpName %main "main"
+               OpDecorate %idx_1 BuiltIn LocalInvocationIndex
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpMemberDecorate %S 1 Offset 12
                OpDecorate %io Binding 0
                OpDecorate %io DescriptorSet 0
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+      %idx_1 = OpVariable %_ptr_Input_uint Input
       %float = OpTypeFloat 32
     %v3float = OpTypeVector %float 3
-       %uint = OpTypeInt 32 0
           %S = OpTypeStruct %v3float %uint
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
          %io = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
           %9 = OpTypeFunction %v3float %uint %v3float
     %float_0 = OpConstant %float 0
          %15 = OpConstantComposite %v3float %float_0 %float_0 %float_0
@@ -39,11 +41,12 @@
          %18 = OpConstantNull %v3float
 %_ptr_Function_float = OpTypePointer Function %float
        %void = OpTypeVoid
-         %27 = OpTypeFunction %void
+         %27 = OpTypeFunction %void %uint
      %uint_0 = OpConstant %uint 0
 %_ptr_StorageBuffer_v3float = OpTypePointer StorageBuffer %v3float
      %uint_1 = OpConstant %uint 1
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+         %42 = OpTypeFunction %void
         %Bad = OpFunction %v3float None %9
       %index = OpFunctionParameter %uint
          %rd = OpFunctionParameter %v3float
@@ -59,14 +62,21 @@
          %25 = OpExtInst %v3float %23 Normalize %26
                OpReturnValue %25
                OpFunctionEnd
-       %main = OpFunction %void None %27
-         %30 = OpLabel
-         %33 = OpAccessChain %_ptr_StorageBuffer_v3float %io %uint_0
-         %37 = OpAccessChain %_ptr_StorageBuffer_uint %io %uint_1
-         %38 = OpLoad %uint %37
-         %39 = OpAccessChain %_ptr_StorageBuffer_v3float %io %uint_0
-         %40 = OpLoad %v3float %39
-         %34 = OpFunctionCall %v3float %Bad %38 %40
-               OpStore %33 %34
+ %main_inner = OpFunction %void None %27
+        %idx = OpFunctionParameter %uint
+         %31 = OpLabel
+         %34 = OpAccessChain %_ptr_StorageBuffer_v3float %io %uint_0
+         %38 = OpAccessChain %_ptr_StorageBuffer_uint %io %uint_1
+         %39 = OpLoad %uint %38
+         %40 = OpAccessChain %_ptr_StorageBuffer_v3float %io %uint_0
+         %41 = OpLoad %v3float %40
+         %35 = OpFunctionCall %v3float %Bad %39 %41
+               OpStore %34 %35
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %42
+         %44 = OpLabel
+         %46 = OpLoad %uint %idx_1
+         %45 = OpFunctionCall %void %main_inner %46
                OpReturn
                OpFunctionEnd
diff --git a/test/bug/tint/992.wgsl.expected.spvasm b/test/bug/tint/992.wgsl.expected.spvasm
index ea7331b..e077344 100644
--- a/test/bug/tint/992.wgsl.expected.spvasm
+++ b/test/bug/tint/992.wgsl.expected.spvasm
@@ -1,53 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %frag_main "frag_main" %tint_symbol_1
+               OpEntryPoint Fragment %frag_main "frag_main" %value
                OpExecutionMode %frag_main OriginUpperLeft
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
-               OpName %frag_main "frag_main"
+               OpName %value "value"
+               OpName %frag_main_inner "frag_main_inner"
                OpName %b "b"
                OpName %v "v"
-               OpDecorate %tint_symbol_1 Location 0
+               OpName %frag_main "frag_main"
+               OpDecorate %value Location 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
-       %void = OpTypeVoid
-          %6 = OpTypeFunction %void %v4float
-         %11 = OpTypeFunction %void
+      %value = OpVariable %_ptr_Output_v4float Output %5
+          %6 = OpTypeFunction %v4float
     %float_0 = OpConstant %float 0
 %_ptr_Function_float = OpTypePointer Function %float
-         %17 = OpConstantNull %float
+         %12 = OpConstantNull %float
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %23 = OpConstantNull %v3float
+         %18 = OpConstantNull %v3float
     %float_1 = OpConstant %float 1
-%tint_symbol_2 = OpFunction %void None %6
-%tint_symbol = OpFunctionParameter %v4float
-         %10 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
-               OpFunctionEnd
-  %frag_main = OpFunction %void None %11
-         %13 = OpLabel
-          %b = OpVariable %_ptr_Function_float Function %17
-          %v = OpVariable %_ptr_Function_v3float Function %23
+       %void = OpTypeVoid
+         %25 = OpTypeFunction %void
+%frag_main_inner = OpFunction %v4float None %6
+          %8 = OpLabel
+          %b = OpVariable %_ptr_Function_float Function %12
+          %v = OpVariable %_ptr_Function_v3float Function %18
                OpStore %b %float_0
-         %19 = OpLoad %float %b
-         %20 = OpCompositeConstruct %v3float %19 %19 %19
-               OpStore %v %20
-         %25 = OpLoad %v3float %v
-         %26 = OpCompositeExtract %float %25 0
-         %27 = OpCompositeExtract %float %25 1
-         %28 = OpCompositeExtract %float %25 2
-         %30 = OpCompositeConstruct %v4float %26 %27 %28 %float_1
-         %24 = OpFunctionCall %void %tint_symbol_2 %30
+         %14 = OpLoad %float %b
+         %15 = OpCompositeConstruct %v3float %14 %14 %14
+               OpStore %v %15
+         %19 = OpLoad %v3float %v
+         %20 = OpCompositeExtract %float %19 0
+         %21 = OpCompositeExtract %float %19 1
+         %22 = OpCompositeExtract %float %19 2
+         %24 = OpCompositeConstruct %v4float %20 %21 %22 %float_1
+               OpReturnValue %24
+               OpFunctionEnd
+  %frag_main = OpFunction %void None %25
+         %28 = OpLabel
+         %29 = OpFunctionCall %v4float %frag_main_inner
+               OpStore %value %29
                OpReturn
                OpFunctionEnd
diff --git a/test/expressions/literals/-inf.spvasm.expected.spvasm b/test/expressions/literals/-inf.spvasm.expected.spvasm
index db2fddd..105db0e 100644
--- a/test/expressions/literals/-inf.spvasm.expected.spvasm
+++ b/test/expressions/literals/-inf.spvasm.expected.spvasm
@@ -1,52 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 26
+; Bound: 25
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %out_var_SV_TARGET_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %out_var_SV_TARGET_1_1 "out_var_SV_TARGET_1_1"
                OpName %out_var_SV_TARGET "out_var_SV_TARGET"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "out_var_SV_TARGET_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %out_var_SV_TARGET_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%out_var_SV_TARGET = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%out_var_SV_TARGET_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%out_var_SV_TARGET = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
 %float_n0x1p_128 = OpConstant %float -0x1p+128
          %13 = OpConstantComposite %v4float %float_n0x1p_128 %float_n0x1p_128 %float_n0x1p_128 %float_n0x1p_128
    %main_out = OpTypeStruct %v4float
-         %14 = OpTypeFunction %void %main_out
+         %14 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
                OpStore %out_var_SV_TARGET %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %14
-%tint_symbol = OpFunctionParameter %main_out
-         %18 = OpLabel
-         %19 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %19
-               OpReturn
+ %main_inner = OpFunction %main_out None %14
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %main_1
+         %19 = OpLoad %v4float %out_var_SV_TARGET
+         %20 = OpCompositeConstruct %main_out %19
+               OpReturnValue %20
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %21 = OpLabel
-         %22 = OpFunctionCall %void %main_1
-         %24 = OpLoad %v4float %out_var_SV_TARGET
-         %25 = OpCompositeConstruct %main_out %24
-         %23 = OpFunctionCall %void %tint_symbol_2 %25
+         %22 = OpLabel
+         %23 = OpFunctionCall %main_out %main_inner
+         %24 = OpCompositeExtract %v4float %23 0
+               OpStore %out_var_SV_TARGET_1_1 %24
                OpReturn
                OpFunctionEnd
diff --git a/test/expressions/literals/inf.spvasm.expected.spvasm b/test/expressions/literals/inf.spvasm.expected.spvasm
index eb416fd..27caae2 100644
--- a/test/expressions/literals/inf.spvasm.expected.spvasm
+++ b/test/expressions/literals/inf.spvasm.expected.spvasm
@@ -1,52 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 26
+; Bound: 25
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %out_var_SV_TARGET_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %out_var_SV_TARGET_1_1 "out_var_SV_TARGET_1_1"
                OpName %out_var_SV_TARGET "out_var_SV_TARGET"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "out_var_SV_TARGET_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %out_var_SV_TARGET_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%out_var_SV_TARGET = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%out_var_SV_TARGET_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%out_var_SV_TARGET = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
 %float_0x1p_128 = OpConstant %float 0x1p+128
          %13 = OpConstantComposite %v4float %float_0x1p_128 %float_0x1p_128 %float_0x1p_128 %float_0x1p_128
    %main_out = OpTypeStruct %v4float
-         %14 = OpTypeFunction %void %main_out
+         %14 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
                OpStore %out_var_SV_TARGET %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %14
-%tint_symbol = OpFunctionParameter %main_out
-         %18 = OpLabel
-         %19 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %19
-               OpReturn
+ %main_inner = OpFunction %main_out None %14
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %main_1
+         %19 = OpLoad %v4float %out_var_SV_TARGET
+         %20 = OpCompositeConstruct %main_out %19
+               OpReturnValue %20
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %21 = OpLabel
-         %22 = OpFunctionCall %void %main_1
-         %24 = OpLoad %v4float %out_var_SV_TARGET
-         %25 = OpCompositeConstruct %main_out %24
-         %23 = OpFunctionCall %void %tint_symbol_2 %25
+         %22 = OpLabel
+         %23 = OpFunctionCall %main_out %main_inner
+         %24 = OpCompositeExtract %v4float %23 0
+               OpStore %out_var_SV_TARGET_1_1 %24
                OpReturn
                OpFunctionEnd
diff --git a/test/expressions/literals/nan.spvasm.expected.spvasm b/test/expressions/literals/nan.spvasm.expected.spvasm
index b4b90b7..c9e283d 100644
--- a/test/expressions/literals/nan.spvasm.expected.spvasm
+++ b/test/expressions/literals/nan.spvasm.expected.spvasm
@@ -1,52 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 26
+; Bound: 25
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %out_var_SV_TARGET_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %out_var_SV_TARGET_1_1 "out_var_SV_TARGET_1_1"
                OpName %out_var_SV_TARGET "out_var_SV_TARGET"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "out_var_SV_TARGET_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %out_var_SV_TARGET_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%out_var_SV_TARGET = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%out_var_SV_TARGET_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%out_var_SV_TARGET = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
 %float_0x1_1p_128 = OpConstant %float 0x1.1p+128
          %13 = OpConstantComposite %v4float %float_0x1_1p_128 %float_0x1_1p_128 %float_0x1_1p_128 %float_0x1_1p_128
    %main_out = OpTypeStruct %v4float
-         %14 = OpTypeFunction %void %main_out
+         %14 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
                OpStore %out_var_SV_TARGET %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %14
-%tint_symbol = OpFunctionParameter %main_out
-         %18 = OpLabel
-         %19 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %19
-               OpReturn
+ %main_inner = OpFunction %main_out None %14
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %main_1
+         %19 = OpLoad %v4float %out_var_SV_TARGET
+         %20 = OpCompositeConstruct %main_out %19
+               OpReturnValue %20
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %21 = OpLabel
-         %22 = OpFunctionCall %void %main_1
-         %24 = OpLoad %v4float %out_var_SV_TARGET
-         %25 = OpCompositeConstruct %main_out %24
-         %23 = OpFunctionCall %void %tint_symbol_2 %25
+         %22 = OpLabel
+         %23 = OpFunctionCall %main_out %main_inner
+         %24 = OpCompositeExtract %v4float %23 0
+               OpStore %out_var_SV_TARGET_1_1 %24
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/abs/002533.wgsl.expected.spvasm b/test/intrinsics/gen/abs/002533.wgsl.expected.spvasm
index 1c8872f..7a11367 100644
--- a/test/intrinsics/gen/abs/002533.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/abs/002533.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %abs_002533 "abs_002533"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %abs_002533 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 FAbs %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 FAbs %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %abs_002533
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %abs_002533
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %abs_002533
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %abs_002533
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %abs_002533
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %abs_002533
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/abs/005174.wgsl.expected.spvasm b/test/intrinsics/gen/abs/005174.wgsl.expected.spvasm
index cf479cf..a5282ba 100644
--- a/test/intrinsics/gen/abs/005174.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/abs/005174.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %abs_005174 "abs_005174"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %abs_005174 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %abs_005174
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %abs_005174
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %abs_005174
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %abs_005174
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %abs_005174
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %abs_005174
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/abs/1ce782.wgsl.expected.spvasm b/test/intrinsics/gen/abs/1ce782.wgsl.expected.spvasm
index 80b9133..793b4cc 100644
--- a/test/intrinsics/gen/abs/1ce782.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/abs/1ce782.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %abs_1ce782 "abs_1ce782"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v4uint = OpTypeVector %uint 4
          %17 = OpConstantNull %v4uint
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %abs_1ce782 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %abs_1ce782
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %abs_1ce782
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %abs_1ce782
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %abs_1ce782
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %abs_1ce782
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %abs_1ce782
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/abs/1e9d53.wgsl.expected.spvasm b/test/intrinsics/gen/abs/1e9d53.wgsl.expected.spvasm
index 64cd558..b6cba31 100644
--- a/test/intrinsics/gen/abs/1e9d53.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/abs/1e9d53.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %abs_1e9d53 "abs_1e9d53"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %abs_1e9d53 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %abs_1e9d53
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %abs_1e9d53
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %abs_1e9d53
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %abs_1e9d53
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %abs_1e9d53
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %abs_1e9d53
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/abs/467cd1.wgsl.expected.spvasm b/test/intrinsics/gen/abs/467cd1.wgsl.expected.spvasm
index 9ad9cb3..d11d39e 100644
--- a/test/intrinsics/gen/abs/467cd1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/abs/467cd1.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %abs_467cd1 "abs_467cd1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %19 = OpConstantNull %uint
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %abs_467cd1 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %abs_467cd1
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %abs_467cd1
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %abs_467cd1
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %abs_467cd1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %abs_467cd1
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %abs_467cd1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/abs/4ad288.wgsl.expected.spvasm b/test/intrinsics/gen/abs/4ad288.wgsl.expected.spvasm
index a037803..1512a8c 100644
--- a/test/intrinsics/gen/abs/4ad288.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/abs/4ad288.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %abs_4ad288 "abs_4ad288"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %19 = OpConstantNull %int
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %abs_4ad288 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %abs_4ad288
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %abs_4ad288
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %abs_4ad288
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %abs_4ad288
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %abs_4ad288
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %abs_4ad288
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/abs/5ad50a.wgsl.expected.spvasm b/test/intrinsics/gen/abs/5ad50a.wgsl.expected.spvasm
index f5a5d0c..7928d05 100644
--- a/test/intrinsics/gen/abs/5ad50a.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/abs/5ad50a.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %abs_5ad50a "abs_5ad50a"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
          %17 = OpConstantNull %v3int
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %abs_5ad50a = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %abs_5ad50a
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %abs_5ad50a
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %abs_5ad50a
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %abs_5ad50a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %abs_5ad50a
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %abs_5ad50a
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/abs/7326de.wgsl.expected.spvasm b/test/intrinsics/gen/abs/7326de.wgsl.expected.spvasm
index 4ea8984..066ce7b 100644
--- a/test/intrinsics/gen/abs/7326de.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/abs/7326de.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %abs_7326de "abs_7326de"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
          %17 = OpConstantNull %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %abs_7326de = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %abs_7326de
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %abs_7326de
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %abs_7326de
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %abs_7326de
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %abs_7326de
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %abs_7326de
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/abs/7f28e6.wgsl.expected.spvasm b/test/intrinsics/gen/abs/7f28e6.wgsl.expected.spvasm
index fc456ae..c840c80 100644
--- a/test/intrinsics/gen/abs/7f28e6.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/abs/7f28e6.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %abs_7f28e6 "abs_7f28e6"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
          %17 = OpConstantNull %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %abs_7f28e6 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %abs_7f28e6
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %abs_7f28e6
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %abs_7f28e6
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %abs_7f28e6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %abs_7f28e6
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %abs_7f28e6
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/abs/7faa9e.wgsl.expected.spvasm b/test/intrinsics/gen/abs/7faa9e.wgsl.expected.spvasm
index 22d8436..61f2054 100644
--- a/test/intrinsics/gen/abs/7faa9e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/abs/7faa9e.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %abs_7faa9e "abs_7faa9e"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
          %17 = OpConstantNull %v2int
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %abs_7faa9e = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %abs_7faa9e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %abs_7faa9e
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %abs_7faa9e
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %abs_7faa9e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %abs_7faa9e
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %abs_7faa9e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/abs/9c80a6.wgsl.expected.spvasm b/test/intrinsics/gen/abs/9c80a6.wgsl.expected.spvasm
index b94f60d..b880d60 100644
--- a/test/intrinsics/gen/abs/9c80a6.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/abs/9c80a6.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %abs_9c80a6 "abs_9c80a6"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v4int = OpTypeVector %int 4
          %17 = OpConstantNull %v4int
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %abs_9c80a6 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %abs_9c80a6
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %abs_9c80a6
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %abs_9c80a6
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %abs_9c80a6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %abs_9c80a6
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %abs_9c80a6
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/abs/b96037.wgsl.expected.spvasm b/test/intrinsics/gen/abs/b96037.wgsl.expected.spvasm
index 694ea15..8118fd5 100644
--- a/test/intrinsics/gen/abs/b96037.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/abs/b96037.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %abs_b96037 "abs_b96037"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
  %abs_b96037 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 FAbs %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %abs_b96037
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %abs_b96037
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %abs_b96037
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %abs_b96037
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %abs_b96037
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %abs_b96037
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/acos/489247.wgsl.expected.spvasm b/test/intrinsics/gen/acos/489247.wgsl.expected.spvasm
index e4b8879..5a49920 100644
--- a/test/intrinsics/gen/acos/489247.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/acos/489247.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %acos_489247 "acos_489247"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
 %acos_489247 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Acos %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %acos_489247
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %acos_489247
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %acos_489247
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %acos_489247
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %acos_489247
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %acos_489247
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/acos/8e2acf.wgsl.expected.spvasm b/test/intrinsics/gen/acos/8e2acf.wgsl.expected.spvasm
index da5d306..53fd784 100644
--- a/test/intrinsics/gen/acos/8e2acf.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/acos/8e2acf.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %acos_8e2acf "acos_8e2acf"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %acos_8e2acf = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Acos %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Acos %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %acos_8e2acf
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %acos_8e2acf
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %acos_8e2acf
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %acos_8e2acf
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %acos_8e2acf
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %acos_8e2acf
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/acos/a610c4.wgsl.expected.spvasm b/test/intrinsics/gen/acos/a610c4.wgsl.expected.spvasm
index df7fe1e..eaf58ce 100644
--- a/test/intrinsics/gen/acos/a610c4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/acos/a610c4.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %acos_a610c4 "acos_a610c4"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %acos_a610c4 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %acos_a610c4
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %acos_a610c4
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %acos_a610c4
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %acos_a610c4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %acos_a610c4
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %acos_a610c4
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/acos/dfc915.wgsl.expected.spvasm b/test/intrinsics/gen/acos/dfc915.wgsl.expected.spvasm
index 117ffe9..346031d 100644
--- a/test/intrinsics/gen/acos/dfc915.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/acos/dfc915.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %acos_dfc915 "acos_dfc915"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %acos_dfc915 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %acos_dfc915
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %acos_dfc915
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %acos_dfc915
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %acos_dfc915
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %acos_dfc915
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %acos_dfc915
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/all/986c7b.wgsl.expected.spvasm b/test/intrinsics/gen/all/986c7b.wgsl.expected.spvasm
index c2fce04..03f7f57 100644
--- a/test/intrinsics/gen/all/986c7b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/all/986c7b.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %all_986c7b "all_986c7b"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -36,7 +35,7 @@
          %16 = OpConstantNull %v4bool
 %_ptr_Function_bool = OpTypePointer Function %bool
          %19 = OpConstantNull %bool
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %all_986c7b = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %all_986c7b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %all_986c7b
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %all_986c7b
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %all_986c7b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %all_986c7b
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %all_986c7b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/all/bd2dba.wgsl.expected.spvasm b/test/intrinsics/gen/all/bd2dba.wgsl.expected.spvasm
index b9224d4..14e2aee 100644
--- a/test/intrinsics/gen/all/bd2dba.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/all/bd2dba.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %all_bd2dba "all_bd2dba"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -36,7 +35,7 @@
          %16 = OpConstantNull %v3bool
 %_ptr_Function_bool = OpTypePointer Function %bool
          %19 = OpConstantNull %bool
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %all_bd2dba = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %all_bd2dba
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %all_bd2dba
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %all_bd2dba
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %all_bd2dba
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %all_bd2dba
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %all_bd2dba
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/all/f46790.wgsl.expected.spvasm b/test/intrinsics/gen/all/f46790.wgsl.expected.spvasm
index 0fe4165..915f2f5 100644
--- a/test/intrinsics/gen/all/f46790.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/all/f46790.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %all_f46790 "all_f46790"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -36,7 +35,7 @@
          %16 = OpConstantNull %v2bool
 %_ptr_Function_bool = OpTypePointer Function %bool
          %19 = OpConstantNull %bool
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %all_f46790 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %all_f46790
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %all_f46790
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %all_f46790
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %all_f46790
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %all_f46790
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %all_f46790
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/any/083428.wgsl.expected.spvasm b/test/intrinsics/gen/any/083428.wgsl.expected.spvasm
index 29ba54d..52d4977 100644
--- a/test/intrinsics/gen/any/083428.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/any/083428.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %any_083428 "any_083428"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -36,7 +35,7 @@
          %16 = OpConstantNull %v4bool
 %_ptr_Function_bool = OpTypePointer Function %bool
          %19 = OpConstantNull %bool
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %any_083428 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %any_083428
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %any_083428
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %any_083428
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %any_083428
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %any_083428
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %any_083428
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/any/0e3e58.wgsl.expected.spvasm b/test/intrinsics/gen/any/0e3e58.wgsl.expected.spvasm
index 3e772c9..868dec0 100644
--- a/test/intrinsics/gen/any/0e3e58.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/any/0e3e58.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %any_0e3e58 "any_0e3e58"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -36,7 +35,7 @@
          %16 = OpConstantNull %v2bool
 %_ptr_Function_bool = OpTypePointer Function %bool
          %19 = OpConstantNull %bool
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %any_0e3e58 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %any_0e3e58
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %any_0e3e58
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %any_0e3e58
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %any_0e3e58
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %any_0e3e58
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %any_0e3e58
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/any/e755c1.wgsl.expected.spvasm b/test/intrinsics/gen/any/e755c1.wgsl.expected.spvasm
index 29c726f..7e196b0 100644
--- a/test/intrinsics/gen/any/e755c1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/any/e755c1.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %any_e755c1 "any_e755c1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -36,7 +35,7 @@
          %16 = OpConstantNull %v3bool
 %_ptr_Function_bool = OpTypePointer Function %bool
          %19 = OpConstantNull %bool
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %any_e755c1 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %any_e755c1
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %any_e755c1
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %any_e755c1
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %any_e755c1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %any_e755c1
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %any_e755c1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.spvasm b/test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.spvasm
index 7d23781..40b7f6e 100644
--- a/test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.spvasm
@@ -1,54 +1,53 @@
 ; 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 %SB_RO "SB_RO"
                OpMemberName %SB_RO 0 "arg_0"
                OpName %sb_ro "sb_ro"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %arrayLength_1588cd "arrayLength_1588cd"
                OpName %res "res"
-               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 %SB_RO Block
                OpMemberDecorate %SB_RO 0 Offset 0
                OpDecorate %_runtimearr_int ArrayStride 4
                OpDecorate %sb_ro NonWritable
                OpDecorate %sb_ro DescriptorSet 0
                OpDecorate %sb_ro Binding 1
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
 %_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
 %_runtimearr_int = OpTypeRuntimeArray %int
       %SB_RO = OpTypeStruct %_runtimearr_int
 %_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
       %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-         %13 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %13
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
 %_ptr_Function_uint = OpTypePointer Function %uint
          %22 = OpConstantNull %uint
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %arrayLength_1588cd = OpFunction %void None %14
          %17 = OpLabel
@@ -57,26 +56,25 @@
                OpStore %res %18
                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 %arrayLength_1588cd
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %14
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %arrayLength_1588cd
-         %31 = OpFunctionCall %void %tint_symbol_2 %13
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %14
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %arrayLength_1588cd
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %arrayLength_1588cd
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %14
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %arrayLength_1588cd
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %arrayLength_1588cd
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.spvasm b/test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.spvasm
index 21cb6bc..482bb98 100644
--- a/test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.spvasm
@@ -1,53 +1,52 @@
 ; 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 %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %arrayLength_61b1c7 "arrayLength_61b1c7"
                OpName %res "res"
-               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 %SB_RW Block
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %_runtimearr_int ArrayStride 4
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
 %_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
 %_runtimearr_int = OpTypeRuntimeArray %int
       %SB_RW = OpTypeStruct %_runtimearr_int
 %_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
       %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-         %13 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %13
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
 %_ptr_Function_uint = OpTypePointer Function %uint
          %22 = OpConstantNull %uint
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %arrayLength_61b1c7 = OpFunction %void None %14
          %17 = OpLabel
@@ -56,26 +55,25 @@
                OpStore %res %18
                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 %arrayLength_61b1c7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %14
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %arrayLength_61b1c7
-         %31 = OpFunctionCall %void %tint_symbol_2 %13
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %14
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %arrayLength_61b1c7
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %arrayLength_61b1c7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %14
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %arrayLength_61b1c7
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %arrayLength_61b1c7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.spvasm b/test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.spvasm
index c946ecd..0af5f92 100644
--- a/test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.spvasm
@@ -1,53 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; 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 %SB_RO "SB_RO"
                OpMemberName %SB_RO 0 "arg_0"
                OpName %sb_ro "sb_ro"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %arrayLength_a0f5ca "arrayLength_a0f5ca"
                OpName %res "res"
-               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 %SB_RO Block
                OpMemberDecorate %SB_RO 0 Offset 0
                OpDecorate %_runtimearr_float ArrayStride 4
                OpDecorate %sb_ro NonWritable
                OpDecorate %sb_ro DescriptorSet 0
                OpDecorate %sb_ro Binding 1
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
 %_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
 %_runtimearr_float = OpTypeRuntimeArray %float
       %SB_RO = OpTypeStruct %_runtimearr_float
 %_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
       %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
 %_ptr_Function_uint = OpTypePointer Function %uint
          %21 = OpConstantNull %uint
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %arrayLength_a0f5ca = OpFunction %void None %13
          %16 = OpLabel
@@ -56,26 +55,25 @@
                OpStore %res %17
                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 %arrayLength_a0f5ca
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %arrayLength_a0f5ca
-         %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 %arrayLength_a0f5ca
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %arrayLength_a0f5ca
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %arrayLength_a0f5ca
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %arrayLength_a0f5ca
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.spvasm b/test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.spvasm
index 8e1edb6..4644796 100644
--- a/test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.spvasm
@@ -1,52 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; 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 %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %arrayLength_cdd123 "arrayLength_cdd123"
                OpName %res "res"
-               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 %SB_RW Block
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %_runtimearr_float ArrayStride 4
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
 %_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
 %_runtimearr_float = OpTypeRuntimeArray %float
       %SB_RW = OpTypeStruct %_runtimearr_float
 %_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
       %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
 %_ptr_Function_uint = OpTypePointer Function %uint
          %21 = OpConstantNull %uint
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %arrayLength_cdd123 = OpFunction %void None %13
          %16 = OpLabel
@@ -55,26 +54,25 @@
                OpStore %res %17
                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 %arrayLength_cdd123
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %arrayLength_cdd123
-         %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 %arrayLength_cdd123
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %arrayLength_cdd123
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %arrayLength_cdd123
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %arrayLength_cdd123
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.spvasm b/test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.spvasm
index 776749e..db230e9 100644
--- a/test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.spvasm
@@ -1,53 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; 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 %SB_RO "SB_RO"
                OpMemberName %SB_RO 0 "arg_0"
                OpName %sb_ro "sb_ro"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %arrayLength_cfca0a "arrayLength_cfca0a"
                OpName %res "res"
-               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 %SB_RO Block
                OpMemberDecorate %SB_RO 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
                OpDecorate %sb_ro NonWritable
                OpDecorate %sb_ro DescriptorSet 0
                OpDecorate %sb_ro Binding 1
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
 %_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
 %_runtimearr_uint = OpTypeRuntimeArray %uint
       %SB_RO = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
       %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-         %13 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %13
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
 %_ptr_Function_uint = OpTypePointer Function %uint
          %21 = OpConstantNull %uint
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %arrayLength_cfca0a = OpFunction %void None %14
          %17 = OpLabel
@@ -56,26 +55,25 @@
                OpStore %res %18
                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 %arrayLength_cfca0a
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %14
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %arrayLength_cfca0a
-         %30 = OpFunctionCall %void %tint_symbol_2 %13
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %14
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %arrayLength_cfca0a
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %arrayLength_cfca0a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %14
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %arrayLength_cfca0a
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %arrayLength_cfca0a
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.spvasm b/test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.spvasm
index 7184336..b165c3f 100644
--- a/test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.spvasm
@@ -1,52 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; 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 %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %arrayLength_eb510f "arrayLength_eb510f"
                OpName %res "res"
-               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 %SB_RW Block
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 0
-               OpDecorate %tint_symbol_1 BuiltIn Position
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
 %_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
 %_runtimearr_uint = OpTypeRuntimeArray %uint
       %SB_RW = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
       %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-         %13 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %13
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
 %_ptr_Function_uint = OpTypePointer Function %uint
          %21 = OpConstantNull %uint
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %arrayLength_eb510f = OpFunction %void None %14
          %17 = OpLabel
@@ -55,26 +54,25 @@
                OpStore %res %18
                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 %arrayLength_eb510f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %14
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %arrayLength_eb510f
-         %30 = OpFunctionCall %void %tint_symbol_2 %13
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %14
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %arrayLength_eb510f
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %arrayLength_eb510f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %14
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %arrayLength_eb510f
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %arrayLength_eb510f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/asin/064953.wgsl.expected.spvasm b/test/intrinsics/gen/asin/064953.wgsl.expected.spvasm
index 4f4bd4c..dec5ed9 100644
--- a/test/intrinsics/gen/asin/064953.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/asin/064953.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %asin_064953 "asin_064953"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %asin_064953 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Asin %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Asin %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %asin_064953
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %asin_064953
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %asin_064953
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %asin_064953
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %asin_064953
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %asin_064953
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/asin/7b6a44.wgsl.expected.spvasm b/test/intrinsics/gen/asin/7b6a44.wgsl.expected.spvasm
index bf48d2d..c52137e 100644
--- a/test/intrinsics/gen/asin/7b6a44.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/asin/7b6a44.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %asin_7b6a44 "asin_7b6a44"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %asin_7b6a44 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %asin_7b6a44
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %asin_7b6a44
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %asin_7b6a44
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %asin_7b6a44
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %asin_7b6a44
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %asin_7b6a44
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/asin/8cd9c9.wgsl.expected.spvasm b/test/intrinsics/gen/asin/8cd9c9.wgsl.expected.spvasm
index 2b16759..ca0dad6 100644
--- a/test/intrinsics/gen/asin/8cd9c9.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/asin/8cd9c9.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %asin_8cd9c9 "asin_8cd9c9"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %asin_8cd9c9 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %asin_8cd9c9
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %asin_8cd9c9
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %asin_8cd9c9
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %asin_8cd9c9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %asin_8cd9c9
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %asin_8cd9c9
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/asin/c0c272.wgsl.expected.spvasm b/test/intrinsics/gen/asin/c0c272.wgsl.expected.spvasm
index 6b5ec45..47f627e 100644
--- a/test/intrinsics/gen/asin/c0c272.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/asin/c0c272.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %asin_c0c272 "asin_c0c272"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
 %asin_c0c272 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Asin %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %asin_c0c272
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %asin_c0c272
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %asin_c0c272
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %asin_c0c272
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %asin_c0c272
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %asin_c0c272
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atan/02979a.wgsl.expected.spvasm b/test/intrinsics/gen/atan/02979a.wgsl.expected.spvasm
index 190f8b8..301e926 100644
--- a/test/intrinsics/gen/atan/02979a.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atan/02979a.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %atan_02979a "atan_02979a"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
 %atan_02979a = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Atan %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %atan_02979a
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %atan_02979a
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %atan_02979a
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %atan_02979a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %atan_02979a
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %atan_02979a
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atan/331e6d.wgsl.expected.spvasm b/test/intrinsics/gen/atan/331e6d.wgsl.expected.spvasm
index 09d84b5..1cf1035 100644
--- a/test/intrinsics/gen/atan/331e6d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atan/331e6d.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %atan_331e6d "atan_331e6d"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %atan_331e6d = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %atan_331e6d
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %atan_331e6d
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %atan_331e6d
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %atan_331e6d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %atan_331e6d
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %atan_331e6d
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atan/a8b696.wgsl.expected.spvasm b/test/intrinsics/gen/atan/a8b696.wgsl.expected.spvasm
index 745878f..b60e136 100644
--- a/test/intrinsics/gen/atan/a8b696.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atan/a8b696.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %atan_a8b696 "atan_a8b696"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %atan_a8b696 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Atan %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Atan %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %atan_a8b696
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %atan_a8b696
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %atan_a8b696
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %atan_a8b696
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %atan_a8b696
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %atan_a8b696
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atan/ad96e4.wgsl.expected.spvasm b/test/intrinsics/gen/atan/ad96e4.wgsl.expected.spvasm
index 6148168..b8a5656 100644
--- a/test/intrinsics/gen/atan/ad96e4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atan/ad96e4.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %atan_ad96e4 "atan_ad96e4"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %atan_ad96e4 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %atan_ad96e4
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %atan_ad96e4
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %atan_ad96e4
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %atan_ad96e4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %atan_ad96e4
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %atan_ad96e4
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atan2/57fb13.wgsl.expected.spvasm b/test/intrinsics/gen/atan2/57fb13.wgsl.expected.spvasm
index a43a400..5fea69d 100644
--- a/test/intrinsics/gen/atan2/57fb13.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atan2/57fb13.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %atan2_57fb13 "atan2_57fb13"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %atan2_57fb13 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %atan2_57fb13
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %atan2_57fb13
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %atan2_57fb13
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %atan2_57fb13
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %atan2_57fb13
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %atan2_57fb13
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atan2/96057c.wgsl.expected.spvasm b/test/intrinsics/gen/atan2/96057c.wgsl.expected.spvasm
index 6f09ee6..777b131 100644
--- a/test/intrinsics/gen/atan2/96057c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atan2/96057c.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %atan2_96057c "atan2_96057c"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
 %atan2_96057c = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Atan2 %float_1 %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %atan2_96057c
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %atan2_96057c
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %atan2_96057c
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %atan2_96057c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %atan2_96057c
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %atan2_96057c
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atan2/a70d0d.wgsl.expected.spvasm b/test/intrinsics/gen/atan2/a70d0d.wgsl.expected.spvasm
index 1ddf165..7b9579a 100644
--- a/test/intrinsics/gen/atan2/a70d0d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atan2/a70d0d.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %atan2_a70d0d "atan2_a70d0d"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %atan2_a70d0d = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %atan2_a70d0d
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %atan2_a70d0d
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %atan2_a70d0d
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %atan2_a70d0d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %atan2_a70d0d
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %atan2_a70d0d
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atan2/ae713e.wgsl.expected.spvasm b/test/intrinsics/gen/atan2/ae713e.wgsl.expected.spvasm
index 8ecfa94..60b09d4 100644
--- a/test/intrinsics/gen/atan2/ae713e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atan2/ae713e.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %atan2_ae713e "atan2_ae713e"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %atan2_ae713e = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Atan2 %8 %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Atan2 %5 %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %atan2_ae713e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %atan2_ae713e
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %atan2_ae713e
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %atan2_ae713e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %atan2_ae713e
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %atan2_ae713e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atomicAdd/794055.wgsl.expected.spvasm b/test/intrinsics/gen/atomicAdd/794055.wgsl.expected.spvasm
index a4e90d3..d8903dc 100644
--- a/test/intrinsics/gen/atomicAdd/794055.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atomicAdd/794055.wgsl.expected.spvasm
@@ -1,24 +1,26 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 26
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol "tint_symbol"
                OpName %atomicAdd_794055 "atomicAdd_794055"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
 %_ptr_Workgroup_int = OpTypePointer Workgroup %int
       %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %7 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
@@ -26,6 +28,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %18 = OpConstantNull %int
+         %19 = OpTypeFunction %void %uint
    %uint_264 = OpConstant %uint 264
 %atomicAdd_794055 = OpFunction %void None %7
          %10 = OpLabel
@@ -34,10 +37,17 @@
                OpStore %res %11
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %7
-         %20 = OpLabel
+%compute_main_inner = OpFunction %void None %19
+%local_invocation_index = OpFunctionParameter %uint
+         %22 = OpLabel
                OpAtomicStore %arg_0 %uint_2 %uint_0 %18
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %25 = OpFunctionCall %void %atomicAdd_794055
+         %27 = OpFunctionCall %void %atomicAdd_794055
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %7
+         %29 = OpLabel
+         %31 = OpLoad %uint %local_invocation_index_1
+         %30 = OpFunctionCall %void %compute_main_inner %31
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.spvasm b/test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.spvasm
index b7ad731..110fb42 100644
--- a/test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.spvasm
@@ -1,23 +1,25 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 25
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol "tint_symbol"
                OpName %atomicAdd_d5db1d "atomicAdd_d5db1d"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
        %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
 %_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
       %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %6 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
@@ -25,6 +27,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %17 = OpConstantNull %uint
+         %18 = OpTypeFunction %void %uint
    %uint_264 = OpConstant %uint 264
 %atomicAdd_d5db1d = OpFunction %void None %6
           %9 = OpLabel
@@ -33,10 +36,17 @@
                OpStore %res %10
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %6
-         %19 = OpLabel
+%compute_main_inner = OpFunction %void None %18
+%local_invocation_index = OpFunctionParameter %uint
+         %21 = OpLabel
                OpAtomicStore %arg_0 %uint_2 %uint_0 %17
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %24 = OpFunctionCall %void %atomicAdd_d5db1d
+         %26 = OpFunctionCall %void %atomicAdd_d5db1d
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %6
+         %28 = OpLabel
+         %30 = OpLoad %uint %local_invocation_index_1
+         %29 = OpFunctionCall %void %compute_main_inner %30
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.spvasm b/test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.spvasm
index 13c210e..3d205d2 100644
--- a/test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.spvasm
@@ -1,23 +1,25 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 25
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol "tint_symbol"
                OpName %atomicAnd_34edd3 "atomicAnd_34edd3"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
        %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
 %_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
       %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %6 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
@@ -25,6 +27,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %17 = OpConstantNull %uint
+         %18 = OpTypeFunction %void %uint
    %uint_264 = OpConstant %uint 264
 %atomicAnd_34edd3 = OpFunction %void None %6
           %9 = OpLabel
@@ -33,10 +36,17 @@
                OpStore %res %10
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %6
-         %19 = OpLabel
+%compute_main_inner = OpFunction %void None %18
+%local_invocation_index = OpFunctionParameter %uint
+         %21 = OpLabel
                OpAtomicStore %arg_0 %uint_2 %uint_0 %17
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %24 = OpFunctionCall %void %atomicAnd_34edd3
+         %26 = OpFunctionCall %void %atomicAnd_34edd3
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %6
+         %28 = OpLabel
+         %30 = OpLoad %uint %local_invocation_index_1
+         %29 = OpFunctionCall %void %compute_main_inner %30
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.spvasm b/test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.spvasm
index e9169c1..696d2a3 100644
--- a/test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.spvasm
@@ -1,24 +1,26 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 26
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol "tint_symbol"
                OpName %atomicAnd_45a819 "atomicAnd_45a819"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
 %_ptr_Workgroup_int = OpTypePointer Workgroup %int
       %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %7 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
@@ -26,6 +28,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %18 = OpConstantNull %int
+         %19 = OpTypeFunction %void %uint
    %uint_264 = OpConstant %uint 264
 %atomicAnd_45a819 = OpFunction %void None %7
          %10 = OpLabel
@@ -34,10 +37,17 @@
                OpStore %res %11
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %7
-         %20 = OpLabel
+%compute_main_inner = OpFunction %void None %19
+%local_invocation_index = OpFunctionParameter %uint
+         %22 = OpLabel
                OpAtomicStore %arg_0 %uint_2 %uint_0 %18
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %25 = OpFunctionCall %void %atomicAnd_45a819
+         %27 = OpFunctionCall %void %atomicAnd_45a819
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %7
+         %29 = OpLabel
+         %31 = OpLoad %uint %local_invocation_index_1
+         %30 = OpFunctionCall %void %compute_main_inner %31
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.spvasm b/test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.spvasm
index d69a5fa..40f727b 100644
--- a/test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.spvasm
@@ -1,24 +1,26 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol "tint_symbol"
                OpName %atomicCompareExchangeWeak_89ea3b "atomicCompareExchangeWeak_89ea3b"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
 %_ptr_Workgroup_int = OpTypePointer Workgroup %int
       %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %7 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
@@ -29,7 +31,8 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %29 = OpConstantNull %int
+         %25 = OpTypeFunction %void %uint
+         %31 = OpConstantNull %int
    %uint_264 = OpConstant %uint 264
 %atomicCompareExchangeWeak_89ea3b = OpFunction %void None %7
          %10 = OpLabel
@@ -41,10 +44,17 @@
                OpStore %res %11
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %7
-         %26 = OpLabel
-               OpAtomicStore %arg_0 %uint_2 %uint_0 %29
+%compute_main_inner = OpFunction %void None %25
+%local_invocation_index = OpFunctionParameter %uint
+         %28 = OpLabel
+               OpAtomicStore %arg_0 %uint_2 %uint_0 %31
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %32 = OpFunctionCall %void %atomicCompareExchangeWeak_89ea3b
+         %34 = OpFunctionCall %void %atomicCompareExchangeWeak_89ea3b
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %7
+         %36 = OpLabel
+         %38 = OpLoad %uint %local_invocation_index_1
+         %37 = OpFunctionCall %void %compute_main_inner %38
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.spvasm b/test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.spvasm
index 9590588..6098500 100644
--- a/test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.spvasm
@@ -1,23 +1,25 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol "tint_symbol"
                OpName %atomicCompareExchangeWeak_b2ab2c "atomicCompareExchangeWeak_b2ab2c"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
        %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
 %_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
       %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %6 = OpTypeFunction %void
      %v2uint = OpTypeVector %uint 2
@@ -27,7 +29,8 @@
        %bool = OpTypeBool
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
          %22 = OpConstantNull %v2uint
-         %27 = OpConstantNull %uint
+         %23 = OpTypeFunction %void %uint
+         %29 = OpConstantNull %uint
    %uint_264 = OpConstant %uint 264
 %atomicCompareExchangeWeak_b2ab2c = OpFunction %void None %6
           %9 = OpLabel
@@ -39,10 +42,17 @@
                OpStore %res %10
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %6
-         %24 = OpLabel
-               OpAtomicStore %arg_0 %uint_2 %uint_0 %27
+%compute_main_inner = OpFunction %void None %23
+%local_invocation_index = OpFunctionParameter %uint
+         %26 = OpLabel
+               OpAtomicStore %arg_0 %uint_2 %uint_0 %29
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %30 = OpFunctionCall %void %atomicCompareExchangeWeak_b2ab2c
+         %32 = OpFunctionCall %void %atomicCompareExchangeWeak_b2ab2c
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %6
+         %34 = OpLabel
+         %36 = OpLoad %uint %local_invocation_index_1
+         %35 = OpFunctionCall %void %compute_main_inner %36
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.spvasm b/test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.spvasm
index b0b0282..23dbf02 100644
--- a/test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.spvasm
@@ -1,23 +1,25 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 25
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol "tint_symbol"
                OpName %atomicExchange_0a5dca "atomicExchange_0a5dca"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
        %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
 %_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
       %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %6 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
@@ -25,6 +27,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %17 = OpConstantNull %uint
+         %18 = OpTypeFunction %void %uint
    %uint_264 = OpConstant %uint 264
 %atomicExchange_0a5dca = OpFunction %void None %6
           %9 = OpLabel
@@ -33,10 +36,17 @@
                OpStore %res %10
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %6
-         %19 = OpLabel
+%compute_main_inner = OpFunction %void None %18
+%local_invocation_index = OpFunctionParameter %uint
+         %21 = OpLabel
                OpAtomicStore %arg_0 %uint_2 %uint_0 %17
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %24 = OpFunctionCall %void %atomicExchange_0a5dca
+         %26 = OpFunctionCall %void %atomicExchange_0a5dca
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %6
+         %28 = OpLabel
+         %30 = OpLoad %uint %local_invocation_index_1
+         %29 = OpFunctionCall %void %compute_main_inner %30
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.spvasm b/test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.spvasm
index b8ed5ea..b541d6b 100644
--- a/test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.spvasm
@@ -1,24 +1,26 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 26
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol "tint_symbol"
                OpName %atomicExchange_e114ba "atomicExchange_e114ba"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
 %_ptr_Workgroup_int = OpTypePointer Workgroup %int
       %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %7 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
@@ -26,6 +28,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %18 = OpConstantNull %int
+         %19 = OpTypeFunction %void %uint
    %uint_264 = OpConstant %uint 264
 %atomicExchange_e114ba = OpFunction %void None %7
          %10 = OpLabel
@@ -34,10 +37,17 @@
                OpStore %res %11
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %7
-         %20 = OpLabel
+%compute_main_inner = OpFunction %void None %19
+%local_invocation_index = OpFunctionParameter %uint
+         %22 = OpLabel
                OpAtomicStore %arg_0 %uint_2 %uint_0 %18
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %25 = OpFunctionCall %void %atomicExchange_e114ba
+         %27 = OpFunctionCall %void %atomicExchange_e114ba
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %7
+         %29 = OpLabel
+         %31 = OpLoad %uint %local_invocation_index_1
+         %30 = OpFunctionCall %void %compute_main_inner %31
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.spvasm b/test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.spvasm
index 0d7eaad..20eeca7 100644
--- a/test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.spvasm
@@ -1,29 +1,32 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 24
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol "tint_symbol"
                OpName %atomicLoad_361bf1 "atomicLoad_361bf1"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
        %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
 %_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
       %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %6 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
      %uint_0 = OpConstant %uint 0
 %_ptr_Function_uint = OpTypePointer Function %uint
          %16 = OpConstantNull %uint
+         %17 = OpTypeFunction %void %uint
    %uint_264 = OpConstant %uint 264
 %atomicLoad_361bf1 = OpFunction %void None %6
           %9 = OpLabel
@@ -32,10 +35,17 @@
                OpStore %res %10
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %6
-         %18 = OpLabel
+%compute_main_inner = OpFunction %void None %17
+%local_invocation_index = OpFunctionParameter %uint
+         %20 = OpLabel
                OpAtomicStore %arg_0 %uint_2 %uint_0 %16
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %23 = OpFunctionCall %void %atomicLoad_361bf1
+         %25 = OpFunctionCall %void %atomicLoad_361bf1
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %6
+         %27 = OpLabel
+         %29 = OpLoad %uint %local_invocation_index_1
+         %28 = OpFunctionCall %void %compute_main_inner %29
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.spvasm b/test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.spvasm
index 76c86e9..b996359 100644
--- a/test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.spvasm
@@ -1,30 +1,33 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 25
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol "tint_symbol"
                OpName %atomicLoad_afcc03 "atomicLoad_afcc03"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
 %_ptr_Workgroup_int = OpTypePointer Workgroup %int
       %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %7 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
      %uint_0 = OpConstant %uint 0
 %_ptr_Function_int = OpTypePointer Function %int
          %17 = OpConstantNull %int
+         %18 = OpTypeFunction %void %uint
    %uint_264 = OpConstant %uint 264
 %atomicLoad_afcc03 = OpFunction %void None %7
          %10 = OpLabel
@@ -33,10 +36,17 @@
                OpStore %res %11
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %7
-         %19 = OpLabel
+%compute_main_inner = OpFunction %void None %18
+%local_invocation_index = OpFunctionParameter %uint
+         %21 = OpLabel
                OpAtomicStore %arg_0 %uint_2 %uint_0 %17
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %24 = OpFunctionCall %void %atomicLoad_afcc03
+         %26 = OpFunctionCall %void %atomicLoad_afcc03
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %7
+         %28 = OpLabel
+         %30 = OpLoad %uint %local_invocation_index_1
+         %29 = OpFunctionCall %void %compute_main_inner %30
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.spvasm b/test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.spvasm
index 94b3012..62355e0 100644
--- a/test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.spvasm
@@ -1,24 +1,26 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 26
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol "tint_symbol"
                OpName %atomicMax_a89cc3 "atomicMax_a89cc3"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
 %_ptr_Workgroup_int = OpTypePointer Workgroup %int
       %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %7 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
@@ -26,6 +28,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %18 = OpConstantNull %int
+         %19 = OpTypeFunction %void %uint
    %uint_264 = OpConstant %uint 264
 %atomicMax_a89cc3 = OpFunction %void None %7
          %10 = OpLabel
@@ -34,10 +37,17 @@
                OpStore %res %11
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %7
-         %20 = OpLabel
+%compute_main_inner = OpFunction %void None %19
+%local_invocation_index = OpFunctionParameter %uint
+         %22 = OpLabel
                OpAtomicStore %arg_0 %uint_2 %uint_0 %18
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %25 = OpFunctionCall %void %atomicMax_a89cc3
+         %27 = OpFunctionCall %void %atomicMax_a89cc3
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %7
+         %29 = OpLabel
+         %31 = OpLoad %uint %local_invocation_index_1
+         %30 = OpFunctionCall %void %compute_main_inner %31
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.spvasm b/test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.spvasm
index a6c8ad2..2636c66 100644
--- a/test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.spvasm
@@ -1,23 +1,25 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 25
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol "tint_symbol"
                OpName %atomicMax_beccfc "atomicMax_beccfc"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
        %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
 %_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
       %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %6 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
@@ -25,6 +27,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %17 = OpConstantNull %uint
+         %18 = OpTypeFunction %void %uint
    %uint_264 = OpConstant %uint 264
 %atomicMax_beccfc = OpFunction %void None %6
           %9 = OpLabel
@@ -33,10 +36,17 @@
                OpStore %res %10
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %6
-         %19 = OpLabel
+%compute_main_inner = OpFunction %void None %18
+%local_invocation_index = OpFunctionParameter %uint
+         %21 = OpLabel
                OpAtomicStore %arg_0 %uint_2 %uint_0 %17
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %24 = OpFunctionCall %void %atomicMax_beccfc
+         %26 = OpFunctionCall %void %atomicMax_beccfc
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %6
+         %28 = OpLabel
+         %30 = OpLoad %uint %local_invocation_index_1
+         %29 = OpFunctionCall %void %compute_main_inner %30
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atomicMin/278235.wgsl.expected.spvasm b/test/intrinsics/gen/atomicMin/278235.wgsl.expected.spvasm
index 282bc1c..dfe5a35 100644
--- a/test/intrinsics/gen/atomicMin/278235.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atomicMin/278235.wgsl.expected.spvasm
@@ -1,24 +1,26 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 26
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol "tint_symbol"
                OpName %atomicMin_278235 "atomicMin_278235"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
 %_ptr_Workgroup_int = OpTypePointer Workgroup %int
       %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %7 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
@@ -26,6 +28,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %18 = OpConstantNull %int
+         %19 = OpTypeFunction %void %uint
    %uint_264 = OpConstant %uint 264
 %atomicMin_278235 = OpFunction %void None %7
          %10 = OpLabel
@@ -34,10 +37,17 @@
                OpStore %res %11
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %7
-         %20 = OpLabel
+%compute_main_inner = OpFunction %void None %19
+%local_invocation_index = OpFunctionParameter %uint
+         %22 = OpLabel
                OpAtomicStore %arg_0 %uint_2 %uint_0 %18
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %25 = OpFunctionCall %void %atomicMin_278235
+         %27 = OpFunctionCall %void %atomicMin_278235
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %7
+         %29 = OpLabel
+         %31 = OpLoad %uint %local_invocation_index_1
+         %30 = OpFunctionCall %void %compute_main_inner %31
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atomicMin/69d383.wgsl.expected.spvasm b/test/intrinsics/gen/atomicMin/69d383.wgsl.expected.spvasm
index 4fdde84..de92bee 100644
--- a/test/intrinsics/gen/atomicMin/69d383.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atomicMin/69d383.wgsl.expected.spvasm
@@ -1,23 +1,25 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 25
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol "tint_symbol"
                OpName %atomicMin_69d383 "atomicMin_69d383"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
        %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
 %_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
       %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %6 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
@@ -25,6 +27,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %17 = OpConstantNull %uint
+         %18 = OpTypeFunction %void %uint
    %uint_264 = OpConstant %uint 264
 %atomicMin_69d383 = OpFunction %void None %6
           %9 = OpLabel
@@ -33,10 +36,17 @@
                OpStore %res %10
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %6
-         %19 = OpLabel
+%compute_main_inner = OpFunction %void None %18
+%local_invocation_index = OpFunctionParameter %uint
+         %21 = OpLabel
                OpAtomicStore %arg_0 %uint_2 %uint_0 %17
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %24 = OpFunctionCall %void %atomicMin_69d383
+         %26 = OpFunctionCall %void %atomicMin_69d383
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %6
+         %28 = OpLabel
+         %30 = OpLoad %uint %local_invocation_index_1
+         %29 = OpFunctionCall %void %compute_main_inner %30
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.spvasm b/test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.spvasm
index 13690cc..1b9dc27 100644
--- a/test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.spvasm
@@ -1,23 +1,25 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 25
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol "tint_symbol"
                OpName %atomicOr_5e3d61 "atomicOr_5e3d61"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
        %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
 %_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
       %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %6 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
@@ -25,6 +27,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %17 = OpConstantNull %uint
+         %18 = OpTypeFunction %void %uint
    %uint_264 = OpConstant %uint 264
 %atomicOr_5e3d61 = OpFunction %void None %6
           %9 = OpLabel
@@ -33,10 +36,17 @@
                OpStore %res %10
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %6
-         %19 = OpLabel
+%compute_main_inner = OpFunction %void None %18
+%local_invocation_index = OpFunctionParameter %uint
+         %21 = OpLabel
                OpAtomicStore %arg_0 %uint_2 %uint_0 %17
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %24 = OpFunctionCall %void %atomicOr_5e3d61
+         %26 = OpFunctionCall %void %atomicOr_5e3d61
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %6
+         %28 = OpLabel
+         %30 = OpLoad %uint %local_invocation_index_1
+         %29 = OpFunctionCall %void %compute_main_inner %30
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atomicOr/d09248.wgsl.expected.spvasm b/test/intrinsics/gen/atomicOr/d09248.wgsl.expected.spvasm
index b49156a..cd14aa9 100644
--- a/test/intrinsics/gen/atomicOr/d09248.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atomicOr/d09248.wgsl.expected.spvasm
@@ -1,24 +1,26 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 26
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol "tint_symbol"
                OpName %atomicOr_d09248 "atomicOr_d09248"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
 %_ptr_Workgroup_int = OpTypePointer Workgroup %int
       %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %7 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
@@ -26,6 +28,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %18 = OpConstantNull %int
+         %19 = OpTypeFunction %void %uint
    %uint_264 = OpConstant %uint 264
 %atomicOr_d09248 = OpFunction %void None %7
          %10 = OpLabel
@@ -34,10 +37,17 @@
                OpStore %res %11
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %7
-         %20 = OpLabel
+%compute_main_inner = OpFunction %void None %19
+%local_invocation_index = OpFunctionParameter %uint
+         %22 = OpLabel
                OpAtomicStore %arg_0 %uint_2 %uint_0 %18
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %25 = OpFunctionCall %void %atomicOr_d09248
+         %27 = OpFunctionCall %void %atomicOr_d09248
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %7
+         %29 = OpLabel
+         %31 = OpLoad %uint %local_invocation_index_1
+         %30 = OpFunctionCall %void %compute_main_inner %31
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atomicStore/726882.wgsl.expected.spvasm b/test/intrinsics/gen/atomicStore/726882.wgsl.expected.spvasm
index 5b2109e..59738ef 100644
--- a/test/intrinsics/gen/atomicStore/726882.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atomicStore/726882.wgsl.expected.spvasm
@@ -1,38 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 23
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol "tint_symbol"
                OpName %atomicStore_726882 "atomicStore_726882"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
        %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
 %_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
       %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %6 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
      %uint_0 = OpConstant %uint 0
      %uint_1 = OpConstant %uint 1
-         %19 = OpConstantNull %uint
+         %15 = OpTypeFunction %void %uint
+         %21 = OpConstantNull %uint
    %uint_264 = OpConstant %uint 264
 %atomicStore_726882 = OpFunction %void None %6
           %9 = OpLabel
                OpAtomicStore %arg_0 %uint_2 %uint_0 %uint_1
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %6
-         %16 = OpLabel
-               OpAtomicStore %arg_0 %uint_2 %uint_0 %19
+%compute_main_inner = OpFunction %void None %15
+%local_invocation_index = OpFunctionParameter %uint
+         %18 = OpLabel
+               OpAtomicStore %arg_0 %uint_2 %uint_0 %21
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %22 = OpFunctionCall %void %atomicStore_726882
+         %24 = OpFunctionCall %void %atomicStore_726882
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %6
+         %26 = OpLabel
+         %28 = OpLoad %uint %local_invocation_index_1
+         %27 = OpFunctionCall %void %compute_main_inner %28
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.spvasm b/test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.spvasm
index 332b503..a08c2e8 100644
--- a/test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.spvasm
@@ -1,39 +1,49 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 24
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol "tint_symbol"
                OpName %atomicStore_8bea94 "atomicStore_8bea94"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
 %_ptr_Workgroup_int = OpTypePointer Workgroup %int
       %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %7 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
      %uint_0 = OpConstant %uint 0
       %int_1 = OpConstant %int 1
-         %20 = OpConstantNull %int
+         %16 = OpTypeFunction %void %uint
+         %22 = OpConstantNull %int
    %uint_264 = OpConstant %uint 264
 %atomicStore_8bea94 = OpFunction %void None %7
          %10 = OpLabel
                OpAtomicStore %arg_0 %uint_2 %uint_0 %int_1
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %7
-         %17 = OpLabel
-               OpAtomicStore %arg_0 %uint_2 %uint_0 %20
+%compute_main_inner = OpFunction %void None %16
+%local_invocation_index = OpFunctionParameter %uint
+         %19 = OpLabel
+               OpAtomicStore %arg_0 %uint_2 %uint_0 %22
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %23 = OpFunctionCall %void %atomicStore_8bea94
+         %25 = OpFunctionCall %void %atomicStore_8bea94
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %7
+         %27 = OpLabel
+         %29 = OpLoad %uint %local_invocation_index_1
+         %28 = OpFunctionCall %void %compute_main_inner %29
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.spvasm b/test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.spvasm
index 3522e50..4e729e2 100644
--- a/test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.spvasm
@@ -1,24 +1,26 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 26
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol "tint_symbol"
                OpName %atomicXor_75dc95 "atomicXor_75dc95"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
 %_ptr_Workgroup_int = OpTypePointer Workgroup %int
       %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %7 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
@@ -26,6 +28,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %18 = OpConstantNull %int
+         %19 = OpTypeFunction %void %uint
    %uint_264 = OpConstant %uint 264
 %atomicXor_75dc95 = OpFunction %void None %7
          %10 = OpLabel
@@ -34,10 +37,17 @@
                OpStore %res %11
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %7
-         %20 = OpLabel
+%compute_main_inner = OpFunction %void None %19
+%local_invocation_index = OpFunctionParameter %uint
+         %22 = OpLabel
                OpAtomicStore %arg_0 %uint_2 %uint_0 %18
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %25 = OpFunctionCall %void %atomicXor_75dc95
+         %27 = OpFunctionCall %void %atomicXor_75dc95
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %7
+         %29 = OpLabel
+         %31 = OpLoad %uint %local_invocation_index_1
+         %30 = OpFunctionCall %void %compute_main_inner %31
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.spvasm b/test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.spvasm
index 007f02b..a683557 100644
--- a/test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.spvasm
@@ -1,23 +1,25 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 25
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_0 "arg_0"
-               OpName %tint_symbol "tint_symbol"
                OpName %atomicXor_c8e6be "atomicXor_c8e6be"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
        %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
 %_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
       %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %6 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
@@ -25,6 +27,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %17 = OpConstantNull %uint
+         %18 = OpTypeFunction %void %uint
    %uint_264 = OpConstant %uint 264
 %atomicXor_c8e6be = OpFunction %void None %6
           %9 = OpLabel
@@ -33,10 +36,17 @@
                OpStore %res %10
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %6
-         %19 = OpLabel
+%compute_main_inner = OpFunction %void None %18
+%local_invocation_index = OpFunctionParameter %uint
+         %21 = OpLabel
                OpAtomicStore %arg_0 %uint_2 %uint_0 %17
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %24 = OpFunctionCall %void %atomicXor_c8e6be
+         %26 = OpFunctionCall %void %atomicXor_c8e6be
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %6
+         %28 = OpLabel
+         %30 = OpLoad %uint %local_invocation_index_1
+         %29 = OpFunctionCall %void %compute_main_inner %30
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/ceil/34064b.wgsl.expected.spvasm b/test/intrinsics/gen/ceil/34064b.wgsl.expected.spvasm
index ddfaf87..792920f 100644
--- a/test/intrinsics/gen/ceil/34064b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/ceil/34064b.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %ceil_34064b "ceil_34064b"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %ceil_34064b = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %ceil_34064b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %ceil_34064b
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %ceil_34064b
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %ceil_34064b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %ceil_34064b
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %ceil_34064b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/ceil/678655.wgsl.expected.spvasm b/test/intrinsics/gen/ceil/678655.wgsl.expected.spvasm
index 81b81aa..bb45e0b 100644
--- a/test/intrinsics/gen/ceil/678655.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/ceil/678655.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %ceil_678655 "ceil_678655"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
 %ceil_678655 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Ceil %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %ceil_678655
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %ceil_678655
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %ceil_678655
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %ceil_678655
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %ceil_678655
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %ceil_678655
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/ceil/96f597.wgsl.expected.spvasm b/test/intrinsics/gen/ceil/96f597.wgsl.expected.spvasm
index cb88aba..0552e49 100644
--- a/test/intrinsics/gen/ceil/96f597.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/ceil/96f597.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %ceil_96f597 "ceil_96f597"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %ceil_96f597 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %ceil_96f597
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %ceil_96f597
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %ceil_96f597
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %ceil_96f597
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %ceil_96f597
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %ceil_96f597
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/ceil/b74c16.wgsl.expected.spvasm b/test/intrinsics/gen/ceil/b74c16.wgsl.expected.spvasm
index 8014539..74407d3 100644
--- a/test/intrinsics/gen/ceil/b74c16.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/ceil/b74c16.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %ceil_b74c16 "ceil_b74c16"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %ceil_b74c16 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Ceil %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Ceil %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %ceil_b74c16
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %ceil_b74c16
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %ceil_b74c16
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %ceil_b74c16
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %ceil_b74c16
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %ceil_b74c16
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/clamp/0acf8f.wgsl.expected.spvasm b/test/intrinsics/gen/clamp/0acf8f.wgsl.expected.spvasm
index 67d351d..45dd69b 100644
--- a/test/intrinsics/gen/clamp/0acf8f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/clamp/0acf8f.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %clamp_0acf8f "clamp_0acf8f"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %clamp_0acf8f = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %clamp_0acf8f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %clamp_0acf8f
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %clamp_0acf8f
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %clamp_0acf8f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %clamp_0acf8f
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %clamp_0acf8f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/clamp/1a32e3.wgsl.expected.spvasm b/test/intrinsics/gen/clamp/1a32e3.wgsl.expected.spvasm
index 975e522..cf5e3d9 100644
--- a/test/intrinsics/gen/clamp/1a32e3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/clamp/1a32e3.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %clamp_1a32e3 "clamp_1a32e3"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v4int = OpTypeVector %int 4
          %17 = OpConstantNull %v4int
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %clamp_1a32e3 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %clamp_1a32e3
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %clamp_1a32e3
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %clamp_1a32e3
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %clamp_1a32e3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %clamp_1a32e3
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %clamp_1a32e3
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/clamp/2bd567.wgsl.expected.spvasm b/test/intrinsics/gen/clamp/2bd567.wgsl.expected.spvasm
index 011022b..df43e84 100644
--- a/test/intrinsics/gen/clamp/2bd567.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/clamp/2bd567.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %clamp_2bd567 "clamp_2bd567"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
 %clamp_2bd567 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 NClamp %float_1 %float_1 %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %clamp_2bd567
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %clamp_2bd567
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %clamp_2bd567
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %clamp_2bd567
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %clamp_2bd567
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %clamp_2bd567
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/clamp/2bde41.wgsl.expected.spvasm b/test/intrinsics/gen/clamp/2bde41.wgsl.expected.spvasm
index a6e8276..ec4cbb1 100644
--- a/test/intrinsics/gen/clamp/2bde41.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/clamp/2bde41.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %clamp_2bde41 "clamp_2bde41"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %clamp_2bde41 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 NClamp %8 %8 %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 NClamp %5 %5 %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %clamp_2bde41
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %clamp_2bde41
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %clamp_2bde41
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %clamp_2bde41
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %clamp_2bde41
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %clamp_2bde41
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/clamp/548fc7.wgsl.expected.spvasm b/test/intrinsics/gen/clamp/548fc7.wgsl.expected.spvasm
index dbcf07d..de8d572 100644
--- a/test/intrinsics/gen/clamp/548fc7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/clamp/548fc7.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %clamp_548fc7 "clamp_548fc7"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
          %17 = OpConstantNull %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %clamp_548fc7 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %clamp_548fc7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %clamp_548fc7
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %clamp_548fc7
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %clamp_548fc7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %clamp_548fc7
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %clamp_548fc7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/clamp/5f0819.wgsl.expected.spvasm b/test/intrinsics/gen/clamp/5f0819.wgsl.expected.spvasm
index 06500aa..93b61e9 100644
--- a/test/intrinsics/gen/clamp/5f0819.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/clamp/5f0819.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %clamp_5f0819 "clamp_5f0819"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
          %17 = OpConstantNull %v3int
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %clamp_5f0819 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %clamp_5f0819
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %clamp_5f0819
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %clamp_5f0819
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %clamp_5f0819
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %clamp_5f0819
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %clamp_5f0819
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/clamp/6c1749.wgsl.expected.spvasm b/test/intrinsics/gen/clamp/6c1749.wgsl.expected.spvasm
index eac8825..01c1fd6 100644
--- a/test/intrinsics/gen/clamp/6c1749.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/clamp/6c1749.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %clamp_6c1749 "clamp_6c1749"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
          %17 = OpConstantNull %v2int
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %clamp_6c1749 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %clamp_6c1749
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %clamp_6c1749
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %clamp_6c1749
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %clamp_6c1749
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %clamp_6c1749
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %clamp_6c1749
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/clamp/7706d7.wgsl.expected.spvasm b/test/intrinsics/gen/clamp/7706d7.wgsl.expected.spvasm
index df66b69..8c388c4 100644
--- a/test/intrinsics/gen/clamp/7706d7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/clamp/7706d7.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %clamp_7706d7 "clamp_7706d7"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
          %17 = OpConstantNull %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %clamp_7706d7 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %clamp_7706d7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %clamp_7706d7
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %clamp_7706d7
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %clamp_7706d7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %clamp_7706d7
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %clamp_7706d7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/clamp/867397.wgsl.expected.spvasm b/test/intrinsics/gen/clamp/867397.wgsl.expected.spvasm
index d0a9730..0c0e7c3 100644
--- a/test/intrinsics/gen/clamp/867397.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/clamp/867397.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %clamp_867397 "clamp_867397"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %clamp_867397 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %clamp_867397
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %clamp_867397
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %clamp_867397
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %clamp_867397
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %clamp_867397
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %clamp_867397
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/clamp/a2de25.wgsl.expected.spvasm b/test/intrinsics/gen/clamp/a2de25.wgsl.expected.spvasm
index 5c38de7..3fc18ab 100644
--- a/test/intrinsics/gen/clamp/a2de25.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/clamp/a2de25.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %clamp_a2de25 "clamp_a2de25"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %19 = OpConstantNull %uint
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %clamp_a2de25 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %clamp_a2de25
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %clamp_a2de25
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %clamp_a2de25
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %clamp_a2de25
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %clamp_a2de25
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %clamp_a2de25
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/clamp/b07c65.wgsl.expected.spvasm b/test/intrinsics/gen/clamp/b07c65.wgsl.expected.spvasm
index ee90583..bdd8cb8 100644
--- a/test/intrinsics/gen/clamp/b07c65.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/clamp/b07c65.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %clamp_b07c65 "clamp_b07c65"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %19 = OpConstantNull %int
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %clamp_b07c65 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %clamp_b07c65
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %clamp_b07c65
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %clamp_b07c65
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %clamp_b07c65
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %clamp_b07c65
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %clamp_b07c65
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/clamp/bd43ce.wgsl.expected.spvasm b/test/intrinsics/gen/clamp/bd43ce.wgsl.expected.spvasm
index 97c3f81..9b84322 100644
--- a/test/intrinsics/gen/clamp/bd43ce.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/clamp/bd43ce.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %clamp_bd43ce "clamp_bd43ce"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v4uint = OpTypeVector %uint 4
          %17 = OpConstantNull %v4uint
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %clamp_bd43ce = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %clamp_bd43ce
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %clamp_bd43ce
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %clamp_bd43ce
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %clamp_bd43ce
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %clamp_bd43ce
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %clamp_bd43ce
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/cos/16dc15.wgsl.expected.spvasm b/test/intrinsics/gen/cos/16dc15.wgsl.expected.spvasm
index 82fe4b0..713e8ee 100644
--- a/test/intrinsics/gen/cos/16dc15.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/cos/16dc15.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %cos_16dc15 "cos_16dc15"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %cos_16dc15 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %cos_16dc15
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %cos_16dc15
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %cos_16dc15
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %cos_16dc15
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %cos_16dc15
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %cos_16dc15
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/cos/29d66d.wgsl.expected.spvasm b/test/intrinsics/gen/cos/29d66d.wgsl.expected.spvasm
index 1db9643..e6389c6 100644
--- a/test/intrinsics/gen/cos/29d66d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/cos/29d66d.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %cos_29d66d "cos_29d66d"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %cos_29d66d = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Cos %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Cos %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %cos_29d66d
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %cos_29d66d
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %cos_29d66d
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %cos_29d66d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %cos_29d66d
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %cos_29d66d
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/cos/c3b486.wgsl.expected.spvasm b/test/intrinsics/gen/cos/c3b486.wgsl.expected.spvasm
index 32f5010..9de36a8 100644
--- a/test/intrinsics/gen/cos/c3b486.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/cos/c3b486.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %cos_c3b486 "cos_c3b486"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %cos_c3b486 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %cos_c3b486
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %cos_c3b486
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %cos_c3b486
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %cos_c3b486
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %cos_c3b486
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %cos_c3b486
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/cos/c5c28e.wgsl.expected.spvasm b/test/intrinsics/gen/cos/c5c28e.wgsl.expected.spvasm
index 00a2e61..7964abf 100644
--- a/test/intrinsics/gen/cos/c5c28e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/cos/c5c28e.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %cos_c5c28e "cos_c5c28e"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
  %cos_c5c28e = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Cos %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %cos_c5c28e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %cos_c5c28e
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %cos_c5c28e
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %cos_c5c28e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %cos_c5c28e
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %cos_c5c28e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/cosh/377652.wgsl.expected.spvasm b/test/intrinsics/gen/cosh/377652.wgsl.expected.spvasm
index 3a3dcec..6e940e5 100644
--- a/test/intrinsics/gen/cosh/377652.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/cosh/377652.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %cosh_377652 "cosh_377652"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %cosh_377652 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %cosh_377652
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %cosh_377652
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %cosh_377652
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %cosh_377652
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %cosh_377652
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %cosh_377652
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/cosh/c13756.wgsl.expected.spvasm b/test/intrinsics/gen/cosh/c13756.wgsl.expected.spvasm
index e684a82..2a7229c 100644
--- a/test/intrinsics/gen/cosh/c13756.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/cosh/c13756.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %cosh_c13756 "cosh_c13756"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %cosh_c13756 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %cosh_c13756
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %cosh_c13756
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %cosh_c13756
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %cosh_c13756
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %cosh_c13756
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %cosh_c13756
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/cosh/da92dd.wgsl.expected.spvasm b/test/intrinsics/gen/cosh/da92dd.wgsl.expected.spvasm
index d5a08ab..23f91ec 100644
--- a/test/intrinsics/gen/cosh/da92dd.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/cosh/da92dd.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %cosh_da92dd "cosh_da92dd"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
 %cosh_da92dd = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Cosh %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %cosh_da92dd
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %cosh_da92dd
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %cosh_da92dd
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %cosh_da92dd
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %cosh_da92dd
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %cosh_da92dd
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/cosh/e0c1de.wgsl.expected.spvasm b/test/intrinsics/gen/cosh/e0c1de.wgsl.expected.spvasm
index 7c4a94e..b26a1ca 100644
--- a/test/intrinsics/gen/cosh/e0c1de.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/cosh/e0c1de.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %cosh_e0c1de "cosh_e0c1de"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %cosh_e0c1de = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Cosh %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Cosh %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %cosh_e0c1de
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %cosh_e0c1de
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %cosh_e0c1de
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %cosh_e0c1de
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %cosh_e0c1de
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %cosh_e0c1de
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.spvasm b/test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.spvasm
index f55307b..12785a8 100644
--- a/test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %countOneBits_0d0e46 "countOneBits_0d0e46"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v4uint = OpTypeVector %uint 4
          %16 = OpConstantNull %v4uint
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %countOneBits_0d0e46 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %countOneBits_0d0e46
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %countOneBits_0d0e46
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %countOneBits_0d0e46
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %countOneBits_0d0e46
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %countOneBits_0d0e46
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %countOneBits_0d0e46
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.spvasm b/test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.spvasm
index 753cbc8..77811f8 100644
--- a/test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %countOneBits_0f7980 "countOneBits_0f7980"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v4int = OpTypeVector %int 4
          %16 = OpConstantNull %v4int
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %countOneBits_0f7980 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %countOneBits_0f7980
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %countOneBits_0f7980
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %countOneBits_0f7980
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %countOneBits_0f7980
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %countOneBits_0f7980
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %countOneBits_0f7980
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.spvasm b/test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.spvasm
index 165393b..8ee1c7a 100644
--- a/test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %countOneBits_65d2ae "countOneBits_65d2ae"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
          %16 = OpConstantNull %v3int
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %countOneBits_65d2ae = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %countOneBits_65d2ae
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %countOneBits_65d2ae
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %countOneBits_65d2ae
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %countOneBits_65d2ae
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %countOneBits_65d2ae
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %countOneBits_65d2ae
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.spvasm b/test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.spvasm
index c11d998..258fc66 100644
--- a/test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %countOneBits_690cfc "countOneBits_690cfc"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
          %16 = OpConstantNull %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %countOneBits_690cfc = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %countOneBits_690cfc
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %countOneBits_690cfc
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %countOneBits_690cfc
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %countOneBits_690cfc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %countOneBits_690cfc
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %countOneBits_690cfc
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.spvasm b/test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.spvasm
index c5dd42e..2ac577e 100644
--- a/test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %countOneBits_94fd81 "countOneBits_94fd81"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
          %16 = OpConstantNull %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %countOneBits_94fd81 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %countOneBits_94fd81
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %countOneBits_94fd81
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %countOneBits_94fd81
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %countOneBits_94fd81
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %countOneBits_94fd81
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %countOneBits_94fd81
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.spvasm b/test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.spvasm
index 20b438f..7d098ff 100644
--- a/test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %countOneBits_ae44f9 "countOneBits_ae44f9"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %18 = OpConstantNull %uint
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %countOneBits_ae44f9 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %countOneBits_ae44f9
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %countOneBits_ae44f9
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %countOneBits_ae44f9
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %countOneBits_ae44f9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %countOneBits_ae44f9
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %countOneBits_ae44f9
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.spvasm b/test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.spvasm
index 8e7d788..88f5992 100644
--- a/test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %countOneBits_af90e2 "countOneBits_af90e2"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
          %16 = OpConstantNull %v2int
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %countOneBits_af90e2 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %countOneBits_af90e2
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %countOneBits_af90e2
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %countOneBits_af90e2
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %countOneBits_af90e2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %countOneBits_af90e2
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %countOneBits_af90e2
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.spvasm b/test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.spvasm
index 0030952..67c346a 100644
--- a/test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %countOneBits_fd88b2 "countOneBits_fd88b2"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %18 = OpConstantNull %int
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %countOneBits_fd88b2 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %countOneBits_fd88b2
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %countOneBits_fd88b2
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %countOneBits_fd88b2
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %countOneBits_fd88b2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %countOneBits_fd88b2
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %countOneBits_fd88b2
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/cross/041cb0.wgsl.expected.spvasm b/test/intrinsics/gen/cross/041cb0.wgsl.expected.spvasm
index 148a980..bad958c 100644
--- a/test/intrinsics/gen/cross/041cb0.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/cross/041cb0.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %cross_041cb0 "cross_041cb0"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %cross_041cb0 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %cross_041cb0
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %cross_041cb0
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %cross_041cb0
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %cross_041cb0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %cross_041cb0
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %cross_041cb0
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/determinant/2b62ba.wgsl.expected.spvasm b/test/intrinsics/gen/determinant/2b62ba.wgsl.expected.spvasm
index 1b4b47f..142bf18 100644
--- a/test/intrinsics/gen/determinant/2b62ba.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/determinant/2b62ba.wgsl.expected.spvasm
@@ -1,70 +1,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %determinant_2b62ba "determinant_2b62ba"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
 %mat3v3float = OpTypeMatrix %v3float 3
          %17 = OpConstantNull %mat3v3float
 %_ptr_Function_float = OpTypePointer Function %float
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %determinant_2b62ba = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Determinant %17
                OpStore %res %13
                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 %determinant_2b62ba
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %determinant_2b62ba
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %determinant_2b62ba
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %determinant_2b62ba
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %determinant_2b62ba
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %determinant_2b62ba
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/determinant/a0a87c.wgsl.expected.spvasm b/test/intrinsics/gen/determinant/a0a87c.wgsl.expected.spvasm
index 60df644..8662898 100644
--- a/test/intrinsics/gen/determinant/a0a87c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/determinant/a0a87c.wgsl.expected.spvasm
@@ -1,69 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %determinant_a0a87c "determinant_a0a87c"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %mat4v4float = OpTypeMatrix %v4float 4
          %16 = OpConstantNull %mat4v4float
 %_ptr_Function_float = OpTypePointer Function %float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %determinant_a0a87c = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Determinant %16
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %determinant_a0a87c
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %determinant_a0a87c
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %determinant_a0a87c
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %determinant_a0a87c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %determinant_a0a87c
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %determinant_a0a87c
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/determinant/e19305.wgsl.expected.spvasm b/test/intrinsics/gen/determinant/e19305.wgsl.expected.spvasm
index 2ce7c32..5efdade 100644
--- a/test/intrinsics/gen/determinant/e19305.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/determinant/e19305.wgsl.expected.spvasm
@@ -1,70 +1,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %determinant_e19305 "determinant_e19305"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
 %mat2v2float = OpTypeMatrix %v2float 2
          %17 = OpConstantNull %mat2v2float
 %_ptr_Function_float = OpTypePointer Function %float
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %determinant_e19305 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Determinant %17
                OpStore %res %13
                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 %determinant_e19305
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %determinant_e19305
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %determinant_e19305
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %determinant_e19305
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %determinant_e19305
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %determinant_e19305
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/distance/0657d4.wgsl.expected.spvasm b/test/intrinsics/gen/distance/0657d4.wgsl.expected.spvasm
index 7ed1ee6..433da6a 100644
--- a/test/intrinsics/gen/distance/0657d4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/distance/0657d4.wgsl.expected.spvasm
@@ -1,69 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %distance_0657d4 "distance_0657d4"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_float = OpTypePointer Function %float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %distance_0657d4 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Distance %16 %16
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %distance_0657d4
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %distance_0657d4
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %distance_0657d4
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %distance_0657d4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %distance_0657d4
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %distance_0657d4
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/distance/9646ea.wgsl.expected.spvasm b/test/intrinsics/gen/distance/9646ea.wgsl.expected.spvasm
index b8c7fa7..18840fe 100644
--- a/test/intrinsics/gen/distance/9646ea.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/distance/9646ea.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %distance_9646ea "distance_9646ea"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %distance_9646ea = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
-         %13 = OpExtInst %float %14 Distance %8 %8
+        %res = OpVariable %_ptr_Function_float Function %8
+         %13 = OpExtInst %float %14 Distance %5 %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %distance_9646ea
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %distance_9646ea
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %distance_9646ea
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %distance_9646ea
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %distance_9646ea
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %distance_9646ea
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/distance/aa4055.wgsl.expected.spvasm b/test/intrinsics/gen/distance/aa4055.wgsl.expected.spvasm
index 48e1a45..c5976c6 100644
--- a/test/intrinsics/gen/distance/aa4055.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/distance/aa4055.wgsl.expected.spvasm
@@ -1,69 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %distance_aa4055 "distance_aa4055"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_float = OpTypePointer Function %float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %distance_aa4055 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Distance %16 %16
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %distance_aa4055
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %distance_aa4055
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %distance_aa4055
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %distance_aa4055
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %distance_aa4055
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %distance_aa4055
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/distance/cfed73.wgsl.expected.spvasm b/test/intrinsics/gen/distance/cfed73.wgsl.expected.spvasm
index 8a87dee..a0ad9f2 100644
--- a/test/intrinsics/gen/distance/cfed73.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/distance/cfed73.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %distance_cfed73 "distance_cfed73"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
 %distance_cfed73 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Distance %float_1 %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %distance_cfed73
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %distance_cfed73
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %distance_cfed73
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %distance_cfed73
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %distance_cfed73
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %distance_cfed73
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/dot/0c577b.wgsl.expected.spvasm b/test/intrinsics/gen/dot/0c577b.wgsl.expected.spvasm
index a56518c..9723182 100644
--- a/test/intrinsics/gen/dot/0c577b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/dot/0c577b.wgsl.expected.spvasm
@@ -1,66 +1,64 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 30
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %dot_0c577b "dot_0c577b"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
-         %16 = OpTypeFunction %void %v4float
+         %16 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %dot_0c577b = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
-         %13 = OpDot %float %8 %8
+        %res = OpVariable %_ptr_Function_float Function %8
+         %13 = OpDot %float %5 %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %16
-%tint_symbol = OpFunctionParameter %v4float
-         %19 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %16
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %dot_0c577b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %21 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %23 = OpFunctionCall %void %dot_0c577b
-         %24 = OpFunctionCall %void %tint_symbol_2 %8
+         %22 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %22
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %dot_0c577b
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %dot_0c577b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %dot_0c577b
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %dot_0c577b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/dot/883f0e.wgsl.expected.spvasm b/test/intrinsics/gen/dot/883f0e.wgsl.expected.spvasm
index f6a6f4f..921e891 100644
--- a/test/intrinsics/gen/dot/883f0e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/dot/883f0e.wgsl.expected.spvasm
@@ -1,68 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %dot_883f0e "dot_883f0e"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %15 = OpConstantNull %v2float
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %dot_883f0e = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpDot %float %15 %15
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %dot_883f0e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %dot_883f0e
-         %26 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %dot_883f0e
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %dot_883f0e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %dot_883f0e
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %dot_883f0e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/dot/ba4246.wgsl.expected.spvasm b/test/intrinsics/gen/dot/ba4246.wgsl.expected.spvasm
index d522c0b..326501a 100644
--- a/test/intrinsics/gen/dot/ba4246.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/dot/ba4246.wgsl.expected.spvasm
@@ -1,68 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %dot_ba4246 "dot_ba4246"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %15 = OpConstantNull %v3float
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %dot_ba4246 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpDot %float %15 %15
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %dot_ba4246
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %dot_ba4246
-         %26 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %dot_ba4246
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %dot_ba4246
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %dot_ba4246
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %dot_ba4246
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/exp/0f70eb.wgsl.expected.spvasm b/test/intrinsics/gen/exp/0f70eb.wgsl.expected.spvasm
index e82f059..0c24991 100644
--- a/test/intrinsics/gen/exp/0f70eb.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/exp/0f70eb.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %exp_0f70eb "exp_0f70eb"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %exp_0f70eb = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Exp %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Exp %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %exp_0f70eb
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %exp_0f70eb
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %exp_0f70eb
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %exp_0f70eb
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %exp_0f70eb
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %exp_0f70eb
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/exp/1951e7.wgsl.expected.spvasm b/test/intrinsics/gen/exp/1951e7.wgsl.expected.spvasm
index 5439298..013e9bb 100644
--- a/test/intrinsics/gen/exp/1951e7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/exp/1951e7.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %exp_1951e7 "exp_1951e7"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %exp_1951e7 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %exp_1951e7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %exp_1951e7
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %exp_1951e7
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %exp_1951e7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %exp_1951e7
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %exp_1951e7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/exp/771fd2.wgsl.expected.spvasm b/test/intrinsics/gen/exp/771fd2.wgsl.expected.spvasm
index 5100cd0..1d731bd 100644
--- a/test/intrinsics/gen/exp/771fd2.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/exp/771fd2.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %exp_771fd2 "exp_771fd2"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
  %exp_771fd2 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Exp %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %exp_771fd2
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %exp_771fd2
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %exp_771fd2
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %exp_771fd2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %exp_771fd2
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %exp_771fd2
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/exp/d98450.wgsl.expected.spvasm b/test/intrinsics/gen/exp/d98450.wgsl.expected.spvasm
index 448017c..27dc1ac 100644
--- a/test/intrinsics/gen/exp/d98450.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/exp/d98450.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %exp_d98450 "exp_d98450"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %exp_d98450 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %exp_d98450
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %exp_d98450
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %exp_d98450
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %exp_d98450
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %exp_d98450
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %exp_d98450
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/exp2/1f8680.wgsl.expected.spvasm b/test/intrinsics/gen/exp2/1f8680.wgsl.expected.spvasm
index 6e672de..9d62f48 100644
--- a/test/intrinsics/gen/exp2/1f8680.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/exp2/1f8680.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %exp2_1f8680 "exp2_1f8680"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %exp2_1f8680 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %exp2_1f8680
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %exp2_1f8680
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %exp2_1f8680
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %exp2_1f8680
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %exp2_1f8680
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %exp2_1f8680
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.spvasm b/test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.spvasm
index 1193c23..f3ac039 100644
--- a/test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %exp2_a9d0a7 "exp2_a9d0a7"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %exp2_a9d0a7 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Exp2 %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Exp2 %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %exp2_a9d0a7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %exp2_a9d0a7
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %exp2_a9d0a7
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %exp2_a9d0a7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %exp2_a9d0a7
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %exp2_a9d0a7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/exp2/d6777c.wgsl.expected.spvasm b/test/intrinsics/gen/exp2/d6777c.wgsl.expected.spvasm
index 571bff0..e852866 100644
--- a/test/intrinsics/gen/exp2/d6777c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/exp2/d6777c.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %exp2_d6777c "exp2_d6777c"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %exp2_d6777c = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %exp2_d6777c
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %exp2_d6777c
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %exp2_d6777c
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %exp2_d6777c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %exp2_d6777c
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %exp2_d6777c
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/exp2/dea523.wgsl.expected.spvasm b/test/intrinsics/gen/exp2/dea523.wgsl.expected.spvasm
index dbeb361..ce3d3a9 100644
--- a/test/intrinsics/gen/exp2/dea523.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/exp2/dea523.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %exp2_dea523 "exp2_dea523"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
 %exp2_dea523 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Exp2 %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %exp2_dea523
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %exp2_dea523
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %exp2_dea523
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %exp2_dea523
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %exp2_dea523
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %exp2_dea523
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.spvasm b/test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.spvasm
index 6fc0f18..e9db2a5 100644
--- a/test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %faceForward_5afbd5 "faceForward_5afbd5"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %faceForward_5afbd5 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %faceForward_5afbd5
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %faceForward_5afbd5
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %faceForward_5afbd5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %faceForward_5afbd5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %faceForward_5afbd5
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %faceForward_5afbd5
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/faceForward/b316e5.wgsl.expected.spvasm b/test/intrinsics/gen/faceForward/b316e5.wgsl.expected.spvasm
index 07f0358..9481d78 100644
--- a/test/intrinsics/gen/faceForward/b316e5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/faceForward/b316e5.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %faceForward_b316e5 "faceForward_b316e5"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %faceForward_b316e5 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 FaceForward %8 %8 %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 FaceForward %5 %5 %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %faceForward_b316e5
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %faceForward_b316e5
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %faceForward_b316e5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %faceForward_b316e5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %faceForward_b316e5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %faceForward_b316e5
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/faceForward/e6908b.wgsl.expected.spvasm b/test/intrinsics/gen/faceForward/e6908b.wgsl.expected.spvasm
index 8e98dee..6d23993 100644
--- a/test/intrinsics/gen/faceForward/e6908b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/faceForward/e6908b.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %faceForward_e6908b "faceForward_e6908b"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %faceForward_e6908b = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %faceForward_e6908b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %faceForward_e6908b
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %faceForward_e6908b
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %faceForward_e6908b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %faceForward_e6908b
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %faceForward_e6908b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/floor/3bccc4.wgsl.expected.spvasm b/test/intrinsics/gen/floor/3bccc4.wgsl.expected.spvasm
index 634a08a..acc6532 100644
--- a/test/intrinsics/gen/floor/3bccc4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/floor/3bccc4.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %floor_3bccc4 "floor_3bccc4"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %floor_3bccc4 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Floor %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Floor %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %floor_3bccc4
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %floor_3bccc4
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %floor_3bccc4
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %floor_3bccc4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %floor_3bccc4
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %floor_3bccc4
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/floor/5fc9ac.wgsl.expected.spvasm b/test/intrinsics/gen/floor/5fc9ac.wgsl.expected.spvasm
index 9d25150..49b872c 100644
--- a/test/intrinsics/gen/floor/5fc9ac.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/floor/5fc9ac.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %floor_5fc9ac "floor_5fc9ac"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %floor_5fc9ac = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %floor_5fc9ac
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %floor_5fc9ac
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %floor_5fc9ac
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %floor_5fc9ac
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %floor_5fc9ac
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %floor_5fc9ac
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/floor/60d7ea.wgsl.expected.spvasm b/test/intrinsics/gen/floor/60d7ea.wgsl.expected.spvasm
index 77ecc59..c0fa003 100644
--- a/test/intrinsics/gen/floor/60d7ea.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/floor/60d7ea.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %floor_60d7ea "floor_60d7ea"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %floor_60d7ea = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %floor_60d7ea
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %floor_60d7ea
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %floor_60d7ea
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %floor_60d7ea
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %floor_60d7ea
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %floor_60d7ea
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/floor/66f154.wgsl.expected.spvasm b/test/intrinsics/gen/floor/66f154.wgsl.expected.spvasm
index 76ab1fd..ca6e9fa 100644
--- a/test/intrinsics/gen/floor/66f154.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/floor/66f154.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %floor_66f154 "floor_66f154"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
 %floor_66f154 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Floor %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %floor_66f154
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %floor_66f154
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %floor_66f154
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %floor_66f154
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %floor_66f154
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %floor_66f154
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/fma/26a7a9.wgsl.expected.spvasm b/test/intrinsics/gen/fma/26a7a9.wgsl.expected.spvasm
index 888ebb3..5df98bd 100644
--- a/test/intrinsics/gen/fma/26a7a9.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/fma/26a7a9.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %fma_26a7a9 "fma_26a7a9"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %fma_26a7a9 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %fma_26a7a9
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %fma_26a7a9
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %fma_26a7a9
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %fma_26a7a9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %fma_26a7a9
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %fma_26a7a9
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/fma/6a3283.wgsl.expected.spvasm b/test/intrinsics/gen/fma/6a3283.wgsl.expected.spvasm
index 5fd44fa..cf26685 100644
--- a/test/intrinsics/gen/fma/6a3283.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/fma/6a3283.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %fma_6a3283 "fma_6a3283"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %fma_6a3283 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Fma %8 %8 %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Fma %5 %5 %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %fma_6a3283
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %fma_6a3283
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %fma_6a3283
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %fma_6a3283
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %fma_6a3283
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %fma_6a3283
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/fma/c10ba3.wgsl.expected.spvasm b/test/intrinsics/gen/fma/c10ba3.wgsl.expected.spvasm
index 96b804d..bc9816f 100644
--- a/test/intrinsics/gen/fma/c10ba3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/fma/c10ba3.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %fma_c10ba3 "fma_c10ba3"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
  %fma_c10ba3 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Fma %float_1 %float_1 %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %fma_c10ba3
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %fma_c10ba3
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %fma_c10ba3
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %fma_c10ba3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %fma_c10ba3
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %fma_c10ba3
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/fma/e17c5c.wgsl.expected.spvasm b/test/intrinsics/gen/fma/e17c5c.wgsl.expected.spvasm
index 88e17ec..de2025e 100644
--- a/test/intrinsics/gen/fma/e17c5c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/fma/e17c5c.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %fma_e17c5c "fma_e17c5c"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %fma_e17c5c = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %fma_e17c5c
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %fma_e17c5c
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %fma_e17c5c
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %fma_e17c5c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %fma_e17c5c
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %fma_e17c5c
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/fract/8bc1e9.wgsl.expected.spvasm b/test/intrinsics/gen/fract/8bc1e9.wgsl.expected.spvasm
index 49901a7..e6d0418 100644
--- a/test/intrinsics/gen/fract/8bc1e9.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/fract/8bc1e9.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %fract_8bc1e9 "fract_8bc1e9"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %fract_8bc1e9 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Fract %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Fract %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %fract_8bc1e9
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %fract_8bc1e9
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %fract_8bc1e9
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %fract_8bc1e9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %fract_8bc1e9
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %fract_8bc1e9
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/fract/943cb1.wgsl.expected.spvasm b/test/intrinsics/gen/fract/943cb1.wgsl.expected.spvasm
index 105eb76..afe8e98 100644
--- a/test/intrinsics/gen/fract/943cb1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/fract/943cb1.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %fract_943cb1 "fract_943cb1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %fract_943cb1 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %fract_943cb1
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %fract_943cb1
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %fract_943cb1
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %fract_943cb1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %fract_943cb1
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %fract_943cb1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/fract/a49758.wgsl.expected.spvasm b/test/intrinsics/gen/fract/a49758.wgsl.expected.spvasm
index 48289e6..284b664 100644
--- a/test/intrinsics/gen/fract/a49758.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/fract/a49758.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %fract_a49758 "fract_a49758"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %fract_a49758 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %fract_a49758
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %fract_a49758
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %fract_a49758
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %fract_a49758
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %fract_a49758
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %fract_a49758
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/fract/fa5c71.wgsl.expected.spvasm b/test/intrinsics/gen/fract/fa5c71.wgsl.expected.spvasm
index 09d3f99..6e73bc5 100644
--- a/test/intrinsics/gen/fract/fa5c71.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/fract/fa5c71.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %fract_fa5c71 "fract_fa5c71"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
 %fract_fa5c71 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Fract %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %fract_fa5c71
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %fract_fa5c71
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %fract_fa5c71
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %fract_fa5c71
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %fract_fa5c71
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %fract_fa5c71
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/frexp/013caa.wgsl.expected.spvasm b/test/intrinsics/gen/frexp/013caa.wgsl.expected.spvasm
index d1e2268..9c3235d 100644
--- a/test/intrinsics/gen/frexp/013caa.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/frexp/013caa.wgsl.expected.spvasm
@@ -5,36 +5,35 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
          %19 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %frexp_013caa "frexp_013caa"
                OpName %arg_1 "arg_1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -42,36 +41,35 @@
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %17 = OpConstantNull %v4int
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %frexp_013caa = OpFunction %void None %9
          %12 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_v4int Function %17
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %18 = OpExtInst %v4float %19 Frexp %8 %arg_1
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %18 = OpExtInst %v4float %19 Frexp %5 %arg_1
                OpStore %res %18
                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 %frexp_013caa
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %frexp_013caa
-         %31 = OpFunctionCall %void %tint_symbol_2 %8
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %frexp_013caa
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %frexp_013caa
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %frexp_013caa
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %frexp_013caa
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/frexp/0da285.wgsl.expected.spvasm b/test/intrinsics/gen/frexp/0da285.wgsl.expected.spvasm
index ac9be08..167f6f0 100644
--- a/test/intrinsics/gen/frexp/0da285.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/frexp/0da285.wgsl.expected.spvasm
@@ -5,32 +5,35 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 26
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
          %13 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_1 "arg_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %frexp_0da285 "frexp_0da285"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
 %_ptr_Workgroup_int = OpTypePointer Workgroup %int
       %arg_1 = OpVariable %_ptr_Workgroup_int Workgroup
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %7 = OpTypeFunction %void
       %float = OpTypeFloat 32
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
          %18 = OpConstantNull %float
-         %21 = OpConstantNull %int
+         %19 = OpTypeFunction %void %uint
+         %23 = OpConstantNull %int
      %uint_2 = OpConstant %uint 2
    %uint_264 = OpConstant %uint 264
 %frexp_0da285 = OpFunction %void None %7
@@ -40,10 +43,17 @@
                OpStore %res %11
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %7
-         %20 = OpLabel
-               OpStore %arg_1 %21
+%compute_main_inner = OpFunction %void None %19
+%local_invocation_index = OpFunctionParameter %uint
+         %22 = OpLabel
+               OpStore %arg_1 %23
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %25 = OpFunctionCall %void %frexp_0da285
+         %27 = OpFunctionCall %void %frexp_0da285
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %7
+         %29 = OpLabel
+         %31 = OpLoad %uint %local_invocation_index_1
+         %30 = OpFunctionCall %void %compute_main_inner %31
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/frexp/12f1da.wgsl.expected.spvasm b/test/intrinsics/gen/frexp/12f1da.wgsl.expected.spvasm
index 1887cc1..031a085 100644
--- a/test/intrinsics/gen/frexp/12f1da.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/frexp/12f1da.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %frexp_12f1da "frexp_12f1da"
                OpName %_frexp_result "_frexp_result"
                OpMemberName %_frexp_result 0 "sig"
                OpMemberName %_frexp_result 1 "exp"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %_frexp_result 0 Offset 0
                OpMemberDecorate %_frexp_result 1 Offset 4
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -42,7 +41,7 @@
     %float_1 = OpConstant %float 1
 %_ptr_Function__frexp_result = OpTypePointer Function %_frexp_result
          %20 = OpConstantNull %_frexp_result
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
 %frexp_12f1da = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function__frexp_result Function %20
@@ -50,26 +49,25 @@
                OpStore %res %13
                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 %frexp_12f1da
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %frexp_12f1da
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %frexp_12f1da
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %frexp_12f1da
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %frexp_12f1da
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %frexp_12f1da
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/frexp/15edf3.wgsl.expected.spvasm b/test/intrinsics/gen/frexp/15edf3.wgsl.expected.spvasm
index 702a52c..b0a95f7 100644
--- a/test/intrinsics/gen/frexp/15edf3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/frexp/15edf3.wgsl.expected.spvasm
@@ -5,36 +5,35 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
          %20 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %frexp_15edf3 "frexp_15edf3"
                OpName %arg_1 "arg_1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -44,7 +43,7 @@
     %v2float = OpTypeVector %float 2
          %21 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %frexp_15edf3 = OpFunction %void None %9
          %12 = OpLabel
@@ -54,26 +53,25 @@
                OpStore %res %18
                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 %frexp_15edf3
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %frexp_15edf3
-         %33 = OpFunctionCall %void %tint_symbol_2 %8
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %frexp_15edf3
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %frexp_15edf3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %frexp_15edf3
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %frexp_15edf3
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/frexp/19ab15.wgsl.expected.spvasm b/test/intrinsics/gen/frexp/19ab15.wgsl.expected.spvasm
index ed54aad..1cc26d0 100644
--- a/test/intrinsics/gen/frexp/19ab15.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/frexp/19ab15.wgsl.expected.spvasm
@@ -5,36 +5,35 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
          %19 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %frexp_19ab15 "frexp_19ab15"
                OpName %arg_1 "arg_1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -42,36 +41,35 @@
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %17 = OpConstantNull %v4int
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %frexp_19ab15 = OpFunction %void None %9
          %12 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_v4int Function %17
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %18 = OpExtInst %v4float %19 Frexp %8 %arg_1
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %18 = OpExtInst %v4float %19 Frexp %5 %arg_1
                OpStore %res %18
                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 %frexp_19ab15
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %frexp_19ab15
-         %31 = OpFunctionCall %void %tint_symbol_2 %8
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %frexp_19ab15
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %frexp_19ab15
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %frexp_19ab15
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %frexp_19ab15
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/frexp/2052e9.wgsl.expected.spvasm b/test/intrinsics/gen/frexp/2052e9.wgsl.expected.spvasm
index 6646081..5dff382 100644
--- a/test/intrinsics/gen/frexp/2052e9.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/frexp/2052e9.wgsl.expected.spvasm
@@ -5,36 +5,35 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
          %19 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %frexp_2052e9 "frexp_2052e9"
                OpName %arg_1 "arg_1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -42,36 +41,35 @@
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %17 = OpConstantNull %v4int
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %frexp_2052e9 = OpFunction %void None %9
          %12 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_v4int Function %17
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %18 = OpExtInst %v4float %19 Frexp %8 %arg_1
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %18 = OpExtInst %v4float %19 Frexp %5 %arg_1
                OpStore %res %18
                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 %frexp_2052e9
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %frexp_2052e9
-         %31 = OpFunctionCall %void %tint_symbol_2 %8
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %frexp_2052e9
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %frexp_2052e9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %frexp_2052e9
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %frexp_2052e9
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/frexp/40fc9b.wgsl.expected.spvasm b/test/intrinsics/gen/frexp/40fc9b.wgsl.expected.spvasm
index 2bbf0cb..6a51558 100644
--- a/test/intrinsics/gen/frexp/40fc9b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/frexp/40fc9b.wgsl.expected.spvasm
@@ -5,33 +5,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 27
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_1 "arg_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %frexp_40fc9b "frexp_40fc9b"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
 %_ptr_Workgroup_v3int = OpTypePointer Workgroup %v3int
       %arg_1 = OpVariable %_ptr_Workgroup_v3int Workgroup
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
       %float = OpTypeFloat 32
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %22 = OpConstantNull %v3int
+         %20 = OpTypeFunction %void %uint
+         %24 = OpConstantNull %v3int
      %uint_2 = OpConstant %uint 2
    %uint_264 = OpConstant %uint 264
 %frexp_40fc9b = OpFunction %void None %8
@@ -41,10 +44,17 @@
                OpStore %res %12
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %8
-         %21 = OpLabel
-               OpStore %arg_1 %22
+%compute_main_inner = OpFunction %void None %20
+%local_invocation_index = OpFunctionParameter %uint
+         %23 = OpLabel
+               OpStore %arg_1 %24
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %26 = OpFunctionCall %void %frexp_40fc9b
+         %28 = OpFunctionCall %void %frexp_40fc9b
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %8
+         %30 = OpLabel
+         %32 = OpLoad %uint %local_invocation_index_1
+         %31 = OpFunctionCall %void %compute_main_inner %32
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/frexp/41e931.wgsl.expected.spvasm b/test/intrinsics/gen/frexp/41e931.wgsl.expected.spvasm
index b9cce46..5445498 100644
--- a/test/intrinsics/gen/frexp/41e931.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/frexp/41e931.wgsl.expected.spvasm
@@ -5,36 +5,35 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
          %18 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %frexp_41e931 "frexp_41e931"
                OpName %arg_1 "arg_1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -42,35 +41,34 @@
          %16 = OpConstantNull %int
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
 %frexp_41e931 = OpFunction %void None %9
          %12 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_int Function %16
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %17 = OpExtInst %float %18 Frexp %float_1 %arg_1
                OpStore %res %17
                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 %frexp_41e931
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %frexp_41e931
-         %30 = OpFunctionCall %void %tint_symbol_2 %8
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %frexp_41e931
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %frexp_41e931
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %frexp_41e931
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %frexp_41e931
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/frexp/481e59.wgsl.expected.spvasm b/test/intrinsics/gen/frexp/481e59.wgsl.expected.spvasm
index 703c948..82a4aaa 100644
--- a/test/intrinsics/gen/frexp/481e59.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/frexp/481e59.wgsl.expected.spvasm
@@ -5,36 +5,35 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
          %18 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %frexp_481e59 "frexp_481e59"
                OpName %arg_1 "arg_1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -42,35 +41,34 @@
          %16 = OpConstantNull %int
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
 %frexp_481e59 = OpFunction %void None %9
          %12 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_int Function %16
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %17 = OpExtInst %float %18 Frexp %float_1 %arg_1
                OpStore %res %17
                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 %frexp_481e59
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %frexp_481e59
-         %30 = OpFunctionCall %void %tint_symbol_2 %8
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %frexp_481e59
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %frexp_481e59
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %frexp_481e59
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %frexp_481e59
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/frexp/5a141e.wgsl.expected.spvasm b/test/intrinsics/gen/frexp/5a141e.wgsl.expected.spvasm
index 46ccae0..042b1b9 100644
--- a/test/intrinsics/gen/frexp/5a141e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/frexp/5a141e.wgsl.expected.spvasm
@@ -5,36 +5,35 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
          %20 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %frexp_5a141e "frexp_5a141e"
                OpName %arg_1 "arg_1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -44,7 +43,7 @@
     %v3float = OpTypeVector %float 3
          %21 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %frexp_5a141e = OpFunction %void None %9
          %12 = OpLabel
@@ -54,26 +53,25 @@
                OpStore %res %18
                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 %frexp_5a141e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %frexp_5a141e
-         %33 = OpFunctionCall %void %tint_symbol_2 %8
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %frexp_5a141e
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %frexp_5a141e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %frexp_5a141e
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %frexp_5a141e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/frexp/6d0058.wgsl.expected.spvasm b/test/intrinsics/gen/frexp/6d0058.wgsl.expected.spvasm
index cbeae7b..7b9ca4e 100644
--- a/test/intrinsics/gen/frexp/6d0058.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/frexp/6d0058.wgsl.expected.spvasm
@@ -5,36 +5,35 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
          %20 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %frexp_6d0058 "frexp_6d0058"
                OpName %arg_1 "arg_1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -44,7 +43,7 @@
     %v3float = OpTypeVector %float 3
          %21 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %frexp_6d0058 = OpFunction %void None %9
          %12 = OpLabel
@@ -54,26 +53,25 @@
                OpStore %res %18
                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 %frexp_6d0058
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %frexp_6d0058
-         %33 = OpFunctionCall %void %tint_symbol_2 %8
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %frexp_6d0058
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %frexp_6d0058
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %frexp_6d0058
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %frexp_6d0058
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/frexp/6efa09.wgsl.expected.spvasm b/test/intrinsics/gen/frexp/6efa09.wgsl.expected.spvasm
index 869f633..de63a5e 100644
--- a/test/intrinsics/gen/frexp/6efa09.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/frexp/6efa09.wgsl.expected.spvasm
@@ -5,47 +5,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
          %20 = OpExtInstImport "GLSL.std.450"
                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_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %frexp_6efa09 "frexp_6efa09"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
 %_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
 %_ptr_Private_v3int = OpTypePointer Private %v3int
-          %9 = OpConstantNull %v3int
-      %arg_1 = OpVariable %_ptr_Private_v3int Private %9
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-         %13 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %13
+         %13 = OpConstantNull %v3int
+      %arg_1 = OpVariable %_ptr_Private_v3int Private %13
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %21 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %frexp_6efa09 = OpFunction %void None %14
          %17 = OpLabel
@@ -54,26 +53,25 @@
                OpStore %res %18
                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 %frexp_6efa09
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %14
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %frexp_6efa09
-         %33 = OpFunctionCall %void %tint_symbol_2 %13
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %14
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %frexp_6efa09
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %frexp_6efa09
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %14
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %frexp_6efa09
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %frexp_6efa09
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/frexp/a0eb3b.wgsl.expected.spvasm b/test/intrinsics/gen/frexp/a0eb3b.wgsl.expected.spvasm
index 3049fc1..d617a78 100644
--- a/test/intrinsics/gen/frexp/a0eb3b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/frexp/a0eb3b.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
          %18 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %frexp_a0eb3b "frexp_a0eb3b"
                OpName %_frexp_result_vec3 "_frexp_result_vec3"
                OpMemberName %_frexp_result_vec3 0 "sig"
                OpMemberName %_frexp_result_vec3 1 "exp"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %_frexp_result_vec3 0 Offset 0
                OpMemberDecorate %_frexp_result_vec3 1 Offset 16
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -44,7 +43,7 @@
          %19 = OpConstantNull %v3float
 %_ptr_Function__frexp_result_vec3 = OpTypePointer Function %_frexp_result_vec3
          %22 = OpConstantNull %_frexp_result_vec3
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %frexp_a0eb3b = OpFunction %void None %9
          %12 = OpLabel
@@ -53,26 +52,25 @@
                OpStore %res %13
                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 %frexp_a0eb3b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %frexp_a0eb3b
-         %31 = OpFunctionCall %void %tint_symbol_2 %8
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %frexp_a0eb3b
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %frexp_a0eb3b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %frexp_a0eb3b
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %frexp_a0eb3b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/frexp/a2a617.wgsl.expected.spvasm b/test/intrinsics/gen/frexp/a2a617.wgsl.expected.spvasm
index 955c165..20c998b 100644
--- a/test/intrinsics/gen/frexp/a2a617.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/frexp/a2a617.wgsl.expected.spvasm
@@ -5,72 +5,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
          %18 = OpExtInstImport "GLSL.std.450"
                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_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %frexp_a2a617 "frexp_a2a617"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %8 = OpConstantNull %int
-      %arg_1 = OpVariable %_ptr_Private_int Private %8
     %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
+%_ptr_Private_int = OpTypePointer Private %int
+         %12 = OpConstantNull %int
+      %arg_1 = OpVariable %_ptr_Private_int Private %12
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
 %frexp_a2a617 = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %17 = OpExtInst %float %18 Frexp %float_1 %arg_1
                OpStore %res %17
                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 %frexp_a2a617
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %frexp_a2a617
-         %30 = 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
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %frexp_a2a617
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %frexp_a2a617
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %frexp_a2a617
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %frexp_a2a617
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/frexp/a3f940.wgsl.expected.spvasm b/test/intrinsics/gen/frexp/a3f940.wgsl.expected.spvasm
index bdad1aa..7e33735 100644
--- a/test/intrinsics/gen/frexp/a3f940.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/frexp/a3f940.wgsl.expected.spvasm
@@ -5,33 +5,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 27
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_1 "arg_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %frexp_a3f940 "frexp_a3f940"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
 %_ptr_Workgroup_v2int = OpTypePointer Workgroup %v2int
       %arg_1 = OpVariable %_ptr_Workgroup_v2int Workgroup
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
       %float = OpTypeFloat 32
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %22 = OpConstantNull %v2int
+         %20 = OpTypeFunction %void %uint
+         %24 = OpConstantNull %v2int
      %uint_2 = OpConstant %uint 2
    %uint_264 = OpConstant %uint 264
 %frexp_a3f940 = OpFunction %void None %8
@@ -41,10 +44,17 @@
                OpStore %res %12
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %8
-         %21 = OpLabel
-               OpStore %arg_1 %22
+%compute_main_inner = OpFunction %void None %20
+%local_invocation_index = OpFunctionParameter %uint
+         %23 = OpLabel
+               OpStore %arg_1 %24
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %26 = OpFunctionCall %void %frexp_a3f940
+         %28 = OpFunctionCall %void %frexp_a3f940
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %8
+         %30 = OpLabel
+         %32 = OpLoad %uint %local_invocation_index_1
+         %31 = OpFunctionCall %void %compute_main_inner %32
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/frexp/a951b5.wgsl.expected.spvasm b/test/intrinsics/gen/frexp/a951b5.wgsl.expected.spvasm
index 49ad292..fc55f6a 100644
--- a/test/intrinsics/gen/frexp/a951b5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/frexp/a951b5.wgsl.expected.spvasm
@@ -5,36 +5,35 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
          %20 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %frexp_a951b5 "frexp_a951b5"
                OpName %arg_1 "arg_1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -44,7 +43,7 @@
     %v2float = OpTypeVector %float 2
          %21 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %frexp_a951b5 = OpFunction %void None %9
          %12 = OpLabel
@@ -54,26 +53,25 @@
                OpStore %res %18
                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 %frexp_a951b5
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %frexp_a951b5
-         %33 = OpFunctionCall %void %tint_symbol_2 %8
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %frexp_a951b5
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %frexp_a951b5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %frexp_a951b5
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %frexp_a951b5
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/frexp/b45525.wgsl.expected.spvasm b/test/intrinsics/gen/frexp/b45525.wgsl.expected.spvasm
index f3c321a..a4cf67d 100644
--- a/test/intrinsics/gen/frexp/b45525.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/frexp/b45525.wgsl.expected.spvasm
@@ -5,73 +5,71 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
          %19 = OpExtInstImport "GLSL.std.450"
                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_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %frexp_b45525 "frexp_b45525"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
 %_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
       %v4int = OpTypeVector %int 4
 %_ptr_Private_v4int = OpTypePointer Private %v4int
-          %9 = OpConstantNull %v4int
-      %arg_1 = OpVariable %_ptr_Private_v4int Private %9
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-         %13 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %13
+         %13 = OpConstantNull %v4int
+      %arg_1 = OpVariable %_ptr_Private_v4int Private %13
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %frexp_b45525 = OpFunction %void None %14
          %17 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %13
-         %18 = OpExtInst %v4float %19 Frexp %13 %arg_1
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %18 = OpExtInst %v4float %19 Frexp %5 %arg_1
                OpStore %res %18
                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 %frexp_b45525
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %14
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %frexp_b45525
-         %31 = OpFunctionCall %void %tint_symbol_2 %13
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %14
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %frexp_b45525
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %frexp_b45525
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %14
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %frexp_b45525
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %frexp_b45525
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/frexp/b87f4e.wgsl.expected.spvasm b/test/intrinsics/gen/frexp/b87f4e.wgsl.expected.spvasm
index 6d5e4d6..5bf5e77 100644
--- a/test/intrinsics/gen/frexp/b87f4e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/frexp/b87f4e.wgsl.expected.spvasm
@@ -5,33 +5,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 27
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_1 "arg_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %frexp_b87f4e "frexp_b87f4e"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
       %v4int = OpTypeVector %int 4
 %_ptr_Workgroup_v4int = OpTypePointer Workgroup %v4int
       %arg_1 = OpVariable %_ptr_Workgroup_v4int Workgroup
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
          %16 = OpConstantNull %v4float
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %22 = OpConstantNull %v4int
+         %20 = OpTypeFunction %void %uint
+         %24 = OpConstantNull %v4int
      %uint_2 = OpConstant %uint 2
    %uint_264 = OpConstant %uint 264
 %frexp_b87f4e = OpFunction %void None %8
@@ -41,10 +44,17 @@
                OpStore %res %12
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %8
-         %21 = OpLabel
-               OpStore %arg_1 %22
+%compute_main_inner = OpFunction %void None %20
+%local_invocation_index = OpFunctionParameter %uint
+         %23 = OpLabel
+               OpStore %arg_1 %24
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %26 = OpFunctionCall %void %frexp_b87f4e
+         %28 = OpFunctionCall %void %frexp_b87f4e
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %8
+         %30 = OpLabel
+         %32 = OpLoad %uint %local_invocation_index_1
+         %31 = OpFunctionCall %void %compute_main_inner %32
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/frexp/b9e4de.wgsl.expected.spvasm b/test/intrinsics/gen/frexp/b9e4de.wgsl.expected.spvasm
index 0687916..28e43bb 100644
--- a/test/intrinsics/gen/frexp/b9e4de.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/frexp/b9e4de.wgsl.expected.spvasm
@@ -5,36 +5,35 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
          %20 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %frexp_b9e4de "frexp_b9e4de"
                OpName %arg_1 "arg_1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -44,7 +43,7 @@
     %v3float = OpTypeVector %float 3
          %21 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %frexp_b9e4de = OpFunction %void None %9
          %12 = OpLabel
@@ -54,26 +53,25 @@
                OpStore %res %18
                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 %frexp_b9e4de
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %frexp_b9e4de
-         %33 = OpFunctionCall %void %tint_symbol_2 %8
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %frexp_b9e4de
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %frexp_b9e4de
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %frexp_b9e4de
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %frexp_b9e4de
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/frexp/c084e3.wgsl.expected.spvasm b/test/intrinsics/gen/frexp/c084e3.wgsl.expected.spvasm
index ac5c4a0..808e4d1 100644
--- a/test/intrinsics/gen/frexp/c084e3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/frexp/c084e3.wgsl.expected.spvasm
@@ -5,47 +5,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
          %20 = OpExtInstImport "GLSL.std.450"
                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_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %frexp_c084e3 "frexp_c084e3"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
 %_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
 %_ptr_Private_v2int = OpTypePointer Private %v2int
-          %9 = OpConstantNull %v2int
-      %arg_1 = OpVariable %_ptr_Private_v2int Private %9
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-         %13 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %13
+         %13 = OpConstantNull %v2int
+      %arg_1 = OpVariable %_ptr_Private_v2int Private %13
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %21 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %frexp_c084e3 = OpFunction %void None %14
          %17 = OpLabel
@@ -54,26 +53,25 @@
                OpStore %res %18
                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 %frexp_c084e3
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %14
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %frexp_c084e3
-         %33 = OpFunctionCall %void %tint_symbol_2 %13
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %14
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %frexp_c084e3
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %frexp_c084e3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %14
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %frexp_c084e3
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %frexp_c084e3
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/frexp/d06c2c.wgsl.expected.spvasm b/test/intrinsics/gen/frexp/d06c2c.wgsl.expected.spvasm
index 2b15722..cdd710d 100644
--- a/test/intrinsics/gen/frexp/d06c2c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/frexp/d06c2c.wgsl.expected.spvasm
@@ -5,36 +5,35 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
          %20 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %frexp_d06c2c "frexp_d06c2c"
                OpName %arg_1 "arg_1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -44,7 +43,7 @@
     %v2float = OpTypeVector %float 2
          %21 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %frexp_d06c2c = OpFunction %void None %9
          %12 = OpLabel
@@ -54,26 +53,25 @@
                OpStore %res %18
                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 %frexp_d06c2c
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %frexp_d06c2c
-         %33 = OpFunctionCall %void %tint_symbol_2 %8
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %frexp_d06c2c
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %frexp_d06c2c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %frexp_d06c2c
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %frexp_d06c2c
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/frexp/d80367.wgsl.expected.spvasm b/test/intrinsics/gen/frexp/d80367.wgsl.expected.spvasm
index 03f674e..60bdf42 100644
--- a/test/intrinsics/gen/frexp/d80367.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/frexp/d80367.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
          %17 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %frexp_d80367 "frexp_d80367"
                OpName %_frexp_result_vec4 "_frexp_result_vec4"
                OpMemberName %_frexp_result_vec4 0 "sig"
                OpMemberName %_frexp_result_vec4 1 "exp"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %_frexp_result_vec4 0 Offset 0
                OpMemberDecorate %_frexp_result_vec4 1 Offset 16
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -42,35 +41,34 @@
 %_frexp_result_vec4 = OpTypeStruct %v4float %v4int
 %_ptr_Function__frexp_result_vec4 = OpTypePointer Function %_frexp_result_vec4
          %20 = OpConstantNull %_frexp_result_vec4
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %frexp_d80367 = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function__frexp_result_vec4 Function %20
-         %13 = OpExtInst %_frexp_result_vec4 %17 FrexpStruct %8
+         %13 = OpExtInst %_frexp_result_vec4 %17 FrexpStruct %5
                OpStore %res %13
                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 %frexp_d80367
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %frexp_d80367
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %frexp_d80367
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %frexp_d80367
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %frexp_d80367
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %frexp_d80367
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/frexp/db0637.wgsl.expected.spvasm b/test/intrinsics/gen/frexp/db0637.wgsl.expected.spvasm
index df21833..29f2d0f 100644
--- a/test/intrinsics/gen/frexp/db0637.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/frexp/db0637.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
          %18 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %frexp_db0637 "frexp_db0637"
                OpName %_frexp_result_vec2 "_frexp_result_vec2"
                OpMemberName %_frexp_result_vec2 0 "sig"
                OpMemberName %_frexp_result_vec2 1 "exp"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %_frexp_result_vec2 0 Offset 0
                OpMemberDecorate %_frexp_result_vec2 1 Offset 8
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -44,7 +43,7 @@
          %19 = OpConstantNull %v2float
 %_ptr_Function__frexp_result_vec2 = OpTypePointer Function %_frexp_result_vec2
          %22 = OpConstantNull %_frexp_result_vec2
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %frexp_db0637 = OpFunction %void None %9
          %12 = OpLabel
@@ -53,26 +52,25 @@
                OpStore %res %13
                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 %frexp_db0637
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %frexp_db0637
-         %31 = OpFunctionCall %void %tint_symbol_2 %8
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %frexp_db0637
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %frexp_db0637
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %frexp_db0637
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %frexp_db0637
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/frexp/e061dd.wgsl.expected.spvasm b/test/intrinsics/gen/frexp/e061dd.wgsl.expected.spvasm
index 1504a09..2b5912d 100644
--- a/test/intrinsics/gen/frexp/e061dd.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/frexp/e061dd.wgsl.expected.spvasm
@@ -5,36 +5,35 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
          %18 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %frexp_e061dd "frexp_e061dd"
                OpName %arg_1 "arg_1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -42,35 +41,34 @@
          %16 = OpConstantNull %int
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
 %frexp_e061dd = OpFunction %void None %9
          %12 = OpLabel
       %arg_1 = OpVariable %_ptr_Function_int Function %16
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %17 = OpExtInst %float %18 Frexp %float_1 %arg_1
                OpStore %res %17
                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 %frexp_e061dd
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %frexp_e061dd
-         %30 = OpFunctionCall %void %tint_symbol_2 %8
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %frexp_e061dd
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %frexp_e061dd
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %frexp_e061dd
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %frexp_e061dd
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/ignore/2a6ac2.wgsl.expected.spvasm b/test/intrinsics/gen/ignore/2a6ac2.wgsl.expected.spvasm
index 4a95840..72ffad9 100644
--- a/test/intrinsics/gen/ignore/2a6ac2.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/ignore/2a6ac2.wgsl.expected.spvasm
@@ -1,68 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; 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 %ignore_2a6ac2 "ignore_2a6ac2"
-               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 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 1 0 1 1 Unknown
-%_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 1 0 1 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %ignore_2a6ac2 = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
+         %17 = OpLoad %11 %arg_0
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %ignore_2a6ac2
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %ignore_2a6ac2
-         %26 = OpFunctionCall %void %tint_symbol_2 %11
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %ignore_2a6ac2
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %ignore_2a6ac2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %ignore_2a6ac2
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %ignore_2a6ac2
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/ignore/5016e5.wgsl.expected.spvasm b/test/intrinsics/gen/ignore/5016e5.wgsl.expected.spvasm
index 0680324..2261539 100644
--- a/test/intrinsics/gen/ignore/5016e5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/ignore/5016e5.wgsl.expected.spvasm
@@ -1,68 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; 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 %ignore_5016e5 "ignore_5016e5"
-               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 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 = OpTypeSampler
-%_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 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %ignore_5016e5 = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
+         %17 = OpLoad %11 %arg_0
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %ignore_5016e5
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %ignore_5016e5
-         %26 = OpFunctionCall %void %tint_symbol_2 %11
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %ignore_5016e5
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %ignore_5016e5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %ignore_5016e5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %ignore_5016e5
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/ignore/509355.wgsl.expected.spvasm b/test/intrinsics/gen/ignore/509355.wgsl.expected.spvasm
index a860843..9b62c2f 100644
--- a/test/intrinsics/gen/ignore/509355.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/ignore/509355.wgsl.expected.spvasm
@@ -1,68 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; 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 %ignore_509355 "ignore_509355"
-               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 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 Cube 1 0 0 1 Unknown
-%_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 Cube 1 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %ignore_509355 = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
+         %17 = OpLoad %11 %arg_0
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %ignore_509355
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %ignore_509355
-         %26 = OpFunctionCall %void %tint_symbol_2 %11
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %ignore_509355
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %ignore_509355
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %ignore_509355
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %ignore_509355
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/ignore/51aeb7.wgsl.expected.spvasm b/test/intrinsics/gen/ignore/51aeb7.wgsl.expected.spvasm
index 5ffaca4..02a2131 100644
--- a/test/intrinsics/gen/ignore/51aeb7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/ignore/51aeb7.wgsl.expected.spvasm
@@ -1,63 +1,61 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 30
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %ignore_51aeb7 "ignore_51aeb7"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
-         %16 = OpTypeFunction %void %v4float
+         %16 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %ignore_51aeb7 = OpFunction %void None %9
          %12 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %16
-%tint_symbol = OpFunctionParameter %v4float
-         %19 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %16
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %ignore_51aeb7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %21 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %23 = OpFunctionCall %void %ignore_51aeb7
-         %24 = OpFunctionCall %void %tint_symbol_2 %8
+         %22 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %22
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %ignore_51aeb7
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %ignore_51aeb7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %ignore_51aeb7
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %ignore_51aeb7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/ignore/5c9edf.wgsl.expected.spvasm b/test/intrinsics/gen/ignore/5c9edf.wgsl.expected.spvasm
index eb22bf0..5472bfb 100644
--- a/test/intrinsics/gen/ignore/5c9edf.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/ignore/5c9edf.wgsl.expected.spvasm
@@ -1,68 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; 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 %ignore_5c9edf "ignore_5c9edf"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %ignore_5c9edf = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
+         %17 = OpLoad %11 %arg_0
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %ignore_5c9edf
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %ignore_5c9edf
-         %26 = OpFunctionCall %void %tint_symbol_2 %11
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %ignore_5c9edf
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %ignore_5c9edf
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %ignore_5c9edf
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %ignore_5c9edf
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/ignore/6698df.wgsl.expected.spvasm b/test/intrinsics/gen/ignore/6698df.wgsl.expected.spvasm
index 939b535..6946564 100644
--- a/test/intrinsics/gen/ignore/6698df.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/ignore/6698df.wgsl.expected.spvasm
@@ -1,63 +1,61 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 30
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %ignore_6698df "ignore_6698df"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-         %16 = OpTypeFunction %void %v4float
+         %16 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %ignore_6698df = OpFunction %void None %9
          %12 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %16
-%tint_symbol = OpFunctionParameter %v4float
-         %19 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %16
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %ignore_6698df
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %21 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %23 = OpFunctionCall %void %ignore_6698df
-         %24 = OpFunctionCall %void %tint_symbol_2 %8
+         %22 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %22
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %ignore_6698df
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %ignore_6698df
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %ignore_6698df
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %ignore_6698df
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/ignore/ad88be.wgsl.expected.spvasm b/test/intrinsics/gen/ignore/ad88be.wgsl.expected.spvasm
index b07a0f4..5f0e9b8 100644
--- a/test/intrinsics/gen/ignore/ad88be.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/ignore/ad88be.wgsl.expected.spvasm
@@ -1,69 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
                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 %ignore_ad88be "ignore_ad88be"
-               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 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 Cube 1 1 0 1 Unknown
-%_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 Cube 1 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %ignore_ad88be = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
+         %17 = OpLoad %11 %arg_0
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %ignore_ad88be
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %ignore_ad88be
-         %26 = OpFunctionCall %void %tint_symbol_2 %11
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %ignore_ad88be
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %ignore_ad88be
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %ignore_ad88be
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %ignore_ad88be
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/ignore/b469af.wgsl.expected.spvasm b/test/intrinsics/gen/ignore/b469af.wgsl.expected.spvasm
index a30d025..6d20fc2 100644
--- a/test/intrinsics/gen/ignore/b469af.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/ignore/b469af.wgsl.expected.spvasm
@@ -1,68 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; 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 %ignore_b469af "ignore_b469af"
-               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 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 = OpTypeSampler
-%_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 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %ignore_b469af = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
+         %17 = OpLoad %11 %arg_0
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %ignore_b469af
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %ignore_b469af
-         %26 = OpFunctionCall %void %tint_symbol_2 %11
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %ignore_b469af
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %ignore_b469af
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %ignore_b469af
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %ignore_b469af
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/ignore/c8a0ee.wgsl.expected.spvasm b/test/intrinsics/gen/ignore/c8a0ee.wgsl.expected.spvasm
index 7930368..e864cdb 100644
--- a/test/intrinsics/gen/ignore/c8a0ee.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/ignore/c8a0ee.wgsl.expected.spvasm
@@ -1,68 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; 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 %ignore_c8a0ee "ignore_c8a0ee"
-               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 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 1 1 0 1 Unknown
-%_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 1 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %ignore_c8a0ee = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
+         %17 = OpLoad %11 %arg_0
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %ignore_c8a0ee
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %ignore_c8a0ee
-         %26 = OpFunctionCall %void %tint_symbol_2 %11
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %ignore_c8a0ee
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %ignore_c8a0ee
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %ignore_c8a0ee
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %ignore_c8a0ee
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/ignore/d91a2f.wgsl.expected.spvasm b/test/intrinsics/gen/ignore/d91a2f.wgsl.expected.spvasm
index 32c2d06..2d67297 100644
--- a/test/intrinsics/gen/ignore/d91a2f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/ignore/d91a2f.wgsl.expected.spvasm
@@ -1,61 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 28
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %ignore_d91a2f "ignore_d91a2f"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
-         %15 = OpTypeFunction %void %v4float
+         %15 = OpTypeFunction %v4float
 %ignore_d91a2f = OpFunction %void None %9
          %12 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %15
-%tint_symbol = OpFunctionParameter %v4float
-         %18 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %15
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %ignore_d91a2f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %20 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %21 = OpFunctionCall %void %ignore_d91a2f
-         %22 = OpFunctionCall %void %tint_symbol_2 %8
+         %21 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %21
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %ignore_d91a2f
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %ignore_d91a2f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %ignore_d91a2f
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %ignore_d91a2f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/ignore/e0187b.wgsl.expected.spvasm b/test/intrinsics/gen/ignore/e0187b.wgsl.expected.spvasm
index 018feeb..7d0b8e6 100644
--- a/test/intrinsics/gen/ignore/e0187b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/ignore/e0187b.wgsl.expected.spvasm
@@ -1,68 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; 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 %ignore_e0187b "ignore_e0187b"
-               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 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 1 0 0 1 Unknown
-%_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 1 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %ignore_e0187b = OpFunction %void None %12
          %15 = OpLabel
-         %17 = OpLoad %7 %arg_0
+         %17 = OpLoad %11 %arg_0
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %ignore_e0187b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %ignore_e0187b
-         %26 = OpFunctionCall %void %tint_symbol_2 %11
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %ignore_e0187b
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %ignore_e0187b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %ignore_e0187b
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %ignore_e0187b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/ignore/f414a6.wgsl.expected.spvasm b/test/intrinsics/gen/ignore/f414a6.wgsl.expected.spvasm
index 1d69349..cd952a8 100644
--- a/test/intrinsics/gen/ignore/f414a6.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/ignore/f414a6.wgsl.expected.spvasm
@@ -1,63 +1,61 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 31
+; Bound: 30
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %ignore_f414a6 "ignore_f414a6"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
          %15 = OpConstantNull %bool
-         %16 = OpTypeFunction %void %v4float
+         %16 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %ignore_f414a6 = OpFunction %void None %9
          %12 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %16
-%tint_symbol = OpFunctionParameter %v4float
-         %19 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %16
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %ignore_f414a6
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %21 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %23 = OpFunctionCall %void %ignore_f414a6
-         %24 = OpFunctionCall %void %tint_symbol_2 %8
+         %22 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %22
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %ignore_f414a6
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %ignore_f414a6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %ignore_f414a6
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %ignore_f414a6
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.spvasm b/test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.spvasm
index 33a4c98..2027c7e 100644
--- a/test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %inverseSqrt_84407e "inverseSqrt_84407e"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
 %inverseSqrt_84407e = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 InverseSqrt %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %inverseSqrt_84407e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %inverseSqrt_84407e
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %inverseSqrt_84407e
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %inverseSqrt_84407e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %inverseSqrt_84407e
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %inverseSqrt_84407e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.spvasm b/test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.spvasm
index 2ec31e8..d8b7416 100644
--- a/test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %inverseSqrt_8f2bd2 "inverseSqrt_8f2bd2"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %inverseSqrt_8f2bd2 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %inverseSqrt_8f2bd2
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %inverseSqrt_8f2bd2
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %inverseSqrt_8f2bd2
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %inverseSqrt_8f2bd2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %inverseSqrt_8f2bd2
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %inverseSqrt_8f2bd2
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.spvasm b/test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.spvasm
index beb3454..c70dc36 100644
--- a/test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %inverseSqrt_b197b1 "inverseSqrt_b197b1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %inverseSqrt_b197b1 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %inverseSqrt_b197b1
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %inverseSqrt_b197b1
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %inverseSqrt_b197b1
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %inverseSqrt_b197b1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %inverseSqrt_b197b1
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %inverseSqrt_b197b1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.spvasm b/test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.spvasm
index 8bcc297..9dcf623 100644
--- a/test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %inverseSqrt_c22347 "inverseSqrt_c22347"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %inverseSqrt_c22347 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 InverseSqrt %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 InverseSqrt %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %inverseSqrt_c22347
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %inverseSqrt_c22347
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %inverseSqrt_c22347
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %inverseSqrt_c22347
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %inverseSqrt_c22347
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %inverseSqrt_c22347
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.spvasm b/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.spvasm
index 852e906..ba60133 100644
--- a/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %isFinite_34d32b "isFinite_34d32b"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -37,7 +36,7 @@
          %17 = OpConstantNull %v2float
 %_ptr_Function_v2bool = OpTypePointer Function %v2bool
          %23 = OpConstantNull %v2bool
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %isFinite_34d32b = OpFunction %void None %9
          %12 = OpLabel
@@ -49,26 +48,25 @@
                OpStore %res %13
                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 %isFinite_34d32b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %isFinite_34d32b
-         %32 = OpFunctionCall %void %tint_symbol_2 %8
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %isFinite_34d32b
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %isFinite_34d32b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %isFinite_34d32b
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %isFinite_34d32b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.spvasm b/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.spvasm
index 4b54ee8..6c06d83 100644
--- a/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %isFinite_426f9f "isFinite_426f9f"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
     %float_1 = OpConstant %float 1
 %_ptr_Function_bool = OpTypePointer Function %bool
          %21 = OpConstantNull %bool
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
 %isFinite_426f9f = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_bool Function %21
@@ -46,26 +45,25 @@
                OpStore %res %13
                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 %isFinite_426f9f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %isFinite_426f9f
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %isFinite_426f9f
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %isFinite_426f9f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %isFinite_426f9f
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %isFinite_426f9f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.spvasm b/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.spvasm
index 1bfb11b..bc09cee 100644
--- a/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %isFinite_8a23ad "isFinite_8a23ad"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -37,7 +36,7 @@
          %17 = OpConstantNull %v3float
 %_ptr_Function_v3bool = OpTypePointer Function %v3bool
          %23 = OpConstantNull %v3bool
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %isFinite_8a23ad = OpFunction %void None %9
          %12 = OpLabel
@@ -49,26 +48,25 @@
                OpStore %res %13
                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 %isFinite_8a23ad
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %isFinite_8a23ad
-         %32 = OpFunctionCall %void %tint_symbol_2 %8
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %isFinite_8a23ad
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %isFinite_8a23ad
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %isFinite_8a23ad
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %isFinite_8a23ad
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/isFinite/f31987.wgsl.expected.spvasm b/test/intrinsics/gen/isFinite/f31987.wgsl.expected.spvasm
index 5e80787..3d8b0d3 100644
--- a/test/intrinsics/gen/isFinite/f31987.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/isFinite/f31987.wgsl.expected.spvasm
@@ -1,72 +1,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %isFinite_f31987 "isFinite_f31987"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
      %v4bool = OpTypeVector %bool 4
 %_ptr_Function_v4bool = OpTypePointer Function %v4bool
          %21 = OpConstantNull %v4bool
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %isFinite_f31987 = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_v4bool Function %21
-         %16 = OpIsInf %v4bool %8
-         %17 = OpIsNan %v4bool %8
+         %16 = OpIsInf %v4bool %5
+         %17 = OpIsNan %v4bool %5
          %18 = OpLogicalOr %v4bool %16 %17
          %13 = OpLogicalNot %v4bool %18
                OpStore %res %13
                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 %isFinite_f31987
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %isFinite_f31987
-         %30 = OpFunctionCall %void %tint_symbol_2 %8
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %isFinite_f31987
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %isFinite_f31987
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %isFinite_f31987
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %isFinite_f31987
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/isInf/666f2a.wgsl.expected.spvasm b/test/intrinsics/gen/isInf/666f2a.wgsl.expected.spvasm
index 34a0c56..6fd40e1 100644
--- a/test/intrinsics/gen/isInf/666f2a.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/isInf/666f2a.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %isInf_666f2a "isInf_666f2a"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -37,7 +36,7 @@
          %17 = OpConstantNull %v3float
 %_ptr_Function_v3bool = OpTypePointer Function %v3bool
          %20 = OpConstantNull %v3bool
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %isInf_666f2a = OpFunction %void None %9
          %12 = OpLabel
@@ -46,26 +45,25 @@
                OpStore %res %13
                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 %isInf_666f2a
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %isInf_666f2a
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %isInf_666f2a
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %isInf_666f2a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %isInf_666f2a
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %isInf_666f2a
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.spvasm b/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.spvasm
index f538f3a..62070aa 100644
--- a/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %isInf_7bd98f "isInf_7bd98f"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
     %float_1 = OpConstant %float 1
 %_ptr_Function_bool = OpTypePointer Function %bool
          %18 = OpConstantNull %bool
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
 %isInf_7bd98f = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_bool Function %18
@@ -43,26 +42,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %isInf_7bd98f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %isInf_7bd98f
-         %26 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %isInf_7bd98f
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %isInf_7bd98f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %isInf_7bd98f
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %isInf_7bd98f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.spvasm b/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.spvasm
index 7b5ba04..ffc62c2 100644
--- a/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.spvasm
@@ -1,69 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %isInf_7e81b5 "isInf_7e81b5"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
      %v4bool = OpTypeVector %bool 4
 %_ptr_Function_v4bool = OpTypePointer Function %v4bool
          %18 = OpConstantNull %v4bool
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %isInf_7e81b5 = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_v4bool Function %18
-         %13 = OpIsInf %v4bool %8
+         %13 = OpIsInf %v4bool %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %isInf_7e81b5
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %isInf_7e81b5
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %isInf_7e81b5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %isInf_7e81b5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %isInf_7e81b5
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %isInf_7e81b5
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.spvasm b/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.spvasm
index 20f293b..5aa43d3 100644
--- a/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %isInf_a46d6f "isInf_a46d6f"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -37,7 +36,7 @@
          %17 = OpConstantNull %v2float
 %_ptr_Function_v2bool = OpTypePointer Function %v2bool
          %20 = OpConstantNull %v2bool
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %isInf_a46d6f = OpFunction %void None %9
          %12 = OpLabel
@@ -46,26 +45,25 @@
                OpStore %res %13
                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 %isInf_a46d6f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %isInf_a46d6f
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %isInf_a46d6f
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %isInf_a46d6f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %isInf_a46d6f
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %isInf_a46d6f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/isNan/1280ab.wgsl.expected.spvasm b/test/intrinsics/gen/isNan/1280ab.wgsl.expected.spvasm
index e8bec27..268f5de 100644
--- a/test/intrinsics/gen/isNan/1280ab.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/isNan/1280ab.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %isNan_1280ab "isNan_1280ab"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -37,7 +36,7 @@
          %17 = OpConstantNull %v3float
 %_ptr_Function_v3bool = OpTypePointer Function %v3bool
          %20 = OpConstantNull %v3bool
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %isNan_1280ab = OpFunction %void None %9
          %12 = OpLabel
@@ -46,26 +45,25 @@
                OpStore %res %13
                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 %isNan_1280ab
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %isNan_1280ab
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %isNan_1280ab
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %isNan_1280ab
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %isNan_1280ab
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %isNan_1280ab
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/isNan/4d280d.wgsl.expected.spvasm b/test/intrinsics/gen/isNan/4d280d.wgsl.expected.spvasm
index 56ba241..074a58b 100644
--- a/test/intrinsics/gen/isNan/4d280d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/isNan/4d280d.wgsl.expected.spvasm
@@ -1,69 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %isNan_4d280d "isNan_4d280d"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
      %v4bool = OpTypeVector %bool 4
 %_ptr_Function_v4bool = OpTypePointer Function %v4bool
          %18 = OpConstantNull %v4bool
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %isNan_4d280d = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_v4bool Function %18
-         %13 = OpIsNan %v4bool %8
+         %13 = OpIsNan %v4bool %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %isNan_4d280d
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %isNan_4d280d
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %isNan_4d280d
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %isNan_4d280d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %isNan_4d280d
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %isNan_4d280d
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.spvasm b/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.spvasm
index fe0be0d..ae148ec 100644
--- a/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %isNan_67ecd3 "isNan_67ecd3"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -37,7 +36,7 @@
          %17 = OpConstantNull %v2float
 %_ptr_Function_v2bool = OpTypePointer Function %v2bool
          %20 = OpConstantNull %v2bool
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %isNan_67ecd3 = OpFunction %void None %9
          %12 = OpLabel
@@ -46,26 +45,25 @@
                OpStore %res %13
                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 %isNan_67ecd3
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %isNan_67ecd3
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %isNan_67ecd3
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %isNan_67ecd3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %isNan_67ecd3
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %isNan_67ecd3
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/isNan/e4978e.wgsl.expected.spvasm b/test/intrinsics/gen/isNan/e4978e.wgsl.expected.spvasm
index 4d21c4d..c3140e2 100644
--- a/test/intrinsics/gen/isNan/e4978e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/isNan/e4978e.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %isNan_e4978e "isNan_e4978e"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
     %float_1 = OpConstant %float 1
 %_ptr_Function_bool = OpTypePointer Function %bool
          %18 = OpConstantNull %bool
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
 %isNan_e4978e = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_bool Function %18
@@ -43,26 +42,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %isNan_e4978e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %isNan_e4978e
-         %26 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %isNan_e4978e
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %isNan_e4978e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %isNan_e4978e
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %isNan_e4978e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.spvasm b/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.spvasm
index ec938ef..c782b6c 100644
--- a/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.spvasm
@@ -1,35 +1,34 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %isNormal_863dcd "isNormal_863dcd"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -41,7 +40,7 @@
      %v4uint = OpTypeVector %uint 4
 %_ptr_Function_v4bool = OpTypePointer Function %v4bool
          %30 = OpConstantNull %v4bool
-         %31 = OpTypeFunction %void %v4float
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %isNormal_863dcd = OpFunction %void None %9
          %12 = OpLabel
@@ -49,33 +48,32 @@
          %22 = OpCompositeConstruct %v4uint %uint_133693440 %uint_133693440 %uint_133693440 %uint_133693440
          %23 = OpCompositeConstruct %v4uint %uint_524288 %uint_524288 %uint_524288 %uint_524288
          %24 = OpCompositeConstruct %v4uint %uint_133169152 %uint_133169152 %uint_133169152 %uint_133169152
-         %25 = OpBitcast %v4uint %8
+         %25 = OpBitcast %v4uint %5
          %26 = OpBitwiseAnd %v4uint %25 %22
          %27 = OpExtInst %v4uint %16 UClamp %26 %23 %24
          %13 = OpIEqual %v4bool %26 %27
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %31
-%tint_symbol = OpFunctionParameter %v4float
-         %34 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %isNormal_863dcd
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %36 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %38 = OpFunctionCall %void %isNormal_863dcd
-         %39 = OpFunctionCall %void %tint_symbol_2 %8
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %isNormal_863dcd
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %isNormal_863dcd
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %isNormal_863dcd
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %isNormal_863dcd
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.spvasm b/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.spvasm
index 0de7bf9..865cf7b 100644
--- a/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.spvasm
@@ -1,35 +1,34 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
          %18 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %isNormal_b00ab1 "isNormal_b00ab1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -43,7 +42,7 @@
      %v2uint = OpTypeVector %uint 2
 %_ptr_Function_v2bool = OpTypePointer Function %v2bool
          %32 = OpConstantNull %v2bool
-         %33 = OpTypeFunction %void %v4float
+         %33 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %isNormal_b00ab1 = OpFunction %void None %9
          %12 = OpLabel
@@ -58,26 +57,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %33
-%tint_symbol = OpFunctionParameter %v4float
-         %36 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %isNormal_b00ab1
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %38 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %40 = OpFunctionCall %void %isNormal_b00ab1
-         %41 = OpFunctionCall %void %tint_symbol_2 %8
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %isNormal_b00ab1
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %isNormal_b00ab1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %isNormal_b00ab1
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %isNormal_b00ab1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.spvasm b/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.spvasm
index 657c0d4..158b6bb 100644
--- a/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.spvasm
@@ -1,35 +1,34 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
          %18 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %isNormal_c286b7 "isNormal_c286b7"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -43,7 +42,7 @@
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v3bool = OpTypePointer Function %v3bool
          %32 = OpConstantNull %v3bool
-         %33 = OpTypeFunction %void %v4float
+         %33 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %isNormal_c286b7 = OpFunction %void None %9
          %12 = OpLabel
@@ -58,26 +57,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %33
-%tint_symbol = OpFunctionParameter %v4float
-         %36 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %isNormal_c286b7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %38 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %40 = OpFunctionCall %void %isNormal_c286b7
-         %41 = OpFunctionCall %void %tint_symbol_2 %8
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %isNormal_c286b7
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %isNormal_c286b7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %isNormal_c286b7
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %isNormal_c286b7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.spvasm b/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.spvasm
index 10c9497..a849dfe 100644
--- a/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.spvasm
@@ -1,35 +1,34 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %isNormal_c6e880 "isNormal_c6e880"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -40,7 +39,7 @@
 %uint_133169152 = OpConstant %uint 133169152
 %_ptr_Function_bool = OpTypePointer Function %bool
          %26 = OpConstantNull %bool
-         %27 = OpTypeFunction %void %v4float
+         %27 = OpTypeFunction %v4float
 %isNormal_c6e880 = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_bool Function %26
@@ -51,26 +50,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %27
-%tint_symbol = OpFunctionParameter %v4float
-         %30 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %isNormal_c6e880
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %32 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %isNormal_c6e880
-         %34 = OpFunctionCall %void %tint_symbol_2 %8
+         %33 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %33
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %isNormal_c6e880
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %isNormal_c6e880
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %isNormal_c6e880
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %isNormal_c6e880
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.spvasm b/test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.spvasm
index 0e0b939..8c131c6 100644
--- a/test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.spvasm
@@ -1,35 +1,34 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %ldexp_a31cdc "ldexp_a31cdc"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -38,7 +37,7 @@
       %v3int = OpTypeVector %int 3
          %19 = OpConstantNull %v3int
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %ldexp_a31cdc = OpFunction %void None %9
          %12 = OpLabel
@@ -47,26 +46,25 @@
                OpStore %res %13
                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 %ldexp_a31cdc
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %ldexp_a31cdc
-         %30 = OpFunctionCall %void %tint_symbol_2 %8
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %ldexp_a31cdc
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %ldexp_a31cdc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %ldexp_a31cdc
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %ldexp_a31cdc
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/ldexp/abd718.wgsl.expected.spvasm b/test/intrinsics/gen/ldexp/abd718.wgsl.expected.spvasm
index 64f614c..7da0d18 100644
--- a/test/intrinsics/gen/ldexp/abd718.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/ldexp/abd718.wgsl.expected.spvasm
@@ -1,35 +1,34 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %ldexp_abd718 "ldexp_abd718"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -38,7 +37,7 @@
       %v2int = OpTypeVector %int 2
          %19 = OpConstantNull %v2int
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %ldexp_abd718 = OpFunction %void None %9
          %12 = OpLabel
@@ -47,26 +46,25 @@
                OpStore %res %13
                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 %ldexp_abd718
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %ldexp_abd718
-         %30 = OpFunctionCall %void %tint_symbol_2 %8
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %ldexp_abd718
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %ldexp_abd718
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %ldexp_abd718
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %ldexp_abd718
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.spvasm b/test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.spvasm
index 9fabf44..4f75b89 100644
--- a/test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.spvasm
@@ -1,70 +1,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %ldexp_cc9cde "ldexp_cc9cde"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v4int = OpTypeVector %int 4
          %17 = OpConstantNull %v4int
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %ldexp_cc9cde = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Ldexp %8 %17
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Ldexp %5 %17
                OpStore %res %13
                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 %ldexp_cc9cde
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %ldexp_cc9cde
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %ldexp_cc9cde
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %ldexp_cc9cde
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %ldexp_cc9cde
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %ldexp_cc9cde
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/ldexp/db8b49.wgsl.expected.spvasm b/test/intrinsics/gen/ldexp/db8b49.wgsl.expected.spvasm
index 1295722..7e09bc0 100644
--- a/test/intrinsics/gen/ldexp/db8b49.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/ldexp/db8b49.wgsl.expected.spvasm
@@ -1,69 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %ldexp_db8b49 "ldexp_db8b49"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
 %ldexp_db8b49 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Ldexp %float_1 %int_1
                OpStore %res %13
                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 %ldexp_db8b49
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %ldexp_db8b49
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %ldexp_db8b49
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %ldexp_db8b49
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %ldexp_db8b49
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %ldexp_db8b49
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/length/056071.wgsl.expected.spvasm b/test/intrinsics/gen/length/056071.wgsl.expected.spvasm
index aa71be3..47e4a5d 100644
--- a/test/intrinsics/gen/length/056071.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/length/056071.wgsl.expected.spvasm
@@ -1,69 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %length_056071 "length_056071"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_float = OpTypePointer Function %float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %length_056071 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Length %16
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %length_056071
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %length_056071
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %length_056071
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %length_056071
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %length_056071
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %length_056071
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/length/602a17.wgsl.expected.spvasm b/test/intrinsics/gen/length/602a17.wgsl.expected.spvasm
index aec0374..f42a9a5 100644
--- a/test/intrinsics/gen/length/602a17.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/length/602a17.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %length_602a17 "length_602a17"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
 %length_602a17 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Length %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %length_602a17
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %length_602a17
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %length_602a17
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %length_602a17
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %length_602a17
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %length_602a17
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/length/afde8b.wgsl.expected.spvasm b/test/intrinsics/gen/length/afde8b.wgsl.expected.spvasm
index 73d97a8..9dc8665 100644
--- a/test/intrinsics/gen/length/afde8b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/length/afde8b.wgsl.expected.spvasm
@@ -1,69 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %length_afde8b "length_afde8b"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_float = OpTypePointer Function %float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %length_afde8b = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Length %16
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %length_afde8b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %length_afde8b
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %length_afde8b
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %length_afde8b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %length_afde8b
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %length_afde8b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/length/becebf.wgsl.expected.spvasm b/test/intrinsics/gen/length/becebf.wgsl.expected.spvasm
index 4b20f99..aebf0ae 100644
--- a/test/intrinsics/gen/length/becebf.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/length/becebf.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %length_becebf "length_becebf"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %length_becebf = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
-         %13 = OpExtInst %float %14 Length %8
+        %res = OpVariable %_ptr_Function_float Function %8
+         %13 = OpExtInst %float %14 Length %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %length_becebf
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %length_becebf
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %length_becebf
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %length_becebf
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %length_becebf
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %length_becebf
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/log/3da25a.wgsl.expected.spvasm b/test/intrinsics/gen/log/3da25a.wgsl.expected.spvasm
index de8964a..2546b7f 100644
--- a/test/intrinsics/gen/log/3da25a.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/log/3da25a.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %log_3da25a "log_3da25a"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %log_3da25a = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Log %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Log %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %log_3da25a
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %log_3da25a
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %log_3da25a
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %log_3da25a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %log_3da25a
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %log_3da25a
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/log/7114a6.wgsl.expected.spvasm b/test/intrinsics/gen/log/7114a6.wgsl.expected.spvasm
index 2069403..6d8292f 100644
--- a/test/intrinsics/gen/log/7114a6.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/log/7114a6.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %log_7114a6 "log_7114a6"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
  %log_7114a6 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Log %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %log_7114a6
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %log_7114a6
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %log_7114a6
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %log_7114a6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %log_7114a6
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %log_7114a6
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/log/b2ce28.wgsl.expected.spvasm b/test/intrinsics/gen/log/b2ce28.wgsl.expected.spvasm
index 94e3fda..d64f498 100644
--- a/test/intrinsics/gen/log/b2ce28.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/log/b2ce28.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %log_b2ce28 "log_b2ce28"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %log_b2ce28 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %log_b2ce28
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %log_b2ce28
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %log_b2ce28
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %log_b2ce28
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %log_b2ce28
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %log_b2ce28
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/log/f4c570.wgsl.expected.spvasm b/test/intrinsics/gen/log/f4c570.wgsl.expected.spvasm
index 69b5d67..32ce39c 100644
--- a/test/intrinsics/gen/log/f4c570.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/log/f4c570.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %log_f4c570 "log_f4c570"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %log_f4c570 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %log_f4c570
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %log_f4c570
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %log_f4c570
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %log_f4c570
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %log_f4c570
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %log_f4c570
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/log2/4036ed.wgsl.expected.spvasm b/test/intrinsics/gen/log2/4036ed.wgsl.expected.spvasm
index 79365bf..197b7a2 100644
--- a/test/intrinsics/gen/log2/4036ed.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/log2/4036ed.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %log2_4036ed "log2_4036ed"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
 %log2_4036ed = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Log2 %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %log2_4036ed
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %log2_4036ed
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %log2_4036ed
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %log2_4036ed
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %log2_4036ed
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %log2_4036ed
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/log2/902988.wgsl.expected.spvasm b/test/intrinsics/gen/log2/902988.wgsl.expected.spvasm
index 094a885..81e9118 100644
--- a/test/intrinsics/gen/log2/902988.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/log2/902988.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %log2_902988 "log2_902988"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %log2_902988 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Log2 %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Log2 %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %log2_902988
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %log2_902988
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %log2_902988
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %log2_902988
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %log2_902988
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %log2_902988
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/log2/adb233.wgsl.expected.spvasm b/test/intrinsics/gen/log2/adb233.wgsl.expected.spvasm
index 166e27f..5218f91 100644
--- a/test/intrinsics/gen/log2/adb233.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/log2/adb233.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %log2_adb233 "log2_adb233"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %log2_adb233 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %log2_adb233
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %log2_adb233
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %log2_adb233
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %log2_adb233
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %log2_adb233
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %log2_adb233
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/log2/aea659.wgsl.expected.spvasm b/test/intrinsics/gen/log2/aea659.wgsl.expected.spvasm
index 7e17b05..708bf37 100644
--- a/test/intrinsics/gen/log2/aea659.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/log2/aea659.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %log2_aea659 "log2_aea659"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %log2_aea659 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %log2_aea659
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %log2_aea659
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %log2_aea659
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %log2_aea659
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %log2_aea659
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %log2_aea659
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/max/0c0aae.wgsl.expected.spvasm b/test/intrinsics/gen/max/0c0aae.wgsl.expected.spvasm
index cc586bb..5b93d07 100644
--- a/test/intrinsics/gen/max/0c0aae.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/max/0c0aae.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %max_0c0aae "max_0c0aae"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %19 = OpConstantNull %uint
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %max_0c0aae = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %max_0c0aae
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %max_0c0aae
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %max_0c0aae
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %max_0c0aae
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %max_0c0aae
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %max_0c0aae
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/max/25eafe.wgsl.expected.spvasm b/test/intrinsics/gen/max/25eafe.wgsl.expected.spvasm
index 9c17396..ee169746 100644
--- a/test/intrinsics/gen/max/25eafe.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/max/25eafe.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %max_25eafe "max_25eafe"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
          %17 = OpConstantNull %v3int
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %max_25eafe = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %max_25eafe
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %max_25eafe
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %max_25eafe
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %max_25eafe
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %max_25eafe
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %max_25eafe
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/max/320815.wgsl.expected.spvasm b/test/intrinsics/gen/max/320815.wgsl.expected.spvasm
index 24307bd..649e397 100644
--- a/test/intrinsics/gen/max/320815.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/max/320815.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %max_320815 "max_320815"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
          %17 = OpConstantNull %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %max_320815 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %max_320815
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %max_320815
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %max_320815
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %max_320815
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %max_320815
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %max_320815
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/max/44a39d.wgsl.expected.spvasm b/test/intrinsics/gen/max/44a39d.wgsl.expected.spvasm
index b2775c6..a115b4a 100644
--- a/test/intrinsics/gen/max/44a39d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/max/44a39d.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %max_44a39d "max_44a39d"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
  %max_44a39d = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 NMax %float_1 %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %max_44a39d
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %max_44a39d
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %max_44a39d
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %max_44a39d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %max_44a39d
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %max_44a39d
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/max/453e04.wgsl.expected.spvasm b/test/intrinsics/gen/max/453e04.wgsl.expected.spvasm
index 942578b..25e7047 100644
--- a/test/intrinsics/gen/max/453e04.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/max/453e04.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %max_453e04 "max_453e04"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v4uint = OpTypeVector %uint 4
          %17 = OpConstantNull %v4uint
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %max_453e04 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %max_453e04
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %max_453e04
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %max_453e04
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %max_453e04
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %max_453e04
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %max_453e04
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/max/462050.wgsl.expected.spvasm b/test/intrinsics/gen/max/462050.wgsl.expected.spvasm
index 6a3f595..f513309 100644
--- a/test/intrinsics/gen/max/462050.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/max/462050.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %max_462050 "max_462050"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %max_462050 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %max_462050
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %max_462050
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %max_462050
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %max_462050
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %max_462050
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %max_462050
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/max/4883ac.wgsl.expected.spvasm b/test/intrinsics/gen/max/4883ac.wgsl.expected.spvasm
index 497672a..f3a038b 100644
--- a/test/intrinsics/gen/max/4883ac.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/max/4883ac.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %max_4883ac "max_4883ac"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %max_4883ac = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %max_4883ac
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %max_4883ac
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %max_4883ac
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %max_4883ac
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %max_4883ac
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %max_4883ac
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/max/85e6bc.wgsl.expected.spvasm b/test/intrinsics/gen/max/85e6bc.wgsl.expected.spvasm
index 2bd843e..4274291 100644
--- a/test/intrinsics/gen/max/85e6bc.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/max/85e6bc.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %max_85e6bc "max_85e6bc"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v4int = OpTypeVector %int 4
          %17 = OpConstantNull %v4int
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %max_85e6bc = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %max_85e6bc
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %max_85e6bc
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %max_85e6bc
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %max_85e6bc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %max_85e6bc
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %max_85e6bc
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/max/a93419.wgsl.expected.spvasm b/test/intrinsics/gen/max/a93419.wgsl.expected.spvasm
index affcf74..7a4efd7 100644
--- a/test/intrinsics/gen/max/a93419.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/max/a93419.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %max_a93419 "max_a93419"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %max_a93419 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 NMax %8 %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 NMax %5 %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %max_a93419
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %max_a93419
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %max_a93419
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %max_a93419
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %max_a93419
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %max_a93419
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/max/b1b73a.wgsl.expected.spvasm b/test/intrinsics/gen/max/b1b73a.wgsl.expected.spvasm
index 54cf5c4..1daf570 100644
--- a/test/intrinsics/gen/max/b1b73a.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/max/b1b73a.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %max_b1b73a "max_b1b73a"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
          %17 = OpConstantNull %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %max_b1b73a = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %max_b1b73a
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %max_b1b73a
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %max_b1b73a
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %max_b1b73a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %max_b1b73a
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %max_b1b73a
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/max/ce7c30.wgsl.expected.spvasm b/test/intrinsics/gen/max/ce7c30.wgsl.expected.spvasm
index 068d7d2..94a170d 100644
--- a/test/intrinsics/gen/max/ce7c30.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/max/ce7c30.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %max_ce7c30 "max_ce7c30"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %19 = OpConstantNull %int
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %max_ce7c30 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %max_ce7c30
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %max_ce7c30
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %max_ce7c30
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %max_ce7c30
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %max_ce7c30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %max_ce7c30
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/max/e8192f.wgsl.expected.spvasm b/test/intrinsics/gen/max/e8192f.wgsl.expected.spvasm
index d417a92..1c310ad 100644
--- a/test/intrinsics/gen/max/e8192f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/max/e8192f.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %max_e8192f "max_e8192f"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
          %17 = OpConstantNull %v2int
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %max_e8192f = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %max_e8192f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %max_e8192f
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %max_e8192f
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %max_e8192f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %max_e8192f
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %max_e8192f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/min/03c7e3.wgsl.expected.spvasm b/test/intrinsics/gen/min/03c7e3.wgsl.expected.spvasm
index a303e59..8aad2ec 100644
--- a/test/intrinsics/gen/min/03c7e3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/min/03c7e3.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %min_03c7e3 "min_03c7e3"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
          %17 = OpConstantNull %v2int
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %min_03c7e3 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %min_03c7e3
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %min_03c7e3
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %min_03c7e3
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %min_03c7e3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %min_03c7e3
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %min_03c7e3
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/min/0dc614.wgsl.expected.spvasm b/test/intrinsics/gen/min/0dc614.wgsl.expected.spvasm
index eebe29b..772b7d0 100644
--- a/test/intrinsics/gen/min/0dc614.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/min/0dc614.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %min_0dc614 "min_0dc614"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v4uint = OpTypeVector %uint 4
          %17 = OpConstantNull %v4uint
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %min_0dc614 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %min_0dc614
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %min_0dc614
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %min_0dc614
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %min_0dc614
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %min_0dc614
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %min_0dc614
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/min/3941e1.wgsl.expected.spvasm b/test/intrinsics/gen/min/3941e1.wgsl.expected.spvasm
index eacea37..03e4ed8 100644
--- a/test/intrinsics/gen/min/3941e1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/min/3941e1.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %min_3941e1 "min_3941e1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v4int = OpTypeVector %int 4
          %17 = OpConstantNull %v4int
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %min_3941e1 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %min_3941e1
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %min_3941e1
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %min_3941e1
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %min_3941e1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %min_3941e1
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %min_3941e1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/min/46c5d3.wgsl.expected.spvasm b/test/intrinsics/gen/min/46c5d3.wgsl.expected.spvasm
index 7a14bf5..d5fb14a 100644
--- a/test/intrinsics/gen/min/46c5d3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/min/46c5d3.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %min_46c5d3 "min_46c5d3"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %19 = OpConstantNull %uint
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %min_46c5d3 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %min_46c5d3
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %min_46c5d3
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %min_46c5d3
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %min_46c5d3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %min_46c5d3
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %min_46c5d3
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/min/82b28f.wgsl.expected.spvasm b/test/intrinsics/gen/min/82b28f.wgsl.expected.spvasm
index bd2f708..dfee21a 100644
--- a/test/intrinsics/gen/min/82b28f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/min/82b28f.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %min_82b28f "min_82b28f"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
          %17 = OpConstantNull %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %min_82b28f = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %min_82b28f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %min_82b28f
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %min_82b28f
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %min_82b28f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %min_82b28f
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %min_82b28f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/min/93cfc4.wgsl.expected.spvasm b/test/intrinsics/gen/min/93cfc4.wgsl.expected.spvasm
index a2b6713..4ec86a3 100644
--- a/test/intrinsics/gen/min/93cfc4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/min/93cfc4.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %min_93cfc4 "min_93cfc4"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %min_93cfc4 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %min_93cfc4
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %min_93cfc4
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %min_93cfc4
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %min_93cfc4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %min_93cfc4
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %min_93cfc4
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/min/a45171.wgsl.expected.spvasm b/test/intrinsics/gen/min/a45171.wgsl.expected.spvasm
index 8f7b2f2..267b83e 100644
--- a/test/intrinsics/gen/min/a45171.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/min/a45171.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %min_a45171 "min_a45171"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
          %17 = OpConstantNull %v3int
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %min_a45171 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %min_a45171
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %min_a45171
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %min_a45171
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %min_a45171
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %min_a45171
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %min_a45171
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/min/aa28ad.wgsl.expected.spvasm b/test/intrinsics/gen/min/aa28ad.wgsl.expected.spvasm
index a45fdff..7c1cb4d 100644
--- a/test/intrinsics/gen/min/aa28ad.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/min/aa28ad.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %min_aa28ad "min_aa28ad"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %min_aa28ad = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %min_aa28ad
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %min_aa28ad
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %min_aa28ad
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %min_aa28ad
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %min_aa28ad
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %min_aa28ad
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/min/af326d.wgsl.expected.spvasm b/test/intrinsics/gen/min/af326d.wgsl.expected.spvasm
index f56cffe..6168b75 100644
--- a/test/intrinsics/gen/min/af326d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/min/af326d.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %min_af326d "min_af326d"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
  %min_af326d = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 NMin %float_1 %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %min_af326d
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %min_af326d
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %min_af326d
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %min_af326d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %min_af326d
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %min_af326d
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/min/c70bb7.wgsl.expected.spvasm b/test/intrinsics/gen/min/c70bb7.wgsl.expected.spvasm
index df2e8f1..ed15a51 100644
--- a/test/intrinsics/gen/min/c70bb7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/min/c70bb7.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %min_c70bb7 "min_c70bb7"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
          %17 = OpConstantNull %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %min_c70bb7 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %min_c70bb7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %min_c70bb7
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %min_c70bb7
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %min_c70bb7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %min_c70bb7
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %min_c70bb7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/min/c73147.wgsl.expected.spvasm b/test/intrinsics/gen/min/c73147.wgsl.expected.spvasm
index 85c0cb7..1408c34 100644
--- a/test/intrinsics/gen/min/c73147.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/min/c73147.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %min_c73147 "min_c73147"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %19 = OpConstantNull %int
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %min_c73147 = OpFunction %void None %9
          %12 = OpLabel
@@ -45,26 +44,25 @@
                OpStore %res %13
                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 %min_c73147
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %min_c73147
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %min_c73147
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %min_c73147
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %min_c73147
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %min_c73147
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/min/c76fa6.wgsl.expected.spvasm b/test/intrinsics/gen/min/c76fa6.wgsl.expected.spvasm
index c537c48..6d8fad9 100644
--- a/test/intrinsics/gen/min/c76fa6.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/min/c76fa6.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %min_c76fa6 "min_c76fa6"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %min_c76fa6 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 NMin %8 %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 NMin %5 %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %min_c76fa6
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %min_c76fa6
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %min_c76fa6
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %min_c76fa6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %min_c76fa6
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %min_c76fa6
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/mix/0c8c33.wgsl.expected.spvasm b/test/intrinsics/gen/mix/0c8c33.wgsl.expected.spvasm
index 431e74b..ec2334d 100644
--- a/test/intrinsics/gen/mix/0c8c33.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/mix/0c8c33.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %mix_0c8c33 "mix_0c8c33"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %mix_0c8c33 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %mix_0c8c33
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %mix_0c8c33
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %mix_0c8c33
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %mix_0c8c33
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %mix_0c8c33
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %mix_0c8c33
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/mix/1faeb1.wgsl.expected.spvasm b/test/intrinsics/gen/mix/1faeb1.wgsl.expected.spvasm
index 365f07d..57731fb 100644
--- a/test/intrinsics/gen/mix/1faeb1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/mix/1faeb1.wgsl.expected.spvasm
@@ -1,69 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %mix_1faeb1 "mix_1faeb1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
  %mix_1faeb1 = OpFunction %void None %9
          %12 = OpLabel
-         %16 = OpVariable %_ptr_Function_v4float Function %8
-        %res = OpVariable %_ptr_Function_v4float Function %8
+         %16 = OpVariable %_ptr_Function_v4float Function %5
+        %res = OpVariable %_ptr_Function_v4float Function %5
          %18 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1
-         %13 = OpExtInst %v4float %14 FMix %8 %8 %18
+         %13 = OpExtInst %v4float %14 FMix %5 %5 %18
                OpStore %res %13
                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 %mix_1faeb1
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %mix_1faeb1
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %mix_1faeb1
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %mix_1faeb1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %mix_1faeb1
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %mix_1faeb1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/mix/2fadab.wgsl.expected.spvasm b/test/intrinsics/gen/mix/2fadab.wgsl.expected.spvasm
index 7fa6317..3eb2f5d 100644
--- a/test/intrinsics/gen/mix/2fadab.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/mix/2fadab.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %mix_2fadab "mix_2fadab"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
     %float_1 = OpConstant %float 1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
  %mix_2fadab = OpFunction %void None %9
          %12 = OpLabel
          %18 = OpVariable %_ptr_Function_v2float Function %16
@@ -46,26 +45,25 @@
                OpStore %res %13
                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 %mix_2fadab
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %mix_2fadab
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %mix_2fadab
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %mix_2fadab
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %mix_2fadab
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %mix_2fadab
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/mix/315264.wgsl.expected.spvasm b/test/intrinsics/gen/mix/315264.wgsl.expected.spvasm
index bc56ac3..edd5730 100644
--- a/test/intrinsics/gen/mix/315264.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/mix/315264.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %mix_315264 "mix_315264"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
     %float_1 = OpConstant %float 1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
  %mix_315264 = OpFunction %void None %9
          %12 = OpLabel
          %18 = OpVariable %_ptr_Function_v3float Function %16
@@ -46,26 +45,25 @@
                OpStore %res %13
                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 %mix_315264
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %mix_315264
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %mix_315264
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %mix_315264
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %mix_315264
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %mix_315264
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/mix/4f0b5e.wgsl.expected.spvasm b/test/intrinsics/gen/mix/4f0b5e.wgsl.expected.spvasm
index 60937ee..cac6178 100644
--- a/test/intrinsics/gen/mix/4f0b5e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/mix/4f0b5e.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %mix_4f0b5e "mix_4f0b5e"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
  %mix_4f0b5e = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 FMix %float_1 %float_1 %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %mix_4f0b5e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %mix_4f0b5e
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %mix_4f0b5e
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %mix_4f0b5e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %mix_4f0b5e
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %mix_4f0b5e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/mix/6f8adc.wgsl.expected.spvasm b/test/intrinsics/gen/mix/6f8adc.wgsl.expected.spvasm
index 7d6f639..86fda17 100644
--- a/test/intrinsics/gen/mix/6f8adc.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/mix/6f8adc.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %mix_6f8adc "mix_6f8adc"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %mix_6f8adc = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %mix_6f8adc
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %mix_6f8adc
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %mix_6f8adc
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %mix_6f8adc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %mix_6f8adc
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %mix_6f8adc
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/mix/c37ede.wgsl.expected.spvasm b/test/intrinsics/gen/mix/c37ede.wgsl.expected.spvasm
index 7aa03fc..dfac6fa 100644
--- a/test/intrinsics/gen/mix/c37ede.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/mix/c37ede.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %mix_c37ede "mix_c37ede"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %mix_c37ede = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 FMix %8 %8 %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 FMix %5 %5 %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %mix_c37ede
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %mix_c37ede
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %mix_c37ede
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %mix_c37ede
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %mix_c37ede
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %mix_c37ede
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/modf/1d59e5.wgsl.expected.spvasm b/test/intrinsics/gen/modf/1d59e5.wgsl.expected.spvasm
index 2a9a616..a8c3e95 100644
--- a/test/intrinsics/gen/modf/1d59e5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/modf/1d59e5.wgsl.expected.spvasm
@@ -5,30 +5,33 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 24
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
          %13 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_1 "arg_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %modf_1d59e5 "modf_1d59e5"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
 %_ptr_Workgroup_v4float = OpTypePointer Workgroup %v4float
       %arg_1 = OpVariable %_ptr_Workgroup_v4float Workgroup
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
          %14 = OpConstantNull %v4float
 %_ptr_Function_v4float = OpTypePointer Function %v4float
+         %18 = OpTypeFunction %void %uint
      %uint_2 = OpConstant %uint 2
    %uint_264 = OpConstant %uint 264
 %modf_1d59e5 = OpFunction %void None %8
@@ -38,10 +41,17 @@
                OpStore %res %12
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %8
-         %19 = OpLabel
+%compute_main_inner = OpFunction %void None %18
+%local_invocation_index = OpFunctionParameter %uint
+         %21 = OpLabel
                OpStore %arg_1 %14
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %23 = OpFunctionCall %void %modf_1d59e5
+         %25 = OpFunctionCall %void %modf_1d59e5
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %8
+         %27 = OpLabel
+         %29 = OpLoad %uint %local_invocation_index_1
+         %28 = OpFunctionCall %void %compute_main_inner %29
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/modf/2199f1.wgsl.expected.spvasm b/test/intrinsics/gen/modf/2199f1.wgsl.expected.spvasm
index 998b149..20a3c9f 100644
--- a/test/intrinsics/gen/modf/2199f1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/modf/2199f1.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %modf_2199f1 "modf_2199f1"
                OpName %_modf_result_vec3 "_modf_result_vec3"
                OpMemberName %_modf_result_vec3 0 "fract"
                OpMemberName %_modf_result_vec3 1 "whole"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %_modf_result_vec3 0 Offset 0
                OpMemberDecorate %_modf_result_vec3 1 Offset 16
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -42,7 +41,7 @@
          %17 = OpConstantNull %v3float
 %_ptr_Function__modf_result_vec3 = OpTypePointer Function %_modf_result_vec3
          %20 = OpConstantNull %_modf_result_vec3
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %modf_2199f1 = OpFunction %void None %9
          %12 = OpLabel
@@ -51,26 +50,25 @@
                OpStore %res %13
                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 %modf_2199f1
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %modf_2199f1
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %modf_2199f1
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %modf_2199f1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %modf_2199f1
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %modf_2199f1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/modf/353f7d.wgsl.expected.spvasm b/test/intrinsics/gen/modf/353f7d.wgsl.expected.spvasm
index 83763b8..313d08f 100644
--- a/test/intrinsics/gen/modf/353f7d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/modf/353f7d.wgsl.expected.spvasm
@@ -5,69 +5,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %modf_353f7d "modf_353f7d"
                OpName %arg_1 "arg_1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
     %float_1 = OpConstant %float 1
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
 %modf_353f7d = OpFunction %void None %9
          %12 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_float Function %4
-        %res = OpVariable %_ptr_Function_float Function %4
+      %arg_1 = OpVariable %_ptr_Function_float Function %8
+        %res = OpVariable %_ptr_Function_float Function %8
          %15 = OpExtInst %float %16 Modf %float_1 %arg_1
                OpStore %res %15
                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 %modf_353f7d
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %modf_353f7d
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %modf_353f7d
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %modf_353f7d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %modf_353f7d
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %modf_353f7d
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/modf/3b79d5.wgsl.expected.spvasm b/test/intrinsics/gen/modf/3b79d5.wgsl.expected.spvasm
index 9a2e520..7b67e04 100644
--- a/test/intrinsics/gen/modf/3b79d5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/modf/3b79d5.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
          %18 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %modf_3b79d5 "modf_3b79d5"
                OpName %arg_1 "arg_1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %16 = OpConstantNull %v3float
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %modf_3b79d5 = OpFunction %void None %9
          %12 = OpLabel
@@ -50,26 +49,25 @@
                OpStore %res %17
                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 %modf_3b79d5
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %modf_3b79d5
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %modf_3b79d5
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %modf_3b79d5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %modf_3b79d5
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %modf_3b79d5
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/modf/3d00e2.wgsl.expected.spvasm b/test/intrinsics/gen/modf/3d00e2.wgsl.expected.spvasm
index 35ccc6a..1fb0904 100644
--- a/test/intrinsics/gen/modf/3d00e2.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/modf/3d00e2.wgsl.expected.spvasm
@@ -5,70 +5,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %modf_3d00e2 "modf_3d00e2"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-      %arg_1 = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+      %arg_1 = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %modf_3d00e2 = OpFunction %void None %11
          %14 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %15 = OpExtInst %v4float %16 Modf %8 %arg_1
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %15 = OpExtInst %v4float %16 Modf %5 %arg_1
                OpStore %res %15
                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 %modf_3d00e2
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %11
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %modf_3d00e2
-         %28 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %11
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %modf_3d00e2
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %modf_3d00e2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %11
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %modf_3d00e2
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %modf_3d00e2
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/modf/4bb324.wgsl.expected.spvasm b/test/intrinsics/gen/modf/4bb324.wgsl.expected.spvasm
index e654ee6..8a27a60 100644
--- a/test/intrinsics/gen/modf/4bb324.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/modf/4bb324.wgsl.expected.spvasm
@@ -5,69 +5,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %modf_4bb324 "modf_4bb324"
                OpName %arg_1 "arg_1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %modf_4bb324 = OpFunction %void None %9
          %12 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v4float Function %8
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %15 = OpExtInst %v4float %16 Modf %8 %arg_1
+      %arg_1 = OpVariable %_ptr_Function_v4float Function %5
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %15 = OpExtInst %v4float %16 Modf %5 %arg_1
                OpStore %res %15
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %modf_4bb324
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %modf_4bb324
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %modf_4bb324
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %modf_4bb324
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %modf_4bb324
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %modf_4bb324
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/modf/4fe3d9.wgsl.expected.spvasm b/test/intrinsics/gen/modf/4fe3d9.wgsl.expected.spvasm
index a5dbaa0..519db9e 100644
--- a/test/intrinsics/gen/modf/4fe3d9.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/modf/4fe3d9.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
          %18 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %modf_4fe3d9 "modf_4fe3d9"
                OpName %arg_1 "arg_1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %16 = OpConstantNull %v3float
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %modf_4fe3d9 = OpFunction %void None %9
          %12 = OpLabel
@@ -50,26 +49,25 @@
                OpStore %res %17
                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 %modf_4fe3d9
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %modf_4fe3d9
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %modf_4fe3d9
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %modf_4fe3d9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %modf_4fe3d9
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %modf_4fe3d9
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/modf/51e4c6.wgsl.expected.spvasm b/test/intrinsics/gen/modf/51e4c6.wgsl.expected.spvasm
index 515cd31..c3cba65 100644
--- a/test/intrinsics/gen/modf/51e4c6.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/modf/51e4c6.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
          %18 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %modf_51e4c6 "modf_51e4c6"
                OpName %arg_1 "arg_1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %16 = OpConstantNull %v2float
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %modf_51e4c6 = OpFunction %void None %9
          %12 = OpLabel
@@ -50,26 +49,25 @@
                OpStore %res %17
                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 %modf_51e4c6
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %modf_51e4c6
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %modf_51e4c6
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %modf_51e4c6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %modf_51e4c6
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %modf_51e4c6
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/modf/546e09.wgsl.expected.spvasm b/test/intrinsics/gen/modf/546e09.wgsl.expected.spvasm
index 8c70ec3..c7cc15a 100644
--- a/test/intrinsics/gen/modf/546e09.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/modf/546e09.wgsl.expected.spvasm
@@ -5,69 +5,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %modf_546e09 "modf_546e09"
                OpName %arg_1 "arg_1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
     %float_1 = OpConstant %float 1
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
 %modf_546e09 = OpFunction %void None %9
          %12 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_float Function %4
-        %res = OpVariable %_ptr_Function_float Function %4
+      %arg_1 = OpVariable %_ptr_Function_float Function %8
+        %res = OpVariable %_ptr_Function_float Function %8
          %15 = OpExtInst %float %16 Modf %float_1 %arg_1
                OpStore %res %15
                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 %modf_546e09
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %modf_546e09
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %modf_546e09
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %modf_546e09
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %modf_546e09
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %modf_546e09
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/modf/5e8476.wgsl.expected.spvasm b/test/intrinsics/gen/modf/5e8476.wgsl.expected.spvasm
index f9c55e2..6b273c1 100644
--- a/test/intrinsics/gen/modf/5e8476.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/modf/5e8476.wgsl.expected.spvasm
@@ -5,70 +5,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %modf_5e8476 "modf_5e8476"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-%_ptr_Private_float = OpTypePointer Private %float
-      %arg_1 = OpVariable %_ptr_Private_float Private %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %10 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %10
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_float = OpTypePointer Private %float
+      %arg_1 = OpVariable %_ptr_Private_float Private %8
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
 %modf_5e8476 = OpFunction %void None %11
          %14 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %15 = OpExtInst %float %16 Modf %float_1 %arg_1
                OpStore %res %15
                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 %modf_5e8476
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %11
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %27 = OpFunctionCall %void %modf_5e8476
-         %28 = OpFunctionCall %void %tint_symbol_2 %10
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %11
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %modf_5e8476
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %modf_5e8476
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %11
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %modf_5e8476
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %modf_5e8476
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/modf/684d46.wgsl.expected.spvasm b/test/intrinsics/gen/modf/684d46.wgsl.expected.spvasm
index 9a37b68..b894f74 100644
--- a/test/intrinsics/gen/modf/684d46.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/modf/684d46.wgsl.expected.spvasm
@@ -1,47 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %modf_684d46 "modf_684d46"
                OpName %_modf_result "_modf_result"
                OpMemberName %_modf_result 0 "fract"
                OpMemberName %_modf_result 1 "whole"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %_modf_result 0 Offset 0
                OpMemberDecorate %_modf_result 1 Offset 4
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_modf_result = OpTypeStruct %float %float
     %float_1 = OpConstant %float 1
 %_ptr_Function__modf_result = OpTypePointer Function %_modf_result
          %19 = OpConstantNull %_modf_result
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
 %modf_684d46 = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function__modf_result Function %19
@@ -49,26 +48,25 @@
                OpStore %res %13
                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 %modf_684d46
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %modf_684d46
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %modf_684d46
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %modf_684d46
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %modf_684d46
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %modf_684d46
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/modf/86441c.wgsl.expected.spvasm b/test/intrinsics/gen/modf/86441c.wgsl.expected.spvasm
index 3567057..e96d96a 100644
--- a/test/intrinsics/gen/modf/86441c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/modf/86441c.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
          %18 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %modf_86441c "modf_86441c"
                OpName %arg_1 "arg_1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %16 = OpConstantNull %v2float
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %modf_86441c = OpFunction %void None %9
          %12 = OpLabel
@@ -50,26 +49,25 @@
                OpStore %res %17
                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 %modf_86441c
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %modf_86441c
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %modf_86441c
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %modf_86441c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %modf_86441c
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %modf_86441c
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/modf/955651.wgsl.expected.spvasm b/test/intrinsics/gen/modf/955651.wgsl.expected.spvasm
index 01fe4be..9e293c5 100644
--- a/test/intrinsics/gen/modf/955651.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/modf/955651.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
          %18 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %modf_955651 "modf_955651"
                OpName %arg_1 "arg_1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %16 = OpConstantNull %v3float
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %modf_955651 = OpFunction %void None %9
          %12 = OpLabel
@@ -50,26 +49,25 @@
                OpStore %res %17
                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 %modf_955651
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %modf_955651
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %modf_955651
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %modf_955651
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %modf_955651
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %modf_955651
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/modf/9b44a9.wgsl.expected.spvasm b/test/intrinsics/gen/modf/9b44a9.wgsl.expected.spvasm
index c15a37c..9ebd596 100644
--- a/test/intrinsics/gen/modf/9b44a9.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/modf/9b44a9.wgsl.expected.spvasm
@@ -1,74 +1,72 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %modf_9b44a9 "modf_9b44a9"
                OpName %_modf_result_vec4 "_modf_result_vec4"
                OpMemberName %_modf_result_vec4 0 "fract"
                OpMemberName %_modf_result_vec4 1 "whole"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %_modf_result_vec4 0 Offset 0
                OpMemberDecorate %_modf_result_vec4 1 Offset 16
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_modf_result_vec4 = OpTypeStruct %v4float %v4float
 %_ptr_Function__modf_result_vec4 = OpTypePointer Function %_modf_result_vec4
          %18 = OpConstantNull %_modf_result_vec4
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %modf_9b44a9 = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function__modf_result_vec4 Function %18
-         %13 = OpExtInst %_modf_result_vec4 %15 ModfStruct %8
+         %13 = OpExtInst %_modf_result_vec4 %15 ModfStruct %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %modf_9b44a9
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %modf_9b44a9
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %modf_9b44a9
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %modf_9b44a9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %modf_9b44a9
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %modf_9b44a9
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/modf/9c6a91.wgsl.expected.spvasm b/test/intrinsics/gen/modf/9c6a91.wgsl.expected.spvasm
index 5ebe38b..51f0b81 100644
--- a/test/intrinsics/gen/modf/9c6a91.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/modf/9c6a91.wgsl.expected.spvasm
@@ -5,72 +5,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
          %18 = OpExtInstImport "GLSL.std.450"
                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_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %modf_9c6a91 "modf_9c6a91"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-    %v2float = OpTypeVector %float 2
-%_ptr_Private_v2float = OpTypePointer Private %v2float
-          %8 = OpConstantNull %v2float
-      %arg_1 = OpVariable %_ptr_Private_v2float Private %8
     %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
+    %v2float = OpTypeVector %float 2
+%_ptr_Private_v2float = OpTypePointer Private %v2float
+         %12 = OpConstantNull %v2float
+      %arg_1 = OpVariable %_ptr_Private_v2float Private %12
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %modf_9c6a91 = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v2float Function %8
-         %17 = OpExtInst %v2float %18 Modf %8 %arg_1
+        %res = OpVariable %_ptr_Function_v2float Function %12
+         %17 = OpExtInst %v2float %18 Modf %12 %arg_1
                OpStore %res %17
                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 %modf_9c6a91
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %modf_9c6a91
-         %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 %modf_9c6a91
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %modf_9c6a91
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %modf_9c6a91
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %modf_9c6a91
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/modf/9cecfc.wgsl.expected.spvasm b/test/intrinsics/gen/modf/9cecfc.wgsl.expected.spvasm
index 70dd5db..4ede6a0 100644
--- a/test/intrinsics/gen/modf/9cecfc.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/modf/9cecfc.wgsl.expected.spvasm
@@ -5,72 +5,70 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
          %18 = OpExtInstImport "GLSL.std.450"
                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_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %modf_9cecfc "modf_9cecfc"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-    %v3float = OpTypeVector %float 3
-%_ptr_Private_v3float = OpTypePointer Private %v3float
-          %8 = OpConstantNull %v3float
-      %arg_1 = OpVariable %_ptr_Private_v3float Private %8
     %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
+    %v3float = OpTypeVector %float 3
+%_ptr_Private_v3float = OpTypePointer Private %v3float
+         %12 = OpConstantNull %v3float
+      %arg_1 = OpVariable %_ptr_Private_v3float Private %12
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %modf_9cecfc = OpFunction %void None %13
          %16 = OpLabel
-        %res = OpVariable %_ptr_Function_v3float Function %8
-         %17 = OpExtInst %v3float %18 Modf %8 %arg_1
+        %res = OpVariable %_ptr_Function_v3float Function %12
+         %17 = OpExtInst %v3float %18 Modf %12 %arg_1
                OpStore %res %17
                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 %modf_9cecfc
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %modf_9cecfc
-         %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 %modf_9cecfc
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %modf_9cecfc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %modf_9cecfc
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %modf_9cecfc
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/modf/a128ab.wgsl.expected.spvasm b/test/intrinsics/gen/modf/a128ab.wgsl.expected.spvasm
index 11efafb..bf073c2 100644
--- a/test/intrinsics/gen/modf/a128ab.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/modf/a128ab.wgsl.expected.spvasm
@@ -5,30 +5,33 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 24
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
          %13 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_1 "arg_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %modf_a128ab "modf_a128ab"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
       %float = OpTypeFloat 32
     %v2float = OpTypeVector %float 2
 %_ptr_Workgroup_v2float = OpTypePointer Workgroup %v2float
       %arg_1 = OpVariable %_ptr_Workgroup_v2float Workgroup
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
          %14 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
+         %18 = OpTypeFunction %void %uint
      %uint_2 = OpConstant %uint 2
    %uint_264 = OpConstant %uint 264
 %modf_a128ab = OpFunction %void None %8
@@ -38,10 +41,17 @@
                OpStore %res %12
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %8
-         %19 = OpLabel
+%compute_main_inner = OpFunction %void None %18
+%local_invocation_index = OpFunctionParameter %uint
+         %21 = OpLabel
                OpStore %arg_1 %14
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %23 = OpFunctionCall %void %modf_a128ab
+         %25 = OpFunctionCall %void %modf_a128ab
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %8
+         %27 = OpLabel
+         %29 = OpLoad %uint %local_invocation_index_1
+         %28 = OpFunctionCall %void %compute_main_inner %29
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/modf/a54eca.wgsl.expected.spvasm b/test/intrinsics/gen/modf/a54eca.wgsl.expected.spvasm
index 99928e1..fd65cd4 100644
--- a/test/intrinsics/gen/modf/a54eca.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/modf/a54eca.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
          %18 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %modf_a54eca "modf_a54eca"
                OpName %arg_1 "arg_1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %16 = OpConstantNull %v2float
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %modf_a54eca = OpFunction %void None %9
          %12 = OpLabel
@@ -50,26 +49,25 @@
                OpStore %res %17
                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 %modf_a54eca
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %modf_a54eca
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %modf_a54eca
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %modf_a54eca
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %modf_a54eca
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %modf_a54eca
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/modf/bb9088.wgsl.expected.spvasm b/test/intrinsics/gen/modf/bb9088.wgsl.expected.spvasm
index a96eee6..1b136c0 100644
--- a/test/intrinsics/gen/modf/bb9088.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/modf/bb9088.wgsl.expected.spvasm
@@ -5,30 +5,33 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 24
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
          %13 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_1 "arg_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %modf_bb9088 "modf_bb9088"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
       %float = OpTypeFloat 32
     %v3float = OpTypeVector %float 3
 %_ptr_Workgroup_v3float = OpTypePointer Workgroup %v3float
       %arg_1 = OpVariable %_ptr_Workgroup_v3float Workgroup
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
          %14 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
+         %18 = OpTypeFunction %void %uint
      %uint_2 = OpConstant %uint 2
    %uint_264 = OpConstant %uint 264
 %modf_bb9088 = OpFunction %void None %8
@@ -38,10 +41,17 @@
                OpStore %res %12
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %8
-         %19 = OpLabel
+%compute_main_inner = OpFunction %void None %18
+%local_invocation_index = OpFunctionParameter %uint
+         %21 = OpLabel
                OpStore %arg_1 %14
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %23 = OpFunctionCall %void %modf_bb9088
+         %25 = OpFunctionCall %void %modf_bb9088
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %8
+         %27 = OpLabel
+         %29 = OpLoad %uint %local_invocation_index_1
+         %28 = OpFunctionCall %void %compute_main_inner %29
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/modf/c87851.wgsl.expected.spvasm b/test/intrinsics/gen/modf/c87851.wgsl.expected.spvasm
index d8cbd3d..debd919 100644
--- a/test/intrinsics/gen/modf/c87851.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/modf/c87851.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %modf_c87851 "modf_c87851"
                OpName %_modf_result_vec2 "_modf_result_vec2"
                OpMemberName %_modf_result_vec2 0 "fract"
                OpMemberName %_modf_result_vec2 1 "whole"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %_modf_result_vec2 0 Offset 0
                OpMemberDecorate %_modf_result_vec2 1 Offset 8
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -42,7 +41,7 @@
          %17 = OpConstantNull %v2float
 %_ptr_Function__modf_result_vec2 = OpTypePointer Function %_modf_result_vec2
          %20 = OpConstantNull %_modf_result_vec2
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %modf_c87851 = OpFunction %void None %9
          %12 = OpLabel
@@ -51,26 +50,25 @@
                OpStore %res %13
                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 %modf_c87851
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %modf_c87851
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %modf_c87851
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %modf_c87851
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %modf_c87851
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %modf_c87851
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/modf/d1d6f6.wgsl.expected.spvasm b/test/intrinsics/gen/modf/d1d6f6.wgsl.expected.spvasm
index aa8a3b8..cee0c29 100644
--- a/test/intrinsics/gen/modf/d1d6f6.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/modf/d1d6f6.wgsl.expected.spvasm
@@ -5,69 +5,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %modf_d1d6f6 "modf_d1d6f6"
                OpName %arg_1 "arg_1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %modf_d1d6f6 = OpFunction %void None %9
          %12 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v4float Function %8
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %15 = OpExtInst %v4float %16 Modf %8 %arg_1
+      %arg_1 = OpVariable %_ptr_Function_v4float Function %5
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %15 = OpExtInst %v4float %16 Modf %5 %arg_1
                OpStore %res %15
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %modf_d1d6f6
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %modf_d1d6f6
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %modf_d1d6f6
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %modf_d1d6f6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %modf_d1d6f6
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %modf_d1d6f6
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/modf/e38ae6.wgsl.expected.spvasm b/test/intrinsics/gen/modf/e38ae6.wgsl.expected.spvasm
index 8f99be8..2143769 100644
--- a/test/intrinsics/gen/modf/e38ae6.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/modf/e38ae6.wgsl.expected.spvasm
@@ -5,30 +5,33 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 24
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
          %12 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %arg_1 "arg_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %modf_e38ae6 "modf_e38ae6"
                OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
       %float = OpTypeFloat 32
 %_ptr_Workgroup_float = OpTypePointer Workgroup %float
       %arg_1 = OpVariable %_ptr_Workgroup_float Workgroup
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
           %7 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
          %17 = OpConstantNull %float
+         %18 = OpTypeFunction %void %uint
      %uint_2 = OpConstant %uint 2
    %uint_264 = OpConstant %uint 264
 %modf_e38ae6 = OpFunction %void None %7
@@ -38,10 +41,17 @@
                OpStore %res %11
                OpReturn
                OpFunctionEnd
-%compute_main = OpFunction %void None %7
-         %19 = OpLabel
+%compute_main_inner = OpFunction %void None %18
+%local_invocation_index = OpFunctionParameter %uint
+         %21 = OpLabel
                OpStore %arg_1 %17
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %23 = OpFunctionCall %void %modf_e38ae6
+         %25 = OpFunctionCall %void %modf_e38ae6
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %7
+         %27 = OpLabel
+         %29 = OpLoad %uint %local_invocation_index_1
+         %28 = OpFunctionCall %void %compute_main_inner %29
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/modf/e83560.wgsl.expected.spvasm b/test/intrinsics/gen/modf/e83560.wgsl.expected.spvasm
index 99f906d..2423923 100644
--- a/test/intrinsics/gen/modf/e83560.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/modf/e83560.wgsl.expected.spvasm
@@ -5,69 +5,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %modf_e83560 "modf_e83560"
                OpName %arg_1 "arg_1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %modf_e83560 = OpFunction %void None %9
          %12 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_v4float Function %8
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %15 = OpExtInst %v4float %16 Modf %8 %arg_1
+      %arg_1 = OpVariable %_ptr_Function_v4float Function %5
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %15 = OpExtInst %v4float %16 Modf %5 %arg_1
                OpStore %res %15
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %modf_e83560
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %modf_e83560
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %modf_e83560
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %modf_e83560
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %modf_e83560
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %modf_e83560
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/modf/f90945.wgsl.expected.spvasm b/test/intrinsics/gen/modf/f90945.wgsl.expected.spvasm
index 29b6948..57391db 100644
--- a/test/intrinsics/gen/modf/f90945.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/modf/f90945.wgsl.expected.spvasm
@@ -5,69 +5,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %modf_f90945 "modf_f90945"
                OpName %arg_1 "arg_1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
     %float_1 = OpConstant %float 1
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
 %modf_f90945 = OpFunction %void None %9
          %12 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_float Function %4
-        %res = OpVariable %_ptr_Function_float Function %4
+      %arg_1 = OpVariable %_ptr_Function_float Function %8
+        %res = OpVariable %_ptr_Function_float Function %8
          %15 = OpExtInst %float %16 Modf %float_1 %arg_1
                OpStore %res %15
                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 %modf_f90945
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %modf_f90945
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %modf_f90945
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %modf_f90945
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %modf_f90945
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %modf_f90945
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/normalize/64d8c0.wgsl.expected.spvasm b/test/intrinsics/gen/normalize/64d8c0.wgsl.expected.spvasm
index 311fe46..914973a 100644
--- a/test/intrinsics/gen/normalize/64d8c0.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/normalize/64d8c0.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %normalize_64d8c0 "normalize_64d8c0"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %normalize_64d8c0 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %normalize_64d8c0
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %normalize_64d8c0
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %normalize_64d8c0
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %normalize_64d8c0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %normalize_64d8c0
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %normalize_64d8c0
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/normalize/9a0aab.wgsl.expected.spvasm b/test/intrinsics/gen/normalize/9a0aab.wgsl.expected.spvasm
index 9a06b7e..7b18b6f 100644
--- a/test/intrinsics/gen/normalize/9a0aab.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/normalize/9a0aab.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %normalize_9a0aab "normalize_9a0aab"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %normalize_9a0aab = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Normalize %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Normalize %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %normalize_9a0aab
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %normalize_9a0aab
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %normalize_9a0aab
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %normalize_9a0aab
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %normalize_9a0aab
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %normalize_9a0aab
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.spvasm b/test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.spvasm
index 98db250..ed6aec3 100644
--- a/test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %normalize_fc2ef1 "normalize_fc2ef1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %normalize_fc2ef1 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %normalize_fc2ef1
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %normalize_fc2ef1
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %normalize_fc2ef1
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %normalize_fc2ef1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %normalize_fc2ef1
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %normalize_fc2ef1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.spvasm b/test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.spvasm
index 4ee8e50..257789a 100644
--- a/test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.spvasm
@@ -1,35 +1,34 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %pack2x16float_0e97b3 "pack2x16float_0e97b3"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -37,7 +36,7 @@
          %17 = OpConstantNull %v2float
 %_ptr_Function_uint = OpTypePointer Function %uint
          %20 = OpConstantNull %uint
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %pack2x16float_0e97b3 = OpFunction %void None %9
          %12 = OpLabel
@@ -46,26 +45,25 @@
                OpStore %res %13
                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 %pack2x16float_0e97b3
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %pack2x16float_0e97b3
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %pack2x16float_0e97b3
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %pack2x16float_0e97b3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %pack2x16float_0e97b3
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %pack2x16float_0e97b3
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.spvasm b/test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.spvasm
index b877da4..c7b4a14 100644
--- a/test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.spvasm
@@ -1,35 +1,34 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %pack2x16snorm_6c169b "pack2x16snorm_6c169b"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -37,7 +36,7 @@
          %17 = OpConstantNull %v2float
 %_ptr_Function_uint = OpTypePointer Function %uint
          %20 = OpConstantNull %uint
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %pack2x16snorm_6c169b = OpFunction %void None %9
          %12 = OpLabel
@@ -46,26 +45,25 @@
                OpStore %res %13
                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 %pack2x16snorm_6c169b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %pack2x16snorm_6c169b
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %pack2x16snorm_6c169b
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %pack2x16snorm_6c169b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %pack2x16snorm_6c169b
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %pack2x16snorm_6c169b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.spvasm b/test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.spvasm
index 448a04a..ca7368c 100644
--- a/test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.spvasm
@@ -1,35 +1,34 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %pack2x16unorm_0f08e4 "pack2x16unorm_0f08e4"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -37,7 +36,7 @@
          %17 = OpConstantNull %v2float
 %_ptr_Function_uint = OpTypePointer Function %uint
          %20 = OpConstantNull %uint
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %pack2x16unorm_0f08e4 = OpFunction %void None %9
          %12 = OpLabel
@@ -46,26 +45,25 @@
                OpStore %res %13
                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 %pack2x16unorm_0f08e4
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %pack2x16unorm_0f08e4
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %pack2x16unorm_0f08e4
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %pack2x16unorm_0f08e4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %pack2x16unorm_0f08e4
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %pack2x16unorm_0f08e4
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.spvasm b/test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.spvasm
index 2455ddf..34bcbe2 100644
--- a/test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.spvasm
@@ -1,69 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %pack4x8snorm_4d22e7 "pack4x8snorm_4d22e7"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
 %_ptr_Function_uint = OpTypePointer Function %uint
          %18 = OpConstantNull %uint
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %pack4x8snorm_4d22e7 = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %18
-         %13 = OpExtInst %uint %15 PackSnorm4x8 %8
+         %13 = OpExtInst %uint %15 PackSnorm4x8 %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %pack4x8snorm_4d22e7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %pack4x8snorm_4d22e7
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %pack4x8snorm_4d22e7
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %pack4x8snorm_4d22e7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %pack4x8snorm_4d22e7
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %pack4x8snorm_4d22e7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.spvasm b/test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.spvasm
index 88f6962..69e8a3f 100644
--- a/test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.spvasm
@@ -1,69 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %pack4x8unorm_95c456 "pack4x8unorm_95c456"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
 %_ptr_Function_uint = OpTypePointer Function %uint
          %18 = OpConstantNull %uint
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %pack4x8unorm_95c456 = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %18
-         %13 = OpExtInst %uint %15 PackUnorm4x8 %8
+         %13 = OpExtInst %uint %15 PackUnorm4x8 %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %pack4x8unorm_95c456
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %pack4x8unorm_95c456
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %pack4x8unorm_95c456
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %pack4x8unorm_95c456
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %pack4x8unorm_95c456
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %pack4x8unorm_95c456
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/pow/04a908.wgsl.expected.spvasm b/test/intrinsics/gen/pow/04a908.wgsl.expected.spvasm
index 387d9cb..200e5e4 100644
--- a/test/intrinsics/gen/pow/04a908.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/pow/04a908.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %pow_04a908 "pow_04a908"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %pow_04a908 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Pow %8 %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Pow %5 %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %pow_04a908
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %pow_04a908
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %pow_04a908
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %pow_04a908
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %pow_04a908
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %pow_04a908
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/pow/46e029.wgsl.expected.spvasm b/test/intrinsics/gen/pow/46e029.wgsl.expected.spvasm
index 8eadbb0..9fb5446 100644
--- a/test/intrinsics/gen/pow/46e029.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/pow/46e029.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %pow_46e029 "pow_46e029"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
  %pow_46e029 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Pow %float_1 %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %pow_46e029
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %pow_46e029
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %pow_46e029
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %pow_46e029
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %pow_46e029
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %pow_46e029
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/pow/4a46c9.wgsl.expected.spvasm b/test/intrinsics/gen/pow/4a46c9.wgsl.expected.spvasm
index d15b172..e6adbfe 100644
--- a/test/intrinsics/gen/pow/4a46c9.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/pow/4a46c9.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %pow_4a46c9 "pow_4a46c9"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %pow_4a46c9 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %pow_4a46c9
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %pow_4a46c9
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %pow_4a46c9
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %pow_4a46c9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %pow_4a46c9
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %pow_4a46c9
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/pow/e60ea5.wgsl.expected.spvasm b/test/intrinsics/gen/pow/e60ea5.wgsl.expected.spvasm
index 27bfedb..52c3db1 100644
--- a/test/intrinsics/gen/pow/e60ea5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/pow/e60ea5.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %pow_e60ea5 "pow_e60ea5"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %pow_e60ea5 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %pow_e60ea5
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %pow_e60ea5
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %pow_e60ea5
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %pow_e60ea5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %pow_e60ea5
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %pow_e60ea5
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/reflect/05357e.wgsl.expected.spvasm b/test/intrinsics/gen/reflect/05357e.wgsl.expected.spvasm
index e73594a..e3fc18d 100644
--- a/test/intrinsics/gen/reflect/05357e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/reflect/05357e.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %reflect_05357e "reflect_05357e"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %reflect_05357e = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Reflect %8 %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Reflect %5 %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %reflect_05357e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %reflect_05357e
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %reflect_05357e
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %reflect_05357e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %reflect_05357e
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %reflect_05357e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/reflect/b61e10.wgsl.expected.spvasm b/test/intrinsics/gen/reflect/b61e10.wgsl.expected.spvasm
index bb16320..24a2c10 100644
--- a/test/intrinsics/gen/reflect/b61e10.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/reflect/b61e10.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %reflect_b61e10 "reflect_b61e10"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %reflect_b61e10 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %reflect_b61e10
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %reflect_b61e10
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %reflect_b61e10
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %reflect_b61e10
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %reflect_b61e10
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %reflect_b61e10
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/reflect/f47fdb.wgsl.expected.spvasm b/test/intrinsics/gen/reflect/f47fdb.wgsl.expected.spvasm
index 845c705..b8ce4f7 100644
--- a/test/intrinsics/gen/reflect/f47fdb.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/reflect/f47fdb.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %reflect_f47fdb "reflect_f47fdb"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %reflect_f47fdb = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %reflect_f47fdb
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %reflect_f47fdb
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %reflect_f47fdb
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %reflect_f47fdb
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %reflect_f47fdb
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %reflect_f47fdb
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/refract/7e02e6.wgsl.expected.spvasm b/test/intrinsics/gen/refract/7e02e6.wgsl.expected.spvasm
index 7c94910..d3a15d7 100644
--- a/test/intrinsics/gen/refract/7e02e6.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/refract/7e02e6.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %refract_7e02e6 "refract_7e02e6"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
 %refract_7e02e6 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Refract %8 %8 %float_1
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Refract %5 %5 %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %refract_7e02e6
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %refract_7e02e6
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %refract_7e02e6
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %refract_7e02e6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %refract_7e02e6
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %refract_7e02e6
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/refract/cbc1d2.wgsl.expected.spvasm b/test/intrinsics/gen/refract/cbc1d2.wgsl.expected.spvasm
index 80bfe73..de16a55 100644
--- a/test/intrinsics/gen/refract/cbc1d2.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/refract/cbc1d2.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %refract_cbc1d2 "refract_cbc1d2"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
     %float_1 = OpConstant %float 1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
 %refract_cbc1d2 = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_v3float Function %16
@@ -44,26 +43,25 @@
                OpStore %res %13
                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 %refract_cbc1d2
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %refract_cbc1d2
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %refract_cbc1d2
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %refract_cbc1d2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %refract_cbc1d2
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %refract_cbc1d2
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/refract/cd905f.wgsl.expected.spvasm b/test/intrinsics/gen/refract/cd905f.wgsl.expected.spvasm
index 436a7ab..76d7a59 100644
--- a/test/intrinsics/gen/refract/cd905f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/refract/cd905f.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %refract_cd905f "refract_cd905f"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
     %float_1 = OpConstant %float 1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %20 = OpTypeFunction %void %v4float
+         %20 = OpTypeFunction %v4float
 %refract_cd905f = OpFunction %void None %9
          %12 = OpLabel
         %res = OpVariable %_ptr_Function_v2float Function %16
@@ -44,26 +43,25 @@
                OpStore %res %13
                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 %refract_cd905f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %refract_cd905f
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %26 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %26
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %refract_cd905f
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %refract_cd905f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %refract_cd905f
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %refract_cd905f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/reverseBits/222177.wgsl.expected.spvasm b/test/intrinsics/gen/reverseBits/222177.wgsl.expected.spvasm
index 7a72b2c..5f046b0 100644
--- a/test/intrinsics/gen/reverseBits/222177.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/reverseBits/222177.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %reverseBits_222177 "reverseBits_222177"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
          %16 = OpConstantNull %v2int
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %reverseBits_222177 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %reverseBits_222177
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %reverseBits_222177
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %reverseBits_222177
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %reverseBits_222177
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %reverseBits_222177
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %reverseBits_222177
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.spvasm b/test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.spvasm
index 107b474..4db3d73 100644
--- a/test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %reverseBits_35fea9 "reverseBits_35fea9"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v4uint = OpTypeVector %uint 4
          %16 = OpConstantNull %v4uint
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %reverseBits_35fea9 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %reverseBits_35fea9
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %reverseBits_35fea9
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %reverseBits_35fea9
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %reverseBits_35fea9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %reverseBits_35fea9
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %reverseBits_35fea9
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.spvasm b/test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.spvasm
index 040a433..316876d 100644
--- a/test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %reverseBits_4dbd6f "reverseBits_4dbd6f"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v4int = OpTypeVector %int 4
          %16 = OpConstantNull %v4int
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %reverseBits_4dbd6f = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %reverseBits_4dbd6f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %reverseBits_4dbd6f
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %reverseBits_4dbd6f
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %reverseBits_4dbd6f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %reverseBits_4dbd6f
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %reverseBits_4dbd6f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.spvasm b/test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.spvasm
index 9201251..1811bbc 100644
--- a/test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %reverseBits_7c4269 "reverseBits_7c4269"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %18 = OpConstantNull %int
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %reverseBits_7c4269 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %reverseBits_7c4269
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %reverseBits_7c4269
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %reverseBits_7c4269
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %reverseBits_7c4269
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %reverseBits_7c4269
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %reverseBits_7c4269
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.spvasm b/test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.spvasm
index 11dbeb9..6b44df5 100644
--- a/test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %reverseBits_a6ccd4 "reverseBits_a6ccd4"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
          %16 = OpConstantNull %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %reverseBits_a6ccd4 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %reverseBits_a6ccd4
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %reverseBits_a6ccd4
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %reverseBits_a6ccd4
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %reverseBits_a6ccd4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %reverseBits_a6ccd4
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %reverseBits_a6ccd4
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.spvasm b/test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.spvasm
index d1e61d6..9fcc4de 100644
--- a/test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %reverseBits_c21bc1 "reverseBits_c21bc1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
          %16 = OpConstantNull %v3int
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %reverseBits_c21bc1 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %reverseBits_c21bc1
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %reverseBits_c21bc1
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %reverseBits_c21bc1
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %reverseBits_c21bc1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %reverseBits_c21bc1
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %reverseBits_c21bc1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.spvasm b/test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.spvasm
index d6b4d88..261fa99 100644
--- a/test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %reverseBits_e1f4c1 "reverseBits_e1f4c1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
          %16 = OpConstantNull %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %reverseBits_e1f4c1 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %reverseBits_e1f4c1
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %reverseBits_e1f4c1
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %reverseBits_e1f4c1
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %reverseBits_e1f4c1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %reverseBits_e1f4c1
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %reverseBits_e1f4c1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.spvasm b/test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.spvasm
index d40e31b..9f44dbe 100644
--- a/test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %reverseBits_e31adf "reverseBits_e31adf"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %18 = OpConstantNull %uint
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %reverseBits_e31adf = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %reverseBits_e31adf
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %reverseBits_e31adf
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %reverseBits_e31adf
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %reverseBits_e31adf
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %reverseBits_e31adf
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %reverseBits_e31adf
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/round/106c0b.wgsl.expected.spvasm b/test/intrinsics/gen/round/106c0b.wgsl.expected.spvasm
index 2227569..b0204e7 100644
--- a/test/intrinsics/gen/round/106c0b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/round/106c0b.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %round_106c0b "round_106c0b"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %round_106c0b = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 RoundEven %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 RoundEven %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %round_106c0b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %round_106c0b
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %round_106c0b
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %round_106c0b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %round_106c0b
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %round_106c0b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/round/1c7897.wgsl.expected.spvasm b/test/intrinsics/gen/round/1c7897.wgsl.expected.spvasm
index 6228f41..925cea4 100644
--- a/test/intrinsics/gen/round/1c7897.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/round/1c7897.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %round_1c7897 "round_1c7897"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %round_1c7897 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %round_1c7897
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %round_1c7897
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %round_1c7897
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %round_1c7897
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %round_1c7897
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %round_1c7897
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/round/52c84d.wgsl.expected.spvasm b/test/intrinsics/gen/round/52c84d.wgsl.expected.spvasm
index e8ef366..78f53964 100644
--- a/test/intrinsics/gen/round/52c84d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/round/52c84d.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %round_52c84d "round_52c84d"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %round_52c84d = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %round_52c84d
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %round_52c84d
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %round_52c84d
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %round_52c84d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %round_52c84d
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %round_52c84d
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/round/9edc38.wgsl.expected.spvasm b/test/intrinsics/gen/round/9edc38.wgsl.expected.spvasm
index 977d0ac..604b2b3 100644
--- a/test/intrinsics/gen/round/9edc38.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/round/9edc38.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %round_9edc38 "round_9edc38"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
 %round_9edc38 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 RoundEven %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %round_9edc38
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %round_9edc38
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %round_9edc38
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %round_9edc38
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %round_9edc38
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %round_9edc38
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/00b848.wgsl.expected.spvasm b/test/intrinsics/gen/select/00b848.wgsl.expected.spvasm
index f1f6047..b4ab55c 100644
--- a/test/intrinsics/gen/select/00b848.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/00b848.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_00b848 "select_00b848"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -38,7 +37,7 @@
          %18 = OpConstantNull %v2bool
          %19 = OpConstantNull %v2int
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_00b848 = OpFunction %void None %9
          %12 = OpLabel
@@ -47,26 +46,25 @@
                OpStore %res %13
                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 %select_00b848
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %select_00b848
-         %30 = OpFunctionCall %void %tint_symbol_2 %8
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %select_00b848
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %select_00b848
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %select_00b848
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %select_00b848
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/01e2cd.wgsl.expected.spvasm b/test/intrinsics/gen/select/01e2cd.wgsl.expected.spvasm
index 9ebcbef..f2bc1f9 100644
--- a/test/intrinsics/gen/select/01e2cd.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/01e2cd.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_01e2cd "select_01e2cd"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -38,7 +37,7 @@
          %18 = OpConstantNull %v3bool
          %19 = OpConstantNull %v3int
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_01e2cd = OpFunction %void None %9
          %12 = OpLabel
@@ -47,26 +46,25 @@
                OpStore %res %13
                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 %select_01e2cd
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %select_01e2cd
-         %30 = OpFunctionCall %void %tint_symbol_2 %8
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %select_01e2cd
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %select_01e2cd
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %select_01e2cd
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %select_01e2cd
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/087ea4.wgsl.expected.spvasm b/test/intrinsics/gen/select/087ea4.wgsl.expected.spvasm
index 5bce791..c1ea2cd 100644
--- a/test/intrinsics/gen/select/087ea4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/087ea4.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_087ea4 "select_087ea4"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -40,7 +39,7 @@
 %_ptr_Function_v4bool = OpTypePointer Function %v4bool
          %22 = OpConstantNull %v4bool
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_087ea4 = OpFunction %void None %9
          %12 = OpLabel
@@ -51,26 +50,25 @@
                OpStore %res %13
                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 %select_087ea4
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %select_087ea4
-         %34 = OpFunctionCall %void %tint_symbol_2 %8
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %select_087ea4
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %select_087ea4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %select_087ea4
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %select_087ea4
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/1e960b.wgsl.expected.spvasm b/test/intrinsics/gen/select/1e960b.wgsl.expected.spvasm
index 9a8cc2b..62b963c 100644
--- a/test/intrinsics/gen/select/1e960b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/1e960b.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_1e960b "select_1e960b"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -38,7 +37,7 @@
          %18 = OpConstantNull %v2bool
          %19 = OpConstantNull %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_1e960b = OpFunction %void None %9
          %12 = OpLabel
@@ -47,26 +46,25 @@
                OpStore %res %13
                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 %select_1e960b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %select_1e960b
-         %30 = OpFunctionCall %void %tint_symbol_2 %8
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %select_1e960b
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %select_1e960b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %select_1e960b
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %select_1e960b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/266aff.wgsl.expected.spvasm b/test/intrinsics/gen/select/266aff.wgsl.expected.spvasm
index 699b1d6..4dad59d 100644
--- a/test/intrinsics/gen/select/266aff.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/266aff.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_266aff "select_266aff"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -37,7 +36,7 @@
          %17 = OpConstantNull %v2bool
          %18 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_266aff = OpFunction %void None %9
          %12 = OpLabel
@@ -46,26 +45,25 @@
                OpStore %res %13
                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 %select_266aff
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %select_266aff
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %select_266aff
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %select_266aff
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %select_266aff
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %select_266aff
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/28a27e.wgsl.expected.spvasm b/test/intrinsics/gen/select/28a27e.wgsl.expected.spvasm
index 5201a47..31dbbac 100644
--- a/test/intrinsics/gen/select/28a27e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/28a27e.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_28a27e "select_28a27e"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -38,7 +37,7 @@
          %18 = OpConstantNull %v3bool
          %19 = OpConstantNull %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_28a27e = OpFunction %void None %9
          %12 = OpLabel
@@ -47,26 +46,25 @@
                OpStore %res %13
                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 %select_28a27e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %select_28a27e
-         %30 = OpFunctionCall %void %tint_symbol_2 %8
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %select_28a27e
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %select_28a27e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %select_28a27e
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %select_28a27e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/3c25ce.wgsl.expected.spvasm b/test/intrinsics/gen/select/3c25ce.wgsl.expected.spvasm
index 69a85cf..f4b03d4 100644
--- a/test/intrinsics/gen/select/3c25ce.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/3c25ce.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_3c25ce "select_3c25ce"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -36,7 +35,7 @@
          %16 = OpConstantNull %bool
          %17 = OpConstantNull %v3bool
 %_ptr_Function_v3bool = OpTypePointer Function %v3bool
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_3c25ce = OpFunction %void None %9
          %12 = OpLabel
@@ -47,26 +46,25 @@
                OpStore %res %13
                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 %select_3c25ce
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %select_3c25ce
-         %30 = OpFunctionCall %void %tint_symbol_2 %8
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %select_3c25ce
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %select_3c25ce
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %select_3c25ce
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %select_3c25ce
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/416e14.wgsl.expected.spvasm b/test/intrinsics/gen/select/416e14.wgsl.expected.spvasm
index e4ca7f8..0ab2931 100644
--- a/test/intrinsics/gen/select/416e14.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/416e14.wgsl.expected.spvasm
@@ -1,68 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_416e14 "select_416e14"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
          %15 = OpConstantNull %bool
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
 %select_416e14 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpSelect %float %15 %float_1 %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %select_416e14
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %select_416e14
-         %26 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %select_416e14
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %select_416e14
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %select_416e14
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %select_416e14
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/51b047.wgsl.expected.spvasm b/test/intrinsics/gen/select/51b047.wgsl.expected.spvasm
index 92f4126..617dea6 100644
--- a/test/intrinsics/gen/select/51b047.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/51b047.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_51b047 "select_51b047"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -40,7 +39,7 @@
 %_ptr_Function_v2bool = OpTypePointer Function %v2bool
          %22 = OpConstantNull %v2bool
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_51b047 = OpFunction %void None %9
          %12 = OpLabel
@@ -51,26 +50,25 @@
                OpStore %res %13
                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 %select_51b047
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %select_51b047
-         %34 = OpFunctionCall %void %tint_symbol_2 %8
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %select_51b047
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %select_51b047
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %select_51b047
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %select_51b047
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/713567.wgsl.expected.spvasm b/test/intrinsics/gen/select/713567.wgsl.expected.spvasm
index 4110e30..e4c5aca 100644
--- a/test/intrinsics/gen/select/713567.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/713567.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_713567 "select_713567"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -37,37 +36,36 @@
 %_ptr_Function_v4bool = OpTypePointer Function %v4bool
          %19 = OpConstantNull %v4bool
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_713567 = OpFunction %void None %9
          %12 = OpLabel
          %17 = OpVariable %_ptr_Function_v4bool Function %19
-        %res = OpVariable %_ptr_Function_v4float Function %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpCompositeConstruct %v4bool %15 %15 %15 %15
-         %13 = OpSelect %v4float %20 %8 %8
+         %13 = OpSelect %v4float %20 %5 %5
                OpStore %res %13
                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 %select_713567
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %select_713567
-         %31 = OpFunctionCall %void %tint_symbol_2 %8
+         %29 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %29
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %select_713567
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %select_713567
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %select_713567
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %select_713567
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/78be5f.wgsl.expected.spvasm b/test/intrinsics/gen/select/78be5f.wgsl.expected.spvasm
index fe5a983..71a7603 100644
--- a/test/intrinsics/gen/select/78be5f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/78be5f.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_78be5f "select_78be5f"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -39,7 +38,7 @@
 %_ptr_Function_v3bool = OpTypePointer Function %v3bool
          %21 = OpConstantNull %v3bool
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_78be5f = OpFunction %void None %9
          %12 = OpLabel
@@ -50,26 +49,25 @@
                OpStore %res %13
                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 %select_78be5f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %select_78be5f
-         %33 = OpFunctionCall %void %tint_symbol_2 %8
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %select_78be5f
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %select_78be5f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %select_78be5f
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %select_78be5f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/80a9a9.wgsl.expected.spvasm b/test/intrinsics/gen/select/80a9a9.wgsl.expected.spvasm
index 71bf522..bf4c72e 100644
--- a/test/intrinsics/gen/select/80a9a9.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/80a9a9.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_80a9a9 "select_80a9a9"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
      %v3bool = OpTypeVector %bool 3
          %16 = OpConstantNull %v3bool
 %_ptr_Function_v3bool = OpTypePointer Function %v3bool
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_80a9a9 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %select_80a9a9
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %select_80a9a9
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %select_80a9a9
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %select_80a9a9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %select_80a9a9
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %select_80a9a9
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/8fa62c.wgsl.expected.spvasm b/test/intrinsics/gen/select/8fa62c.wgsl.expected.spvasm
index d939dc5..a2ada45 100644
--- a/test/intrinsics/gen/select/8fa62c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/8fa62c.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_8fa62c "select_8fa62c"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -40,7 +39,7 @@
 %_ptr_Function_v3bool = OpTypePointer Function %v3bool
          %22 = OpConstantNull %v3bool
 %_ptr_Function_v3int = OpTypePointer Function %v3int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_8fa62c = OpFunction %void None %9
          %12 = OpLabel
@@ -51,26 +50,25 @@
                OpStore %res %13
                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 %select_8fa62c
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %select_8fa62c
-         %34 = OpFunctionCall %void %tint_symbol_2 %8
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %select_8fa62c
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %select_8fa62c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %select_8fa62c
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %select_8fa62c
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/99f883.wgsl.expected.spvasm b/test/intrinsics/gen/select/99f883.wgsl.expected.spvasm
index 489f6dd..9ef43b9 100644
--- a/test/intrinsics/gen/select/99f883.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/99f883.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_99f883 "select_99f883"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -37,7 +36,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %20 = OpConstantNull %uint
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_99f883 = OpFunction %void None %9
          %12 = OpLabel
@@ -46,26 +45,25 @@
                OpStore %res %13
                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 %select_99f883
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %select_99f883
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %select_99f883
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %select_99f883
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %select_99f883
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %select_99f883
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/a2860e.wgsl.expected.spvasm b/test/intrinsics/gen/select/a2860e.wgsl.expected.spvasm
index 2d5f710..9dd2601 100644
--- a/test/intrinsics/gen/select/a2860e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/a2860e.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_a2860e "select_a2860e"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -38,7 +37,7 @@
          %18 = OpConstantNull %v4bool
          %19 = OpConstantNull %v4int
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_a2860e = OpFunction %void None %9
          %12 = OpLabel
@@ -47,26 +46,25 @@
                OpStore %res %13
                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 %select_a2860e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %select_a2860e
-         %30 = OpFunctionCall %void %tint_symbol_2 %8
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %select_a2860e
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %select_a2860e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %select_a2860e
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %select_a2860e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/ab069f.wgsl.expected.spvasm b/test/intrinsics/gen/select/ab069f.wgsl.expected.spvasm
index bfd69fc..76d001f 100644
--- a/test/intrinsics/gen/select/ab069f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/ab069f.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_ab069f "select_ab069f"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -40,7 +39,7 @@
 %_ptr_Function_v4bool = OpTypePointer Function %v4bool
          %22 = OpConstantNull %v4bool
 %_ptr_Function_v4int = OpTypePointer Function %v4int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_ab069f = OpFunction %void None %9
          %12 = OpLabel
@@ -51,26 +50,25 @@
                OpStore %res %13
                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 %select_ab069f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %select_ab069f
-         %34 = OpFunctionCall %void %tint_symbol_2 %8
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %select_ab069f
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %select_ab069f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %select_ab069f
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %select_ab069f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/b04721.wgsl.expected.spvasm b/test/intrinsics/gen/select/b04721.wgsl.expected.spvasm
index 83b9a7d..7324fa3 100644
--- a/test/intrinsics/gen/select/b04721.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/b04721.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_b04721 "select_b04721"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -40,7 +39,7 @@
 %_ptr_Function_v3bool = OpTypePointer Function %v3bool
          %22 = OpConstantNull %v3bool
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_b04721 = OpFunction %void None %9
          %12 = OpLabel
@@ -51,26 +50,25 @@
                OpStore %res %13
                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 %select_b04721
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %select_b04721
-         %34 = OpFunctionCall %void %tint_symbol_2 %8
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %select_b04721
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %select_b04721
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %select_b04721
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %select_b04721
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/bb447f.wgsl.expected.spvasm b/test/intrinsics/gen/select/bb447f.wgsl.expected.spvasm
index d8dbed2..9580506 100644
--- a/test/intrinsics/gen/select/bb447f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/bb447f.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_bb447f "select_bb447f"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -40,7 +39,7 @@
 %_ptr_Function_v2bool = OpTypePointer Function %v2bool
          %22 = OpConstantNull %v2bool
 %_ptr_Function_v2int = OpTypePointer Function %v2int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_bb447f = OpFunction %void None %9
          %12 = OpLabel
@@ -51,26 +50,25 @@
                OpStore %res %13
                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 %select_bb447f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %select_bb447f
-         %34 = OpFunctionCall %void %tint_symbol_2 %8
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %select_bb447f
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %select_bb447f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %select_bb447f
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %select_bb447f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/bb8aae.wgsl.expected.spvasm b/test/intrinsics/gen/select/bb8aae.wgsl.expected.spvasm
index 8f9687d..29dc265 100644
--- a/test/intrinsics/gen/select/bb8aae.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/bb8aae.wgsl.expected.spvasm
@@ -1,69 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_bb8aae "select_bb8aae"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
      %v4bool = OpTypeVector %bool 4
          %16 = OpConstantNull %v4bool
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_bb8aae = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpSelect %v4float %16 %8 %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpSelect %v4float %16 %5 %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %select_bb8aae
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %select_bb8aae
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %select_bb8aae
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %select_bb8aae
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %select_bb8aae
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %select_bb8aae
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/bf3d29.wgsl.expected.spvasm b/test/intrinsics/gen/select/bf3d29.wgsl.expected.spvasm
index 838a399..accad0c 100644
--- a/test/intrinsics/gen/select/bf3d29.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/bf3d29.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_bf3d29 "select_bf3d29"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -39,7 +38,7 @@
 %_ptr_Function_v2bool = OpTypePointer Function %v2bool
          %21 = OpConstantNull %v2bool
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_bf3d29 = OpFunction %void None %9
          %12 = OpLabel
@@ -50,26 +49,25 @@
                OpStore %res %13
                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 %select_bf3d29
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %select_bf3d29
-         %33 = OpFunctionCall %void %tint_symbol_2 %8
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %select_bf3d29
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %select_bf3d29
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %select_bf3d29
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %select_bf3d29
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/c31f9e.wgsl.expected.spvasm b/test/intrinsics/gen/select/c31f9e.wgsl.expected.spvasm
index b056d08..5091beb 100644
--- a/test/intrinsics/gen/select/c31f9e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/c31f9e.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_c31f9e "select_c31f9e"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
          %15 = OpConstantNull %bool
 %_ptr_Function_bool = OpTypePointer Function %bool
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_c31f9e = OpFunction %void None %9
          %12 = OpLabel
@@ -43,26 +42,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %select_c31f9e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %select_c31f9e
-         %26 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %select_c31f9e
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %select_c31f9e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %select_c31f9e
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %select_c31f9e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/c41bd1.wgsl.expected.spvasm b/test/intrinsics/gen/select/c41bd1.wgsl.expected.spvasm
index 2f0b01d..8c3b9ef 100644
--- a/test/intrinsics/gen/select/c41bd1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/c41bd1.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_c41bd1 "select_c41bd1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -36,7 +35,7 @@
          %16 = OpConstantNull %bool
          %17 = OpConstantNull %v4bool
 %_ptr_Function_v4bool = OpTypePointer Function %v4bool
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_c41bd1 = OpFunction %void None %9
          %12 = OpLabel
@@ -47,26 +46,25 @@
                OpStore %res %13
                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 %select_c41bd1
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %select_c41bd1
-         %30 = OpFunctionCall %void %tint_symbol_2 %8
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %select_c41bd1
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %select_c41bd1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %select_c41bd1
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %select_c41bd1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/c4a4ef.wgsl.expected.spvasm b/test/intrinsics/gen/select/c4a4ef.wgsl.expected.spvasm
index 34a5345..c4eff67 100644
--- a/test/intrinsics/gen/select/c4a4ef.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/c4a4ef.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_c4a4ef "select_c4a4ef"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -38,7 +37,7 @@
          %18 = OpConstantNull %v4bool
          %19 = OpConstantNull %v4uint
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_c4a4ef = OpFunction %void None %9
          %12 = OpLabel
@@ -47,26 +46,25 @@
                OpStore %res %13
                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 %select_c4a4ef
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %select_c4a4ef
-         %30 = OpFunctionCall %void %tint_symbol_2 %8
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %select_c4a4ef
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %select_c4a4ef
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %select_c4a4ef
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %select_c4a4ef
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/cb9301.wgsl.expected.spvasm b/test/intrinsics/gen/select/cb9301.wgsl.expected.spvasm
index ab807b3..8a86fc9 100644
--- a/test/intrinsics/gen/select/cb9301.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/cb9301.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_cb9301 "select_cb9301"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
      %v2bool = OpTypeVector %bool 2
          %16 = OpConstantNull %v2bool
 %_ptr_Function_v2bool = OpTypePointer Function %v2bool
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_cb9301 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %select_cb9301
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %select_cb9301
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %select_cb9301
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %select_cb9301
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %select_cb9301
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %select_cb9301
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/e3e028.wgsl.expected.spvasm b/test/intrinsics/gen/select/e3e028.wgsl.expected.spvasm
index 27ca8f9..259f9c0 100644
--- a/test/intrinsics/gen/select/e3e028.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/e3e028.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_e3e028 "select_e3e028"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
      %v4bool = OpTypeVector %bool 4
          %16 = OpConstantNull %v4bool
 %_ptr_Function_v4bool = OpTypePointer Function %v4bool
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_e3e028 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %select_e3e028
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %select_e3e028
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %select_e3e028
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %select_e3e028
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %select_e3e028
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %select_e3e028
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/ebfea2.wgsl.expected.spvasm b/test/intrinsics/gen/select/ebfea2.wgsl.expected.spvasm
index d531e0f..60a799f 100644
--- a/test/intrinsics/gen/select/ebfea2.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/ebfea2.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_ebfea2 "select_ebfea2"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -37,7 +36,7 @@
          %17 = OpConstantNull %v3bool
          %18 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_ebfea2 = OpFunction %void None %9
          %12 = OpLabel
@@ -46,26 +45,25 @@
                OpStore %res %13
                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 %select_ebfea2
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %select_ebfea2
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %select_ebfea2
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %select_ebfea2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %select_ebfea2
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %select_ebfea2
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/ed8a15.wgsl.expected.spvasm b/test/intrinsics/gen/select/ed8a15.wgsl.expected.spvasm
index 5d27fc3..259b51d 100644
--- a/test/intrinsics/gen/select/ed8a15.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/ed8a15.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_ed8a15 "select_ed8a15"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -37,7 +36,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %20 = OpConstantNull %int
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_ed8a15 = OpFunction %void None %9
          %12 = OpLabel
@@ -46,26 +45,25 @@
                OpStore %res %13
                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 %select_ed8a15
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %select_ed8a15
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %select_ed8a15
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %select_ed8a15
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %select_ed8a15
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %select_ed8a15
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/select/fb7e53.wgsl.expected.spvasm b/test/intrinsics/gen/select/fb7e53.wgsl.expected.spvasm
index bd780d5..2465e39 100644
--- a/test/intrinsics/gen/select/fb7e53.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/select/fb7e53.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %select_fb7e53 "select_fb7e53"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -36,7 +35,7 @@
          %16 = OpConstantNull %bool
          %17 = OpConstantNull %v2bool
 %_ptr_Function_v2bool = OpTypePointer Function %v2bool
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %select_fb7e53 = OpFunction %void None %9
          %12 = OpLabel
@@ -47,26 +46,25 @@
                OpStore %res %13
                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 %select_fb7e53
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %select_fb7e53
-         %30 = OpFunctionCall %void %tint_symbol_2 %8
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %select_fb7e53
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %select_fb7e53
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %select_fb7e53
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %select_fb7e53
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/sign/159665.wgsl.expected.spvasm b/test/intrinsics/gen/sign/159665.wgsl.expected.spvasm
index b202170..5e734b0 100644
--- a/test/intrinsics/gen/sign/159665.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/sign/159665.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %sign_159665 "sign_159665"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %sign_159665 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %sign_159665
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %sign_159665
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %sign_159665
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %sign_159665
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %sign_159665
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %sign_159665
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/sign/b8f634.wgsl.expected.spvasm b/test/intrinsics/gen/sign/b8f634.wgsl.expected.spvasm
index dc20942..88d6d0f 100644
--- a/test/intrinsics/gen/sign/b8f634.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/sign/b8f634.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %sign_b8f634 "sign_b8f634"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %sign_b8f634 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 FSign %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 FSign %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %sign_b8f634
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %sign_b8f634
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %sign_b8f634
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %sign_b8f634
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %sign_b8f634
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %sign_b8f634
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/sign/d065d8.wgsl.expected.spvasm b/test/intrinsics/gen/sign/d065d8.wgsl.expected.spvasm
index 224618c..585a70e 100644
--- a/test/intrinsics/gen/sign/d065d8.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/sign/d065d8.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %sign_d065d8 "sign_d065d8"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %sign_d065d8 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %sign_d065d8
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %sign_d065d8
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %sign_d065d8
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %sign_d065d8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %sign_d065d8
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %sign_d065d8
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/sign/dd790e.wgsl.expected.spvasm b/test/intrinsics/gen/sign/dd790e.wgsl.expected.spvasm
index bb97f04..9069f50 100644
--- a/test/intrinsics/gen/sign/dd790e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/sign/dd790e.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %sign_dd790e "sign_dd790e"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
 %sign_dd790e = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 FSign %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %sign_dd790e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %sign_dd790e
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %sign_dd790e
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %sign_dd790e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %sign_dd790e
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %sign_dd790e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/sin/01f241.wgsl.expected.spvasm b/test/intrinsics/gen/sin/01f241.wgsl.expected.spvasm
index e459aea..6a709ff 100644
--- a/test/intrinsics/gen/sin/01f241.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/sin/01f241.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %sin_01f241 "sin_01f241"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %sin_01f241 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %sin_01f241
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %sin_01f241
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %sin_01f241
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %sin_01f241
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %sin_01f241
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %sin_01f241
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/sin/4e3979.wgsl.expected.spvasm b/test/intrinsics/gen/sin/4e3979.wgsl.expected.spvasm
index 6c33ea5..c83fd92 100644
--- a/test/intrinsics/gen/sin/4e3979.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/sin/4e3979.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %sin_4e3979 "sin_4e3979"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %sin_4e3979 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Sin %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Sin %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %sin_4e3979
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %sin_4e3979
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %sin_4e3979
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %sin_4e3979
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %sin_4e3979
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %sin_4e3979
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/sin/b78c91.wgsl.expected.spvasm b/test/intrinsics/gen/sin/b78c91.wgsl.expected.spvasm
index 45895ad..574e10b 100644
--- a/test/intrinsics/gen/sin/b78c91.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/sin/b78c91.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %sin_b78c91 "sin_b78c91"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
  %sin_b78c91 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Sin %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %sin_b78c91
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %sin_b78c91
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %sin_b78c91
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %sin_b78c91
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %sin_b78c91
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %sin_b78c91
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/sin/fc8bc4.wgsl.expected.spvasm b/test/intrinsics/gen/sin/fc8bc4.wgsl.expected.spvasm
index 1897305..ff7c146 100644
--- a/test/intrinsics/gen/sin/fc8bc4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/sin/fc8bc4.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %sin_fc8bc4 "sin_fc8bc4"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %sin_fc8bc4 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %sin_fc8bc4
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %sin_fc8bc4
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %sin_fc8bc4
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %sin_fc8bc4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %sin_fc8bc4
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %sin_fc8bc4
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/sinh/445e33.wgsl.expected.spvasm b/test/intrinsics/gen/sinh/445e33.wgsl.expected.spvasm
index 71e5771..a3e2fb6 100644
--- a/test/intrinsics/gen/sinh/445e33.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/sinh/445e33.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %sinh_445e33 "sinh_445e33"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %sinh_445e33 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Sinh %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Sinh %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %sinh_445e33
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %sinh_445e33
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %sinh_445e33
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %sinh_445e33
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %sinh_445e33
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %sinh_445e33
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/sinh/7bb598.wgsl.expected.spvasm b/test/intrinsics/gen/sinh/7bb598.wgsl.expected.spvasm
index 997d3ff..746f01c 100644
--- a/test/intrinsics/gen/sinh/7bb598.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/sinh/7bb598.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %sinh_7bb598 "sinh_7bb598"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
 %sinh_7bb598 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Sinh %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %sinh_7bb598
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %sinh_7bb598
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %sinh_7bb598
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %sinh_7bb598
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %sinh_7bb598
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %sinh_7bb598
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/sinh/b9860e.wgsl.expected.spvasm b/test/intrinsics/gen/sinh/b9860e.wgsl.expected.spvasm
index bba9adb..8225ffd 100644
--- a/test/intrinsics/gen/sinh/b9860e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/sinh/b9860e.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %sinh_b9860e "sinh_b9860e"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %sinh_b9860e = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %sinh_b9860e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %sinh_b9860e
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %sinh_b9860e
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %sinh_b9860e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %sinh_b9860e
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %sinh_b9860e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.spvasm b/test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.spvasm
index f923d9f..a843746 100644
--- a/test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %sinh_c9a5eb "sinh_c9a5eb"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %sinh_c9a5eb = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %sinh_c9a5eb
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %sinh_c9a5eb
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %sinh_c9a5eb
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %sinh_c9a5eb
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %sinh_c9a5eb
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %sinh_c9a5eb
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.spvasm b/test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.spvasm
index f20b707..1b2e9f4 100644
--- a/test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %smoothStep_5f615b "smoothStep_5f615b"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %smoothStep_5f615b = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 SmoothStep %8 %8 %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 SmoothStep %5 %5 %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %smoothStep_5f615b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %smoothStep_5f615b
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %smoothStep_5f615b
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %smoothStep_5f615b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %smoothStep_5f615b
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %smoothStep_5f615b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/smoothStep/658be3.wgsl.expected.spvasm b/test/intrinsics/gen/smoothStep/658be3.wgsl.expected.spvasm
index b6a904e..5c36082 100644
--- a/test/intrinsics/gen/smoothStep/658be3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/smoothStep/658be3.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %smoothStep_658be3 "smoothStep_658be3"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %smoothStep_658be3 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %smoothStep_658be3
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %smoothStep_658be3
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %smoothStep_658be3
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %smoothStep_658be3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %smoothStep_658be3
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %smoothStep_658be3
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.spvasm b/test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.spvasm
index f393adc..d2fcb9e 100644
--- a/test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %smoothStep_c11eef "smoothStep_c11eef"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %smoothStep_c11eef = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %smoothStep_c11eef
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %smoothStep_c11eef
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %smoothStep_c11eef
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %smoothStep_c11eef
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %smoothStep_c11eef
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %smoothStep_c11eef
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.spvasm b/test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.spvasm
index a19270a..4dbf5d3 100644
--- a/test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %smoothStep_cb0bfb "smoothStep_cb0bfb"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
 %smoothStep_cb0bfb = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 SmoothStep %float_1 %float_1 %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %smoothStep_cb0bfb
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %smoothStep_cb0bfb
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %smoothStep_cb0bfb
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %smoothStep_cb0bfb
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %smoothStep_cb0bfb
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %smoothStep_cb0bfb
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/sqrt/20c74e.wgsl.expected.spvasm b/test/intrinsics/gen/sqrt/20c74e.wgsl.expected.spvasm
index 7e26f2b..a9e5def 100644
--- a/test/intrinsics/gen/sqrt/20c74e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/sqrt/20c74e.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %sqrt_20c74e "sqrt_20c74e"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
 %sqrt_20c74e = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Sqrt %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %sqrt_20c74e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %sqrt_20c74e
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %sqrt_20c74e
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %sqrt_20c74e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %sqrt_20c74e
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %sqrt_20c74e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/sqrt/8c7024.wgsl.expected.spvasm b/test/intrinsics/gen/sqrt/8c7024.wgsl.expected.spvasm
index fd48614..89f3e4b 100644
--- a/test/intrinsics/gen/sqrt/8c7024.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/sqrt/8c7024.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %sqrt_8c7024 "sqrt_8c7024"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %sqrt_8c7024 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %sqrt_8c7024
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %sqrt_8c7024
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %sqrt_8c7024
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %sqrt_8c7024
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %sqrt_8c7024
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %sqrt_8c7024
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.spvasm b/test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.spvasm
index c944fbf..7566b82 100644
--- a/test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %sqrt_aa0d7a "sqrt_aa0d7a"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %sqrt_aa0d7a = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Sqrt %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Sqrt %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %sqrt_aa0d7a
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %sqrt_aa0d7a
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %sqrt_aa0d7a
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %sqrt_aa0d7a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %sqrt_aa0d7a
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %sqrt_aa0d7a
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.spvasm b/test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.spvasm
index 5d8c11c..15225e1 100644
--- a/test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %sqrt_f8c59a "sqrt_f8c59a"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %sqrt_f8c59a = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %sqrt_f8c59a
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %sqrt_f8c59a
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %sqrt_f8c59a
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %sqrt_f8c59a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %sqrt_f8c59a
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %sqrt_f8c59a
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/step/0b073b.wgsl.expected.spvasm b/test/intrinsics/gen/step/0b073b.wgsl.expected.spvasm
index 43ffb2f..df776a0 100644
--- a/test/intrinsics/gen/step/0b073b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/step/0b073b.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %step_0b073b "step_0b073b"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
 %step_0b073b = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Step %float_1 %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %step_0b073b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %step_0b073b
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %step_0b073b
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %step_0b073b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %step_0b073b
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %step_0b073b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/step/19accd.wgsl.expected.spvasm b/test/intrinsics/gen/step/19accd.wgsl.expected.spvasm
index 2ff36a6..b56876a 100644
--- a/test/intrinsics/gen/step/19accd.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/step/19accd.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %step_19accd "step_19accd"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %step_19accd = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %step_19accd
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %step_19accd
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %step_19accd
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %step_19accd
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %step_19accd
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %step_19accd
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/step/334303.wgsl.expected.spvasm b/test/intrinsics/gen/step/334303.wgsl.expected.spvasm
index 67f95b8..7cc186a 100644
--- a/test/intrinsics/gen/step/334303.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/step/334303.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %step_334303 "step_334303"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %step_334303 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %step_334303
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %step_334303
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %step_334303
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %step_334303
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %step_334303
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %step_334303
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/step/e2b337.wgsl.expected.spvasm b/test/intrinsics/gen/step/e2b337.wgsl.expected.spvasm
index 96519e6..d1fcc53 100644
--- a/test/intrinsics/gen/step/e2b337.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/step/e2b337.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %step_e2b337 "step_e2b337"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %step_e2b337 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Step %8 %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Step %5 %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %step_e2b337
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %step_e2b337
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %step_e2b337
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %step_e2b337
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %step_e2b337
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %step_e2b337
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/tan/244e2a.wgsl.expected.spvasm b/test/intrinsics/gen/tan/244e2a.wgsl.expected.spvasm
index 15f6527..6c6aa2f 100644
--- a/test/intrinsics/gen/tan/244e2a.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/tan/244e2a.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %tan_244e2a "tan_244e2a"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %tan_244e2a = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Tan %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Tan %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %tan_244e2a
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %tan_244e2a
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %tan_244e2a
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %tan_244e2a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %tan_244e2a
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %tan_244e2a
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/tan/2f030e.wgsl.expected.spvasm b/test/intrinsics/gen/tan/2f030e.wgsl.expected.spvasm
index 53e31dd..2ae773c 100644
--- a/test/intrinsics/gen/tan/2f030e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/tan/2f030e.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %tan_2f030e "tan_2f030e"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
  %tan_2f030e = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Tan %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %tan_2f030e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %tan_2f030e
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %tan_2f030e
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %tan_2f030e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %tan_2f030e
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %tan_2f030e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/tan/7ea104.wgsl.expected.spvasm b/test/intrinsics/gen/tan/7ea104.wgsl.expected.spvasm
index a776589..5912137 100644
--- a/test/intrinsics/gen/tan/7ea104.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/tan/7ea104.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %tan_7ea104 "tan_7ea104"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %tan_7ea104 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %tan_7ea104
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %tan_7ea104
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %tan_7ea104
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %tan_7ea104
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %tan_7ea104
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %tan_7ea104
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/tan/8ce3e9.wgsl.expected.spvasm b/test/intrinsics/gen/tan/8ce3e9.wgsl.expected.spvasm
index 50360e3..a649a53 100644
--- a/test/intrinsics/gen/tan/8ce3e9.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/tan/8ce3e9.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %tan_8ce3e9 "tan_8ce3e9"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
  %tan_8ce3e9 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %tan_8ce3e9
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %tan_8ce3e9
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %tan_8ce3e9
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %tan_8ce3e9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %tan_8ce3e9
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %tan_8ce3e9
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/tanh/5663c5.wgsl.expected.spvasm b/test/intrinsics/gen/tanh/5663c5.wgsl.expected.spvasm
index bdf846a..0c9049a 100644
--- a/test/intrinsics/gen/tanh/5663c5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/tanh/5663c5.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %tanh_5663c5 "tanh_5663c5"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %tanh_5663c5 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Tanh %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Tanh %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %tanh_5663c5
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %tanh_5663c5
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %tanh_5663c5
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %tanh_5663c5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %tanh_5663c5
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %tanh_5663c5
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/tanh/5724b3.wgsl.expected.spvasm b/test/intrinsics/gen/tanh/5724b3.wgsl.expected.spvasm
index 62ff765..ec85587 100644
--- a/test/intrinsics/gen/tanh/5724b3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/tanh/5724b3.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %tanh_5724b3 "tanh_5724b3"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %tanh_5724b3 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %tanh_5724b3
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %tanh_5724b3
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %tanh_5724b3
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %tanh_5724b3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %tanh_5724b3
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %tanh_5724b3
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.spvasm b/test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.spvasm
index 9c4b25d..3afa263 100644
--- a/test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %tanh_9f9fb9 "tanh_9f9fb9"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %tanh_9f9fb9 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %tanh_9f9fb9
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %tanh_9f9fb9
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %tanh_9f9fb9
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %tanh_9f9fb9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %tanh_9f9fb9
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %tanh_9f9fb9
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/tanh/c15fdb.wgsl.expected.spvasm b/test/intrinsics/gen/tanh/c15fdb.wgsl.expected.spvasm
index a233a16..8c45d42 100644
--- a/test/intrinsics/gen/tanh/c15fdb.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/tanh/c15fdb.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %tanh_c15fdb "tanh_c15fdb"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
 %tanh_c15fdb = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Tanh %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %tanh_c15fdb
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %tanh_c15fdb
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %tanh_c15fdb
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %tanh_c15fdb
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %tanh_c15fdb
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %tanh_c15fdb
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.spvasm
index e30b842..178d73b 100644
--- a/test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability Sampled1D
                OpCapability ImageQuery
                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 %textureDimensions_002b2a "textureDimensions_002b2a"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Function_int = OpTypePointer Function %int
          %22 = OpConstantNull %int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_002b2a = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %22
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQuerySizeLod %int %18 %int_0
                OpStore %res %16
                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 %textureDimensions_002b2a
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_002b2a
-         %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 %textureDimensions_002b2a
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_002b2a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_002b2a
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_002b2a
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.spvasm
index 0cc033b..4e8d502 100644
--- a/test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_012b82 "textureDimensions_012b82"
                OpName %res "res"
-               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
       %v2int = OpTypeVector %int 2
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_012b82 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %17 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %17
                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 %textureDimensions_012b82
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_012b82
-         %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 %textureDimensions_012b82
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_012b82
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_012b82
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_012b82
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.spvasm
index 7844189..8854f38 100644
--- a/test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_08753d "textureDimensions_08753d"
                OpName %res "res"
-               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
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_08753d = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %int %18
                OpStore %res %17
                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 %textureDimensions_08753d
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureDimensions_08753d
-         %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 %textureDimensions_08753d
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureDimensions_08753d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_08753d
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_08753d
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/08a62e.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/08a62e.wgsl.expected.spvasm
index 30cf3a5..c9e28f4 100644
--- a/test/intrinsics/gen/textureDimensions/08a62e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/08a62e.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_08a62e "textureDimensions_08a62e"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_08a62e = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %int %18
                OpStore %res %17
                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 %textureDimensions_08a62e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureDimensions_08a62e
-         %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 %textureDimensions_08a62e
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureDimensions_08a62e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_08a62e
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_08a62e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/0a5fcf.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/0a5fcf.wgsl.expected.spvasm
index 78cdeab..a912652 100644
--- a/test/intrinsics/gen/textureDimensions/0a5fcf.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/0a5fcf.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 ImageQuery
                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 %textureDimensions_0a5fcf "textureDimensions_0a5fcf"
                OpName %res "res"
-               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 NonWritable
                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
@@ -44,37 +43,36 @@
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_0a5fcf = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %16 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %16
                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 %textureDimensions_0a5fcf
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_0a5fcf
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_0a5fcf
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_0a5fcf
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_0a5fcf
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_0a5fcf
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/0bab57.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/0bab57.wgsl.expected.spvasm
index 5122a7a..a7b100d 100644
--- a/test/intrinsics/gen/textureDimensions/0bab57.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/0bab57.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_0bab57 "textureDimensions_0bab57"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %22 = OpConstantNull %v3int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_0bab57 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v3int %19
                OpStore %res %17
                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 %textureDimensions_0bab57
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_0bab57
-         %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 %textureDimensions_0bab57
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_0bab57
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_0bab57
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_0bab57
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.spvasm
index a84a2c9..77d91d5 100644
--- a/test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_0c4772 "textureDimensions_0c4772"
                OpName %res "res"
-               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
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %22 = OpConstantNull %v3int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_0c4772 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v3int %19
                OpStore %res %16
                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 %textureDimensions_0c4772
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_0c4772
-         %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 %textureDimensions_0c4772
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_0c4772
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_0c4772
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_0c4772
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.spvasm
index a86327e..51c3c14 100644
--- a/test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_0cce40 "textureDimensions_0cce40"
                OpName %res "res"
-               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
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_0cce40 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %int %18
                OpStore %res %17
                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 %textureDimensions_0cce40
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureDimensions_0cce40
-         %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 %textureDimensions_0cce40
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureDimensions_0cce40
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_0cce40
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_0cce40
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.spvasm
index 9a0a27b..aece995 100644
--- a/test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_0cf2ff "textureDimensions_0cf2ff"
                OpName %res "res"
-               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
       %v2int = OpTypeVector %int 2
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %23 = OpConstantNull %v2int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_0cf2ff = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v2int %20
                OpStore %res %17
                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 %textureDimensions_0cf2ff
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_0cf2ff
-         %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 %textureDimensions_0cf2ff
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_0cf2ff
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_0cf2ff
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_0cf2ff
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.spvasm
index 81c70b0..c5406d7 100644
--- a/test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_0d8b7e "textureDimensions_0d8b7e"
                OpName %res "res"
-               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,37 +44,36 @@
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %25 = OpConstantNull %v2int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_0d8b7e = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %25
-         %22 = OpLoad %7 %arg_0
+         %22 = OpLoad %11 %arg_0
          %20 = OpImageQuerySize %v3int %22
          %17 = OpVectorShuffle %v2int %20 %20 0 1
                OpStore %res %17
                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 %textureDimensions_0d8b7e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureDimensions_0d8b7e
-         %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 %textureDimensions_0d8b7e
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_0d8b7e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureDimensions_0d8b7e
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureDimensions_0d8b7e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.spvasm
index 74a4736..c045a1a 100644
--- a/test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_0e32ee "textureDimensions_0e32ee"
                OpName %res "res"
-               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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %23 = OpConstantNull %v3int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_0e32ee = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v3int %20
                OpStore %res %17
                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 %textureDimensions_0e32ee
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_0e32ee
-         %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 %textureDimensions_0e32ee
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_0e32ee
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_0e32ee
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_0e32ee
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/0f3c50.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/0f3c50.wgsl.expected.spvasm
index 34cbe26..53a9a61 100644
--- a/test/intrinsics/gen/textureDimensions/0f3c50.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/0f3c50.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 ImageQuery
                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 %textureDimensions_0f3c50 "textureDimensions_0f3c50"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
@@ -44,37 +43,36 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %25 = OpConstantNull %v2int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_0f3c50 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %25
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySizeLod %v3int %21 %int_0
          %17 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %17
                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 %textureDimensions_0f3c50
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureDimensions_0f3c50
-         %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 %textureDimensions_0f3c50
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_0f3c50
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureDimensions_0f3c50
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureDimensions_0f3c50
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/1147d6.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/1147d6.wgsl.expected.spvasm
index ca44195..dfd8b2e 100644
--- a/test/intrinsics/gen/textureDimensions/1147d6.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/1147d6.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_1147d6 "textureDimensions_1147d6"
                OpName %res "res"
-               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 NonWritable
                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
       %v2int = OpTypeVector %int 2
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_1147d6 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %17 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %17
                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 %textureDimensions_1147d6
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_1147d6
-         %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 %textureDimensions_1147d6
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_1147d6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_1147d6
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_1147d6
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/1191a5.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/1191a5.wgsl.expected.spvasm
index 90f0304..1cc88e1 100644
--- a/test/intrinsics/gen/textureDimensions/1191a5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/1191a5.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 ImageQuery
                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 %textureDimensions_1191a5 "textureDimensions_1191a5"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -44,36 +43,35 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_1191a5 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySizeLod %v2int %20 %int_0
                OpStore %res %17
                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 %textureDimensions_1191a5
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_1191a5
-         %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 %textureDimensions_1191a5
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_1191a5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_1191a5
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_1191a5
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/12c9bb.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/12c9bb.wgsl.expected.spvasm
index 599b117..85a2e2e 100644
--- a/test/intrinsics/gen/textureDimensions/12c9bb.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/12c9bb.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
                OpCapability ImageQuery
                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 %textureDimensions_12c9bb "textureDimensions_12c9bb"
                OpName %res "res"
-               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 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 1 0 0 1 Unknown
-%_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 1 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,36 +42,35 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %23 = OpConstantNull %v2int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_12c9bb = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %23
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySizeLod %v2int %19 %int_0
                OpStore %res %16
                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 %textureDimensions_12c9bb
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_12c9bb
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureDimensions_12c9bb
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_12c9bb
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_12c9bb
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_12c9bb
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/147998.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/147998.wgsl.expected.spvasm
index 83e696c..9e80b7d 100644
--- a/test/intrinsics/gen/textureDimensions/147998.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/147998.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureDimensions_147998 "textureDimensions_147998"
                OpName %res "res"
-               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
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_147998 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v2int %19
                OpStore %res %16
                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 %textureDimensions_147998
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_147998
-         %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 %textureDimensions_147998
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_147998
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_147998
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_147998
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.spvasm
index f00ebb9..af24793 100644
--- a/test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_16036c "textureDimensions_16036c"
                OpName %res "res"
-               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
       %v2int = OpTypeVector %int 2
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_16036c = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %17 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %17
                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 %textureDimensions_16036c
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_16036c
-         %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 %textureDimensions_16036c
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_16036c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_16036c
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_16036c
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/168fcc.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/168fcc.wgsl.expected.spvasm
index e1c7c11..be89daf 100644
--- a/test/intrinsics/gen/textureDimensions/168fcc.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/168fcc.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_168fcc "textureDimensions_168fcc"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_168fcc = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v2int %19
                OpStore %res %16
                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 %textureDimensions_168fcc
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_168fcc
-         %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 %textureDimensions_168fcc
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_168fcc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_168fcc
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_168fcc
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/18bd57.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/18bd57.wgsl.expected.spvasm
index c0c23cb..45df877 100644
--- a/test/intrinsics/gen/textureDimensions/18bd57.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/18bd57.wgsl.expected.spvasm
@@ -1,44 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureDimensions_18bd57 "textureDimensions_18bd57"
                OpName %res "res"
-               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 NonWritable
                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,37 +45,36 @@
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %25 = OpConstantNull %v2int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_18bd57 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %25
-         %22 = OpLoad %7 %arg_0
+         %22 = OpLoad %11 %arg_0
          %20 = OpImageQuerySize %v3int %22
          %17 = OpVectorShuffle %v2int %20 %20 0 1
                OpStore %res %17
                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 %textureDimensions_18bd57
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureDimensions_18bd57
-         %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 %textureDimensions_18bd57
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_18bd57
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureDimensions_18bd57
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureDimensions_18bd57
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/19bffc.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/19bffc.wgsl.expected.spvasm
index 8157657..0d2385e 100644
--- a/test/intrinsics/gen/textureDimensions/19bffc.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/19bffc.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureDimensions_19bffc "textureDimensions_19bffc"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %22 = OpConstantNull %v3int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_19bffc = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v3int %19
                OpStore %res %17
                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 %textureDimensions_19bffc
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_19bffc
-         %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 %textureDimensions_19bffc
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_19bffc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_19bffc
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_19bffc
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/1a58e7.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/1a58e7.wgsl.expected.spvasm
index 53bda8e..f2ebb26 100644
--- a/test/intrinsics/gen/textureDimensions/1a58e7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/1a58e7.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 ImageQuery
                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 %textureDimensions_1a58e7 "textureDimensions_1a58e7"
                OpName %res "res"
-               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 NonWritable
                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
@@ -44,37 +43,36 @@
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_1a58e7 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %16 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %16
                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 %textureDimensions_1a58e7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_1a58e7
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_1a58e7
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_1a58e7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_1a58e7
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_1a58e7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/1aa199.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/1aa199.wgsl.expected.spvasm
index 721e60a..5006ca6 100644
--- a/test/intrinsics/gen/textureDimensions/1aa199.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/1aa199.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_1aa199 "textureDimensions_1aa199"
                OpName %res "res"
-               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 NonWritable
                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
       %v2int = OpTypeVector %int 2
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_1aa199 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %17 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %17
                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 %textureDimensions_1aa199
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_1aa199
-         %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 %textureDimensions_1aa199
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_1aa199
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_1aa199
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_1aa199
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.spvasm
index 1bd6793..ba6dd6a 100644
--- a/test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_1b71f0 "textureDimensions_1b71f0"
                OpName %res "res"
-               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
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %22 = OpConstantNull %v3int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_1b71f0 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v3int %19
                OpStore %res %17
                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 %textureDimensions_1b71f0
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_1b71f0
-         %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 %textureDimensions_1b71f0
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_1b71f0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_1b71f0
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_1b71f0
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/1d6c26.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/1d6c26.wgsl.expected.spvasm
index 211100f..f0feca5 100644
--- a/test/intrinsics/gen/textureDimensions/1d6c26.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/1d6c26.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 ImageQuery
                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 %textureDimensions_1d6c26 "textureDimensions_1d6c26"
                OpName %res "res"
-               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
@@ -44,37 +43,36 @@
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_1d6c26 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %16 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %16
                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 %textureDimensions_1d6c26
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_1d6c26
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_1d6c26
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_1d6c26
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_1d6c26
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_1d6c26
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/1e189c.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/1e189c.wgsl.expected.spvasm
index 1445365..95f3ea0 100644
--- a/test/intrinsics/gen/textureDimensions/1e189c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/1e189c.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_1e189c "textureDimensions_1e189c"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %22 = OpConstantNull %v3int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_1e189c = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v3int %19
                OpStore %res %17
                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 %textureDimensions_1e189c
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_1e189c
-         %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 %textureDimensions_1e189c
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_1e189c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_1e189c
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_1e189c
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.spvasm
index 8deedb3..c83aa50 100644
--- a/test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_1e9e39 "textureDimensions_1e9e39"
                OpName %res "res"
-               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
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_1e9e39 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %int %18
                OpStore %res %16
                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 %textureDimensions_1e9e39
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureDimensions_1e9e39
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureDimensions_1e9e39
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureDimensions_1e9e39
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_1e9e39
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_1e9e39
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.spvasm
index bee122d..83e1fb4 100644
--- a/test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_1f20c5 "textureDimensions_1f20c5"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -45,37 +44,36 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %26 = OpConstantNull %v2int
-         %27 = OpTypeFunction %void %v4float
+         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_1f20c5 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %26
-         %22 = OpLoad %7 %arg_0
+         %22 = OpLoad %11 %arg_0
          %20 = OpImageQuerySizeLod %v3int %22 %int_0
          %17 = OpVectorShuffle %v2int %20 %20 0 1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %27
-%tint_symbol = OpFunctionParameter %v4float
-         %30 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureDimensions_1f20c5
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %32 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %34 = OpFunctionCall %void %textureDimensions_1f20c5
-         %35 = OpFunctionCall %void %tint_symbol_2 %12
+         %33 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %33
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_1f20c5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_1f20c5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureDimensions_1f20c5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureDimensions_1f20c5
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/214b7b.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/214b7b.wgsl.expected.spvasm
index 6179d33..e0cd411 100644
--- a/test/intrinsics/gen/textureDimensions/214b7b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/214b7b.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureDimensions_214b7b "textureDimensions_214b7b"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_214b7b = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %int %18
                OpStore %res %16
                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 %textureDimensions_214b7b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureDimensions_214b7b
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureDimensions_214b7b
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureDimensions_214b7b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_214b7b
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_214b7b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.spvasm
index 9b8ac32..8210ce8 100644
--- a/test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_214dd4 "textureDimensions_214dd4"
                OpName %res "res"
-               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
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %22 = OpConstantNull %v3int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_214dd4 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v3int %19
                OpStore %res %17
                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 %textureDimensions_214dd4
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_214dd4
-         %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 %textureDimensions_214dd4
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_214dd4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_214dd4
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_214dd4
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.spvasm
index acc2539..527024f 100644
--- a/test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
                OpCapability ImageQuery
                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 %textureDimensions_221f22 "textureDimensions_221f22"
                OpName %res "res"
-               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 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 Cube 0 1 0 1 Unknown
-%_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 Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
@@ -45,37 +44,36 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %25 = OpConstantNull %v2int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_221f22 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %25
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySizeLod %v3int %21 %int_0
          %17 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %17
                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 %textureDimensions_221f22
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureDimensions_221f22
-         %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 %textureDimensions_221f22
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_221f22
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureDimensions_221f22
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureDimensions_221f22
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/267788.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/267788.wgsl.expected.spvasm
index 3cddc55..7c1f7de 100644
--- a/test/intrinsics/gen/textureDimensions/267788.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/267788.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_267788 "textureDimensions_267788"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -45,37 +44,36 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %26 = OpConstantNull %v2int
-         %27 = OpTypeFunction %void %v4float
+         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_267788 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %26
-         %22 = OpLoad %7 %arg_0
+         %22 = OpLoad %11 %arg_0
          %20 = OpImageQuerySizeLod %v3int %22 %int_0
          %17 = OpVectorShuffle %v2int %20 %20 0 1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %27
-%tint_symbol = OpFunctionParameter %v4float
-         %30 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureDimensions_267788
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %32 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %34 = OpFunctionCall %void %textureDimensions_267788
-         %35 = OpFunctionCall %void %tint_symbol_2 %12
+         %33 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %33
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_267788
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_267788
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureDimensions_267788
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureDimensions_267788
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/26bdfa.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/26bdfa.wgsl.expected.spvasm
index 56f79d4..dda3b4f 100644
--- a/test/intrinsics/gen/textureDimensions/26bdfa.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/26bdfa.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
                OpCapability ImageQuery
                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 %textureDimensions_26bdfa "textureDimensions_26bdfa"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,36 +42,35 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %23 = OpConstantNull %v3int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_26bdfa = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %23
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySizeLod %v3int %19 %int_0
                OpStore %res %16
                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 %textureDimensions_26bdfa
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_26bdfa
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureDimensions_26bdfa
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_26bdfa
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_26bdfa
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_26bdfa
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.spvasm
index a02bdc1..bd40e12 100644
--- a/test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_26ef6c "textureDimensions_26ef6c"
                OpName %res "res"
-               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,37 +44,36 @@
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %25 = OpConstantNull %v2int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_26ef6c = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %25
-         %22 = OpLoad %7 %arg_0
+         %22 = OpLoad %11 %arg_0
          %20 = OpImageQuerySize %v3int %22
          %17 = OpVectorShuffle %v2int %20 %20 0 1
                OpStore %res %17
                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 %textureDimensions_26ef6c
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureDimensions_26ef6c
-         %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 %textureDimensions_26ef6c
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_26ef6c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureDimensions_26ef6c
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureDimensions_26ef6c
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.spvasm
index d4c7fd8..cb89db5 100644
--- a/test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_2ad087 "textureDimensions_2ad087"
                OpName %res "res"
-               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
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_2ad087 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v2int %19
                OpStore %res %17
                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 %textureDimensions_2ad087
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_2ad087
-         %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 %textureDimensions_2ad087
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_2ad087
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_2ad087
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_2ad087
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/2d32ae.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/2d32ae.wgsl.expected.spvasm
index 43bf92d..55f605f 100644
--- a/test/intrinsics/gen/textureDimensions/2d32ae.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/2d32ae.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_2d32ae "textureDimensions_2d32ae"
                OpName %res "res"
-               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 NonWritable
                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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %23 = OpConstantNull %v3int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_2d32ae = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v3int %20
                OpStore %res %17
                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 %textureDimensions_2d32ae
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_2d32ae
-         %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 %textureDimensions_2d32ae
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_2d32ae
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_2d32ae
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_2d32ae
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/2e0662.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/2e0662.wgsl.expected.spvasm
index c28f836..118979e 100644
--- a/test/intrinsics/gen/textureDimensions/2e0662.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/2e0662.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_2e0662 "textureDimensions_2e0662"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_2e0662 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v2int %19
                OpStore %res %16
                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 %textureDimensions_2e0662
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_2e0662
-         %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 %textureDimensions_2e0662
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_2e0662
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_2e0662
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_2e0662
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/2efa05.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/2efa05.wgsl.expected.spvasm
index b33db34..3293c27 100644
--- a/test/intrinsics/gen/textureDimensions/2efa05.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/2efa05.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 ImageQuery
                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 %textureDimensions_2efa05 "textureDimensions_2efa05"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -44,36 +43,35 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %24 = OpConstantNull %v3int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_2efa05 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %24
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySizeLod %v3int %20 %int_0
                OpStore %res %17
                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 %textureDimensions_2efa05
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_2efa05
-         %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 %textureDimensions_2efa05
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_2efa05
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_2efa05
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_2efa05
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.spvasm
index ffe6d7e..ae04243 100644
--- a/test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_2f289f "textureDimensions_2f289f"
                OpName %res "res"
-               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
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %22 = OpConstantNull %v3int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_2f289f = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v3int %19
                OpStore %res %17
                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 %textureDimensions_2f289f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_2f289f
-         %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 %textureDimensions_2f289f
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_2f289f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_2f289f
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_2f289f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/2fe1cc.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/2fe1cc.wgsl.expected.spvasm
index d769ee2..a95be9e 100644
--- a/test/intrinsics/gen/textureDimensions/2fe1cc.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/2fe1cc.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
                OpCapability ImageQuery
                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 %textureDimensions_2fe1cc "textureDimensions_2fe1cc"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,36 +42,35 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %23 = OpConstantNull %v2int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_2fe1cc = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %23
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySizeLod %v2int %19 %int_0
                OpStore %res %16
                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 %textureDimensions_2fe1cc
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_2fe1cc
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureDimensions_2fe1cc
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_2fe1cc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_2fe1cc
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_2fe1cc
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.spvasm
index 17a4e27..c65dba9 100644
--- a/test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_318ecc "textureDimensions_318ecc"
                OpName %res "res"
-               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
 %_ptr_Function_int = OpTypePointer Function %int
          %22 = OpConstantNull %int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_318ecc = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %int %19
                OpStore %res %17
                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 %textureDimensions_318ecc
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_318ecc
-         %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 %textureDimensions_318ecc
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_318ecc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_318ecc
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_318ecc
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.spvasm
index f666315..c58da9b 100644
--- a/test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_340d06 "textureDimensions_340d06"
                OpName %res "res"
-               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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %23 = OpConstantNull %v3int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_340d06 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v3int %20
                OpStore %res %17
                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 %textureDimensions_340d06
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_340d06
-         %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 %textureDimensions_340d06
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_340d06
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_340d06
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_340d06
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.spvasm
index 88fb12c..9339841 100644
--- a/test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_398e30 "textureDimensions_398e30"
                OpName %res "res"
-               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,37 +44,36 @@
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %25 = OpConstantNull %v2int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_398e30 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %25
-         %22 = OpLoad %7 %arg_0
+         %22 = OpLoad %11 %arg_0
          %20 = OpImageQuerySize %v3int %22
          %17 = OpVectorShuffle %v2int %20 %20 0 1
                OpStore %res %17
                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 %textureDimensions_398e30
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureDimensions_398e30
-         %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 %textureDimensions_398e30
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_398e30
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureDimensions_398e30
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureDimensions_398e30
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/39a600.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/39a600.wgsl.expected.spvasm
index c364050..7637066 100644
--- a/test/intrinsics/gen/textureDimensions/39a600.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/39a600.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_39a600 "textureDimensions_39a600"
                OpName %res "res"
-               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 NonWritable
                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
       %v2int = OpTypeVector %int 2
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_39a600 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %17 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %17
                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 %textureDimensions_39a600
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_39a600
-         %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 %textureDimensions_39a600
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_39a600
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_39a600
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_39a600
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.spvasm
index 36d52b7..1ef266d 100644
--- a/test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureDimensions_3a94ea "textureDimensions_3a94ea"
                OpName %res "res"
-               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
       %v2int = OpTypeVector %int 2
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %23 = OpConstantNull %v2int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_3a94ea = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v2int %20
                OpStore %res %17
                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 %textureDimensions_3a94ea
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_3a94ea
-         %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 %textureDimensions_3a94ea
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_3a94ea
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_3a94ea
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_3a94ea
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.spvasm
index 5cd7281..faf0eff 100644
--- a/test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_3aca08 "textureDimensions_3aca08"
                OpName %res "res"
-               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
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_3aca08 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %int %18
                OpStore %res %16
                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 %textureDimensions_3aca08
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureDimensions_3aca08
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureDimensions_3aca08
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureDimensions_3aca08
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_3aca08
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_3aca08
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.spvasm
index c6cb7d8..f91c033 100644
--- a/test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_3c5ad8 "textureDimensions_3c5ad8"
                OpName %res "res"
-               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
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_3c5ad8 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v2int %19
                OpStore %res %17
                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 %textureDimensions_3c5ad8
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_3c5ad8
-         %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 %textureDimensions_3c5ad8
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_3c5ad8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_3c5ad8
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_3c5ad8
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/3d5817.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/3d5817.wgsl.expected.spvasm
index e617ef6..64833d3 100644
--- a/test/intrinsics/gen/textureDimensions/3d5817.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/3d5817.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_3d5817 "textureDimensions_3d5817"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_int = OpTypePointer Function %int
          %22 = OpConstantNull %int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_3d5817 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %int %19
                OpStore %res %17
                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 %textureDimensions_3d5817
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_3d5817
-         %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 %textureDimensions_3d5817
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_3d5817
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_3d5817
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_3d5817
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/40bc10.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/40bc10.wgsl.expected.spvasm
index 2d5abf4..08a9327 100644
--- a/test/intrinsics/gen/textureDimensions/40bc10.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/40bc10.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_40bc10 "textureDimensions_40bc10"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_int = OpTypePointer Function %int
          %22 = OpConstantNull %int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_40bc10 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %int %19
                OpStore %res %17
                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 %textureDimensions_40bc10
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_40bc10
-         %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 %textureDimensions_40bc10
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_40bc10
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_40bc10
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_40bc10
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.spvasm
index e001490..e092546 100644
--- a/test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
                OpCapability ImageQuery
                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 %textureDimensions_4152a6 "textureDimensions_4152a6"
                OpName %res "res"
-               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 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 Cube 0 1 0 1 Unknown
-%_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 Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -46,37 +45,36 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %26 = OpConstantNull %v2int
-         %27 = OpTypeFunction %void %v4float
+         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_4152a6 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %26
-         %22 = OpLoad %7 %arg_0
+         %22 = OpLoad %11 %arg_0
          %20 = OpImageQuerySizeLod %v3int %22 %int_0
          %17 = OpVectorShuffle %v2int %20 %20 0 1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %27
-%tint_symbol = OpFunctionParameter %v4float
-         %30 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureDimensions_4152a6
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %32 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %34 = OpFunctionCall %void %textureDimensions_4152a6
-         %35 = OpFunctionCall %void %tint_symbol_2 %12
+         %33 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %33
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_4152a6
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_4152a6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureDimensions_4152a6
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureDimensions_4152a6
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.spvasm
index b6a2c25..807bc78 100644
--- a/test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability Sampled1D
                OpCapability ImageQuery
                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 %textureDimensions_423f99 "textureDimensions_423f99"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %int_0 = OpConstant %int 0
 %_ptr_Function_int = OpTypePointer Function %int
          %22 = OpConstantNull %int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_423f99 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %22
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %17 = OpImageQuerySizeLod %int %18 %int_0
                OpStore %res %17
                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 %textureDimensions_423f99
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_423f99
-         %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 %textureDimensions_423f99
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_423f99
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_423f99
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_423f99
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.spvasm
index e5b6e92..a93a79d 100644
--- a/test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_4267ee "textureDimensions_4267ee"
                OpName %res "res"
-               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
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_4267ee = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v2int %19
                OpStore %res %16
                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 %textureDimensions_4267ee
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_4267ee
-         %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 %textureDimensions_4267ee
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_4267ee
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_4267ee
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_4267ee
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.spvasm
index 572fcb0..4127ab0 100644
--- a/test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_42d4e6 "textureDimensions_42d4e6"
                OpName %res "res"
-               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
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_42d4e6 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %int %18
                OpStore %res %16
                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 %textureDimensions_42d4e6
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureDimensions_42d4e6
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureDimensions_42d4e6
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureDimensions_42d4e6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_42d4e6
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_42d4e6
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/441392.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/441392.wgsl.expected.spvasm
index 1fb6b0f..027c23b 100644
--- a/test/intrinsics/gen/textureDimensions/441392.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/441392.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureDimensions_441392 "textureDimensions_441392"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_int = OpTypePointer Function %int
          %22 = OpConstantNull %int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_441392 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %int %19
                OpStore %res %17
                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 %textureDimensions_441392
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_441392
-         %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 %textureDimensions_441392
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_441392
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_441392
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_441392
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.spvasm
index bcca1a0..9a887dc 100644
--- a/test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_48cb89 "textureDimensions_48cb89"
                OpName %res "res"
-               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
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_48cb89 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v2int %19
                OpStore %res %16
                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 %textureDimensions_48cb89
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_48cb89
-         %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 %textureDimensions_48cb89
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_48cb89
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_48cb89
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_48cb89
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/48cbb2.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/48cbb2.wgsl.expected.spvasm
index 3aaea4e..21db059 100644
--- a/test/intrinsics/gen/textureDimensions/48cbb2.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/48cbb2.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureDimensions_48cbb2 "textureDimensions_48cbb2"
                OpName %res "res"
-               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 NonWritable
                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
@@ -45,37 +44,36 @@
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_48cbb2 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %16 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %16
                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 %textureDimensions_48cbb2
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_48cbb2
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_48cbb2
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_48cbb2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_48cbb2
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_48cbb2
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/48f360.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/48f360.wgsl.expected.spvasm
index 48c69ba..794771f 100644
--- a/test/intrinsics/gen/textureDimensions/48f360.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/48f360.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureDimensions_48f360 "textureDimensions_48f360"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_48f360 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v2int %19
                OpStore %res %17
                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 %textureDimensions_48f360
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_48f360
-         %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 %textureDimensions_48f360
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_48f360
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_48f360
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_48f360
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.spvasm
index 94abc18..9a63680 100644
--- a/test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.spvasm
@@ -1,81 +1,79 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureDimensions_49d274 "textureDimensions_49d274"
                OpName %res "res"
-               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
       %v2int = OpTypeVector %int 2
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_49d274 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %17 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %17
                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 %textureDimensions_49d274
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_49d274
-         %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 %textureDimensions_49d274
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_49d274
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_49d274
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_49d274
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.spvasm
index 91dc89d..c4be2a7 100644
--- a/test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureDimensions_4df9a8 "textureDimensions_4df9a8"
                OpName %res "res"
-               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
 %_ptr_Function_int = OpTypePointer Function %int
          %22 = OpConstantNull %int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_4df9a8 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %int %19
                OpStore %res %17
                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 %textureDimensions_4df9a8
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_4df9a8
-         %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 %textureDimensions_4df9a8
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_4df9a8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_4df9a8
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_4df9a8
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/50a9ee.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/50a9ee.wgsl.expected.spvasm
index 765d401..e0dd9de 100644
--- a/test/intrinsics/gen/textureDimensions/50a9ee.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/50a9ee.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 SampledCubeArray
                OpCapability ImageQuery
                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 %textureDimensions_50a9ee "textureDimensions_50a9ee"
                OpName %res "res"
-               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 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 Cube 0 1 0 1 Unknown
-%_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 Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -45,37 +44,36 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %25 = OpConstantNull %v2int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_50a9ee = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %25
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySizeLod %v3int %21 %int_0
          %16 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %16
                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 %textureDimensions_50a9ee
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureDimensions_50a9ee
-         %34 = OpFunctionCall %void %tint_symbol_2 %11
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_50a9ee
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_50a9ee
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureDimensions_50a9ee
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureDimensions_50a9ee
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.spvasm
index 626f2d0..2d27a40 100644
--- a/test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability Sampled1D
                OpCapability ImageQuery
                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 %textureDimensions_52045c "textureDimensions_52045c"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %int_0 = OpConstant %int 0
 %_ptr_Function_int = OpTypePointer Function %int
          %22 = OpConstantNull %int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_52045c = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %22
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %17 = OpImageQuerySizeLod %int %18 %int_0
                OpStore %res %17
                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 %textureDimensions_52045c
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_52045c
-         %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 %textureDimensions_52045c
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_52045c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_52045c
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_52045c
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.spvasm
index e1da323..e6470a9 100644
--- a/test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureDimensions_55b23e "textureDimensions_55b23e"
                OpName %res "res"
-               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
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_55b23e = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %int %18
                OpStore %res %16
                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 %textureDimensions_55b23e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureDimensions_55b23e
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureDimensions_55b23e
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureDimensions_55b23e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_55b23e
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_55b23e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/56ccfa.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/56ccfa.wgsl.expected.spvasm
index 2316a22..81c9798 100644
--- a/test/intrinsics/gen/textureDimensions/56ccfa.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/56ccfa.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_56ccfa "textureDimensions_56ccfa"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %22 = OpConstantNull %v3int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_56ccfa = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v3int %19
                OpStore %res %16
                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 %textureDimensions_56ccfa
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_56ccfa
-         %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 %textureDimensions_56ccfa
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_56ccfa
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_56ccfa
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_56ccfa
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/579629.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/579629.wgsl.expected.spvasm
index 0974546..5d35bf9 100644
--- a/test/intrinsics/gen/textureDimensions/579629.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/579629.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_579629 "textureDimensions_579629"
                OpName %res "res"
-               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 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 1 1 Unknown
-%_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 1 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %23 = OpConstantNull %v2int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_579629 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v2int %20
                OpStore %res %17
                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 %textureDimensions_579629
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_579629
-         %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 %textureDimensions_579629
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_579629
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_579629
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_579629
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.spvasm
index cec2ed3..9d0c96d 100644
--- a/test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_57da0b "textureDimensions_57da0b"
                OpName %res "res"
-               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
 %_ptr_Function_int = OpTypePointer Function %int
          %22 = OpConstantNull %int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_57da0b = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %int %19
                OpStore %res %17
                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 %textureDimensions_57da0b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_57da0b
-         %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 %textureDimensions_57da0b
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_57da0b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_57da0b
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_57da0b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/57e28f.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/57e28f.wgsl.expected.spvasm
index 9ba18c9..c1e6948 100644
--- a/test/intrinsics/gen/textureDimensions/57e28f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/57e28f.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
                OpCapability ImageQuery
                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 %textureDimensions_57e28f "textureDimensions_57e28f"
                OpName %res "res"
-               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 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 Cube 1 0 0 1 Unknown
-%_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 Cube 1 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,36 +42,35 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %23 = OpConstantNull %v2int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_57e28f = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %23
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySizeLod %v2int %19 %int_0
                OpStore %res %16
                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 %textureDimensions_57e28f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_57e28f
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureDimensions_57e28f
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_57e28f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_57e28f
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_57e28f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/57e7b3.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/57e7b3.wgsl.expected.spvasm
index 7e8fb3d..da69f6d 100644
--- a/test/intrinsics/gen/textureDimensions/57e7b3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/57e7b3.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_57e7b3 "textureDimensions_57e7b3"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %22 = OpConstantNull %v3int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_57e7b3 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v3int %19
                OpStore %res %16
                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 %textureDimensions_57e7b3
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_57e7b3
-         %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 %textureDimensions_57e7b3
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_57e7b3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_57e7b3
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_57e7b3
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/58a515.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/58a515.wgsl.expected.spvasm
index 85bea61..5afc929 100644
--- a/test/intrinsics/gen/textureDimensions/58a515.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/58a515.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 ImageQuery
                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 %textureDimensions_58a515 "textureDimensions_58a515"
                OpName %res "res"
-               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
@@ -44,37 +43,36 @@
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_58a515 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %16 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %16
                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 %textureDimensions_58a515
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_58a515
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_58a515
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_58a515
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_58a515
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_58a515
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.spvasm
index 7f559e8..f51c50b 100644
--- a/test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_5985f3 "textureDimensions_5985f3"
                OpName %res "res"
-               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
       %v2int = OpTypeVector %int 2
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_5985f3 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %17 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %17
                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 %textureDimensions_5985f3
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_5985f3
-         %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 %textureDimensions_5985f3
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_5985f3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_5985f3
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_5985f3
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.spvasm
index 9d43ef9..68ec968 100644
--- a/test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_5caa5e "textureDimensions_5caa5e"
                OpName %res "res"
-               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
 %_ptr_Function_int = OpTypePointer Function %int
          %22 = OpConstantNull %int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_5caa5e = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %int %19
                OpStore %res %17
                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 %textureDimensions_5caa5e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_5caa5e
-         %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 %textureDimensions_5caa5e
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_5caa5e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_5caa5e
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_5caa5e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.spvasm
index c761434..05297b0 100644
--- a/test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_5e295d "textureDimensions_5e295d"
                OpName %res "res"
-               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,37 +44,36 @@
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %25 = OpConstantNull %v2int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_5e295d = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %25
-         %22 = OpLoad %7 %arg_0
+         %22 = OpLoad %11 %arg_0
          %20 = OpImageQuerySize %v3int %22
          %17 = OpVectorShuffle %v2int %20 %20 0 1
                OpStore %res %17
                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 %textureDimensions_5e295d
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureDimensions_5e295d
-         %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 %textureDimensions_5e295d
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_5e295d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureDimensions_5e295d
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureDimensions_5e295d
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.spvasm
index fa2f410..5073da1 100644
--- a/test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureDimensions_60bf54 "textureDimensions_60bf54"
                OpName %res "res"
-               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
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %22 = OpConstantNull %v3int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_60bf54 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v3int %19
                OpStore %res %17
                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 %textureDimensions_60bf54
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_60bf54
-         %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 %textureDimensions_60bf54
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_60bf54
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_60bf54
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_60bf54
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.spvasm
index a4f9900..f146e10 100644
--- a/test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureDimensions_63f3cf "textureDimensions_63f3cf"
                OpName %res "res"
-               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
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %22 = OpConstantNull %v3int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_63f3cf = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v3int %19
                OpStore %res %16
                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 %textureDimensions_63f3cf
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_63f3cf
-         %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 %textureDimensions_63f3cf
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_63f3cf
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_63f3cf
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_63f3cf
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/66dc4e.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/66dc4e.wgsl.expected.spvasm
index c47f34c..8a9555c 100644
--- a/test/intrinsics/gen/textureDimensions/66dc4e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/66dc4e.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 ImageQuery
                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 %textureDimensions_66dc4e "textureDimensions_66dc4e"
                OpName %res "res"
-               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 NonWritable
                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
@@ -44,37 +43,36 @@
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_66dc4e = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %16 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %16
                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 %textureDimensions_66dc4e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_66dc4e
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_66dc4e
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_66dc4e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_66dc4e
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_66dc4e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/670d90.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/670d90.wgsl.expected.spvasm
index acd52e6..10b5109 100644
--- a/test/intrinsics/gen/textureDimensions/670d90.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/670d90.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureDimensions_670d90 "textureDimensions_670d90"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %22 = OpConstantNull %v3int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_670d90 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v3int %19
                OpStore %res %16
                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 %textureDimensions_670d90
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_670d90
-         %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 %textureDimensions_670d90
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_670d90
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_670d90
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_670d90
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.spvasm
index 3c80ade..471b570 100644
--- a/test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_68105c "textureDimensions_68105c"
                OpName %res "res"
-               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
       %v2int = OpTypeVector %int 2
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %23 = OpConstantNull %v2int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_68105c = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v2int %20
                OpStore %res %17
                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 %textureDimensions_68105c
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_68105c
-         %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 %textureDimensions_68105c
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_68105c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_68105c
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_68105c
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.spvasm
index 8d7860c..90a2379 100644
--- a/test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_686ef2 "textureDimensions_686ef2"
                OpName %res "res"
-               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 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 Cube 0 0 0 1 Unknown
-%_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 Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %23 = OpConstantNull %v2int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_686ef2 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %23
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySizeLod %v2int %19 %int_0
                OpStore %res %17
                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 %textureDimensions_686ef2
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_686ef2
-         %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 %textureDimensions_686ef2
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_686ef2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_686ef2
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_686ef2
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.spvasm
index 322fa31..363af60 100644
--- a/test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_6adac6 "textureDimensions_6adac6"
                OpName %res "res"
-               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
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_6adac6 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %int %18
                OpStore %res %17
                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 %textureDimensions_6adac6
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureDimensions_6adac6
-         %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 %textureDimensions_6adac6
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureDimensions_6adac6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_6adac6
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_6adac6
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/6c08ab.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/6c08ab.wgsl.expected.spvasm
index 9b6e762..e559ee8 100644
--- a/test/intrinsics/gen/textureDimensions/6c08ab.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/6c08ab.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_6c08ab "textureDimensions_6c08ab"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_6c08ab = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %int %18
                OpStore %res %16
                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 %textureDimensions_6c08ab
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureDimensions_6c08ab
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureDimensions_6c08ab
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureDimensions_6c08ab
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_6c08ab
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_6c08ab
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/6e2d12.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/6e2d12.wgsl.expected.spvasm
index f2af0b5..119c472 100644
--- a/test/intrinsics/gen/textureDimensions/6e2d12.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/6e2d12.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_6e2d12 "textureDimensions_6e2d12"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_6e2d12 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %int %18
                OpStore %res %17
                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 %textureDimensions_6e2d12
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureDimensions_6e2d12
-         %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 %textureDimensions_6e2d12
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureDimensions_6e2d12
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_6e2d12
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_6e2d12
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/6ec1b4.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/6ec1b4.wgsl.expected.spvasm
index d9b8ac9..4f8be17 100644
--- a/test/intrinsics/gen/textureDimensions/6ec1b4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/6ec1b4.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 ImageQuery
                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 %textureDimensions_6ec1b4 "textureDimensions_6ec1b4"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -44,36 +43,35 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %24 = OpConstantNull %v3int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_6ec1b4 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %24
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySizeLod %v3int %20 %int_0
                OpStore %res %17
                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 %textureDimensions_6ec1b4
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_6ec1b4
-         %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 %textureDimensions_6ec1b4
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_6ec1b4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_6ec1b4
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_6ec1b4
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/6f0d79.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/6f0d79.wgsl.expected.spvasm
index c82c664..f1032b6 100644
--- a/test/intrinsics/gen/textureDimensions/6f0d79.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/6f0d79.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 ImageQuery
                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 %textureDimensions_6f0d79 "textureDimensions_6f0d79"
                OpName %res "res"
-               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
@@ -44,37 +43,36 @@
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_6f0d79 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %16 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %16
                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 %textureDimensions_6f0d79
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_6f0d79
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_6f0d79
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_6f0d79
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_6f0d79
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_6f0d79
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.spvasm
index d1d4436..514d19f 100644
--- a/test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_702c53 "textureDimensions_702c53"
                OpName %res "res"
-               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
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_702c53 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v2int %19
                OpStore %res %16
                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 %textureDimensions_702c53
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_702c53
-         %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 %textureDimensions_702c53
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_702c53
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_702c53
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_702c53
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/70e26a.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/70e26a.wgsl.expected.spvasm
index b729123..a15cb3d 100644
--- a/test/intrinsics/gen/textureDimensions/70e26a.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/70e26a.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_70e26a "textureDimensions_70e26a"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_int = OpTypePointer Function %int
          %22 = OpConstantNull %int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_70e26a = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %int %19
                OpStore %res %17
                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 %textureDimensions_70e26a
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_70e26a
-         %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 %textureDimensions_70e26a
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_70e26a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_70e26a
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_70e26a
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/71e8f7.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/71e8f7.wgsl.expected.spvasm
index 5655892..8c87538 100644
--- a/test/intrinsics/gen/textureDimensions/71e8f7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/71e8f7.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_71e8f7 "textureDimensions_71e8f7"
                OpName %res "res"
-               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 NonWritable
                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
       %v2int = OpTypeVector %int 2
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %23 = OpConstantNull %v2int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_71e8f7 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v2int %20
                OpStore %res %17
                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 %textureDimensions_71e8f7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_71e8f7
-         %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 %textureDimensions_71e8f7
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_71e8f7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_71e8f7
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_71e8f7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/72e5d6.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/72e5d6.wgsl.expected.spvasm
index 95cf62b..b645a15 100644
--- a/test/intrinsics/gen/textureDimensions/72e5d6.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/72e5d6.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
                OpCapability ImageQuery
                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 %textureDimensions_72e5d6 "textureDimensions_72e5d6"
                OpName %res "res"
-               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 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 1 1 0 1 Unknown
-%_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 1 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -44,37 +43,36 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %25 = OpConstantNull %v2int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_72e5d6 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %25
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySizeLod %v3int %21 %int_0
          %16 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %16
                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 %textureDimensions_72e5d6
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureDimensions_72e5d6
-         %34 = OpFunctionCall %void %tint_symbol_2 %11
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_72e5d6
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_72e5d6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureDimensions_72e5d6
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureDimensions_72e5d6
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/770103.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/770103.wgsl.expected.spvasm
index 2bce881..fdaac94 100644
--- a/test/intrinsics/gen/textureDimensions/770103.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/770103.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_770103 "textureDimensions_770103"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %22 = OpConstantNull %v3int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_770103 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v3int %19
                OpStore %res %16
                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 %textureDimensions_770103
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_770103
-         %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 %textureDimensions_770103
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_770103
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_770103
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_770103
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.spvasm
index ad99541..eaeb505 100644
--- a/test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability Sampled1D
                OpCapability ImageQuery
                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 %textureDimensions_79df87 "textureDimensions_79df87"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpConstantNull %int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_79df87 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %23
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySizeLod %int %19 %int_0
                OpStore %res %17
                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 %textureDimensions_79df87
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_79df87
-         %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 %textureDimensions_79df87
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_79df87
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_79df87
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_79df87
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/7bf826.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/7bf826.wgsl.expected.spvasm
index f4e79cb..c6fc9b8 100644
--- a/test/intrinsics/gen/textureDimensions/7bf826.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/7bf826.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
                OpCapability ImageQuery
                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 %textureDimensions_7bf826 "textureDimensions_7bf826"
                OpName %res "res"
-               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 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 1 1 0 1 Unknown
-%_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 1 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -44,37 +43,36 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %25 = OpConstantNull %v2int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_7bf826 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %25
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySizeLod %v3int %21 %int_0
          %16 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %16
                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 %textureDimensions_7bf826
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureDimensions_7bf826
-         %34 = OpFunctionCall %void %tint_symbol_2 %11
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_7bf826
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_7bf826
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureDimensions_7bf826
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureDimensions_7bf826
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.spvasm
index b5079a3..5a25cc1 100644
--- a/test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureDimensions_7f5c2e "textureDimensions_7f5c2e"
                OpName %res "res"
-               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
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_7f5c2e = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v2int %19
                OpStore %res %17
                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 %textureDimensions_7f5c2e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_7f5c2e
-         %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 %textureDimensions_7f5c2e
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_7f5c2e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_7f5c2e
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_7f5c2e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.spvasm
index 37cba25..814b999 100644
--- a/test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_8028f3 "textureDimensions_8028f3"
                OpName %res "res"
-               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
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %22 = OpConstantNull %v3int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_8028f3 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v3int %19
                OpStore %res %16
                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 %textureDimensions_8028f3
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_8028f3
-         %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 %textureDimensions_8028f3
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_8028f3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_8028f3
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_8028f3
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/811679.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/811679.wgsl.expected.spvasm
index 0cd8381..c051822 100644
--- a/test/intrinsics/gen/textureDimensions/811679.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/811679.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_811679 "textureDimensions_811679"
                OpName %res "res"
-               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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %23 = OpConstantNull %v3int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_811679 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v3int %20
                OpStore %res %17
                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 %textureDimensions_811679
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_811679
-         %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 %textureDimensions_811679
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_811679
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_811679
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_811679
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/820596.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/820596.wgsl.expected.spvasm
index 698abd1..a657294 100644
--- a/test/intrinsics/gen/textureDimensions/820596.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/820596.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureDimensions_820596 "textureDimensions_820596"
                OpName %res "res"
-               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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %23 = OpConstantNull %v3int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_820596 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v3int %20
                OpStore %res %17
                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 %textureDimensions_820596
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_820596
-         %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 %textureDimensions_820596
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_820596
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_820596
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_820596
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/82138e.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/82138e.wgsl.expected.spvasm
index 5f80c26..e9fea45 100644
--- a/test/intrinsics/gen/textureDimensions/82138e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/82138e.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_82138e "textureDimensions_82138e"
                OpName %res "res"
-               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 NonWritable
                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
       %v2int = OpTypeVector %int 2
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %23 = OpConstantNull %v2int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_82138e = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v2int %20
                OpStore %res %17
                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 %textureDimensions_82138e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_82138e
-         %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 %textureDimensions_82138e
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_82138e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_82138e
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_82138e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/8347ab.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/8347ab.wgsl.expected.spvasm
index 307182e..521be2b 100644
--- a/test/intrinsics/gen/textureDimensions/8347ab.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/8347ab.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_8347ab "textureDimensions_8347ab"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_8347ab = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %int %18
                OpStore %res %16
                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 %textureDimensions_8347ab
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureDimensions_8347ab
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureDimensions_8347ab
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureDimensions_8347ab
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_8347ab
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_8347ab
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.spvasm
index 818a993..32e7431 100644
--- a/test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_83ee5a "textureDimensions_83ee5a"
                OpName %res "res"
-               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
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_83ee5a = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v2int %19
                OpStore %res %17
                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 %textureDimensions_83ee5a
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_83ee5a
-         %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 %textureDimensions_83ee5a
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_83ee5a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_83ee5a
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_83ee5a
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/85d556.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/85d556.wgsl.expected.spvasm
index 0b8ccff..c028495 100644
--- a/test/intrinsics/gen/textureDimensions/85d556.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/85d556.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
                OpCapability ImageQuery
                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 %textureDimensions_85d556 "textureDimensions_85d556"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -44,37 +43,36 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %25 = OpConstantNull %v2int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_85d556 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %25
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySizeLod %v3int %21 %int_0
          %16 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %16
                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 %textureDimensions_85d556
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureDimensions_85d556
-         %34 = OpFunctionCall %void %tint_symbol_2 %11
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_85d556
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_85d556
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureDimensions_85d556
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureDimensions_85d556
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/8799ee.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/8799ee.wgsl.expected.spvasm
index d00e641..385626f 100644
--- a/test/intrinsics/gen/textureDimensions/8799ee.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/8799ee.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_8799ee "textureDimensions_8799ee"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %22 = OpConstantNull %v3int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_8799ee = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v3int %19
                OpStore %res %17
                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 %textureDimensions_8799ee
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_8799ee
-         %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 %textureDimensions_8799ee
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_8799ee
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_8799ee
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_8799ee
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/88ad17.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/88ad17.wgsl.expected.spvasm
index f47c525..a16d764 100644
--- a/test/intrinsics/gen/textureDimensions/88ad17.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/88ad17.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 ImageQuery
                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 %textureDimensions_88ad17 "textureDimensions_88ad17"
                OpName %res "res"
-               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 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 Cube 0 0 0 1 Unknown
-%_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 Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -44,36 +43,35 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_88ad17 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySizeLod %v2int %20 %int_0
                OpStore %res %17
                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 %textureDimensions_88ad17
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_88ad17
-         %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 %textureDimensions_88ad17
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_88ad17
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_88ad17
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_88ad17
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/89a864.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/89a864.wgsl.expected.spvasm
index 21c9a1f..8f178dc 100644
--- a/test/intrinsics/gen/textureDimensions/89a864.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/89a864.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_89a864 "textureDimensions_89a864"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_89a864 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v2int %19
                OpStore %res %16
                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 %textureDimensions_89a864
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_89a864
-         %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 %textureDimensions_89a864
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_89a864
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_89a864
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_89a864
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/8aa4c4.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/8aa4c4.wgsl.expected.spvasm
index 109a999..4b2376f 100644
--- a/test/intrinsics/gen/textureDimensions/8aa4c4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/8aa4c4.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
                OpCapability ImageQuery
                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 %textureDimensions_8aa4c4 "textureDimensions_8aa4c4"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,36 +42,35 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %23 = OpConstantNull %v3int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_8aa4c4 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %23
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySizeLod %v3int %19 %int_0
                OpStore %res %16
                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 %textureDimensions_8aa4c4
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_8aa4c4
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureDimensions_8aa4c4
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_8aa4c4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_8aa4c4
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_8aa4c4
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/8b4fff.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/8b4fff.wgsl.expected.spvasm
index d8b1432..eabe3a2 100644
--- a/test/intrinsics/gen/textureDimensions/8b4fff.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/8b4fff.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_8b4fff "textureDimensions_8b4fff"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_8b4fff = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v2int %19
                OpStore %res %17
                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 %textureDimensions_8b4fff
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_8b4fff
-         %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 %textureDimensions_8b4fff
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_8b4fff
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_8b4fff
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_8b4fff
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/8d89f8.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/8d89f8.wgsl.expected.spvasm
index a8c50bc..9eb635a 100644
--- a/test/intrinsics/gen/textureDimensions/8d89f8.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/8d89f8.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_8d89f8 "textureDimensions_8d89f8"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_8d89f8 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %int %18
                OpStore %res %17
                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 %textureDimensions_8d89f8
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureDimensions_8d89f8
-         %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 %textureDimensions_8d89f8
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureDimensions_8d89f8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_8d89f8
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_8d89f8
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.spvasm
index ca9d65b..7afdac3 100644
--- a/test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_8deb5e "textureDimensions_8deb5e"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %int_0 = OpConstant %int 0
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %23 = OpConstantNull %v3int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_8deb5e = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %23
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySizeLod %v3int %19 %int_0
                OpStore %res %17
                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 %textureDimensions_8deb5e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_8deb5e
-         %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 %textureDimensions_8deb5e
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_8deb5e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_8deb5e
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_8deb5e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/8f20bf.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/8f20bf.wgsl.expected.spvasm
index baedba3..952b3d4 100644
--- a/test/intrinsics/gen/textureDimensions/8f20bf.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/8f20bf.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 SampledCubeArray
                OpCapability ImageQuery
                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 %textureDimensions_8f20bf "textureDimensions_8f20bf"
                OpName %res "res"
-               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 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 Cube 0 1 0 1 Unknown
-%_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 Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -45,37 +44,36 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %25 = OpConstantNull %v2int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_8f20bf = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %25
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySizeLod %v3int %21 %int_0
          %16 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %16
                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 %textureDimensions_8f20bf
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureDimensions_8f20bf
-         %34 = OpFunctionCall %void %tint_symbol_2 %11
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_8f20bf
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_8f20bf
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureDimensions_8f20bf
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureDimensions_8f20bf
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.spvasm
index 3c2dc1f..0f3281e 100644
--- a/test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_8fca0f "textureDimensions_8fca0f"
                OpName %res "res"
-               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
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %22 = OpConstantNull %v3int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_8fca0f = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v3int %19
                OpStore %res %16
                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 %textureDimensions_8fca0f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_8fca0f
-         %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 %textureDimensions_8fca0f
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_8fca0f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_8fca0f
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_8fca0f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/90340b.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/90340b.wgsl.expected.spvasm
index 62d5f91..2e0527a 100644
--- a/test/intrinsics/gen/textureDimensions/90340b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/90340b.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 SampledCubeArray
                OpCapability ImageQuery
                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 %textureDimensions_90340b "textureDimensions_90340b"
                OpName %res "res"
-               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 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 Cube 1 1 0 1 Unknown
-%_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 Cube 1 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -45,37 +44,36 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %25 = OpConstantNull %v2int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_90340b = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %25
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySizeLod %v3int %21 %int_0
          %16 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %16
                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 %textureDimensions_90340b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureDimensions_90340b
-         %34 = OpFunctionCall %void %tint_symbol_2 %11
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_90340b
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_90340b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureDimensions_90340b
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureDimensions_90340b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.spvasm
index 13fd167..d0099a0 100644
--- a/test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.spvasm
@@ -1,44 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureDimensions_9042ab "textureDimensions_9042ab"
                OpName %res "res"
-               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,37 +45,36 @@
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %25 = OpConstantNull %v2int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_9042ab = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %25
-         %22 = OpLoad %7 %arg_0
+         %22 = OpLoad %11 %arg_0
          %20 = OpImageQuerySize %v3int %22
          %17 = OpVectorShuffle %v2int %20 %20 0 1
                OpStore %res %17
                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 %textureDimensions_9042ab
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureDimensions_9042ab
-         %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 %textureDimensions_9042ab
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_9042ab
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureDimensions_9042ab
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureDimensions_9042ab
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/924742.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/924742.wgsl.expected.spvasm
index 5e4c2d2..fa55bd2 100644
--- a/test/intrinsics/gen/textureDimensions/924742.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/924742.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureDimensions_924742 "textureDimensions_924742"
                OpName %res "res"
-               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 NonWritable
                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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %23 = OpConstantNull %v3int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_924742 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v3int %20
                OpStore %res %17
                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 %textureDimensions_924742
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_924742
-         %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 %textureDimensions_924742
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_924742
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_924742
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_924742
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/92ad20.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/92ad20.wgsl.expected.spvasm
index a60d51c..11639fb 100644
--- a/test/intrinsics/gen/textureDimensions/92ad20.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/92ad20.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_92ad20 "textureDimensions_92ad20"
                OpName %res "res"
-               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 NonWritable
                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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %23 = OpConstantNull %v3int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_92ad20 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v3int %20
                OpStore %res %17
                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 %textureDimensions_92ad20
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_92ad20
-         %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 %textureDimensions_92ad20
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_92ad20
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_92ad20
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_92ad20
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/9393b0.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/9393b0.wgsl.expected.spvasm
index 570b740..d87c269 100644
--- a/test/intrinsics/gen/textureDimensions/9393b0.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/9393b0.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
                OpCapability ImageQuery
                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 %textureDimensions_9393b0 "textureDimensions_9393b0"
                OpName %res "res"
-               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 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 Cube 1 0 0 1 Unknown
-%_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 Cube 1 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,36 +42,35 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %23 = OpConstantNull %v2int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_9393b0 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %23
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySizeLod %v2int %19 %int_0
                OpStore %res %16
                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 %textureDimensions_9393b0
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_9393b0
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureDimensions_9393b0
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_9393b0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_9393b0
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_9393b0
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/939fdb.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/939fdb.wgsl.expected.spvasm
index 2c0fc51..facc7e6 100644
--- a/test/intrinsics/gen/textureDimensions/939fdb.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/939fdb.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
                OpCapability ImageQuery
                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 %textureDimensions_939fdb "textureDimensions_939fdb"
                OpName %res "res"
-               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 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 1 0 0 1 Unknown
-%_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 1 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,36 +42,35 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %23 = OpConstantNull %v2int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_939fdb = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %23
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySizeLod %v2int %19 %int_0
                OpStore %res %16
                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 %textureDimensions_939fdb
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_939fdb
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureDimensions_939fdb
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_939fdb
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_939fdb
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_939fdb
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/9572e5.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/9572e5.wgsl.expected.spvasm
index bab2499..d95a0df 100644
--- a/test/intrinsics/gen/textureDimensions/9572e5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/9572e5.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_9572e5 "textureDimensions_9572e5"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %22 = OpConstantNull %v3int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_9572e5 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v3int %19
                OpStore %res %16
                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 %textureDimensions_9572e5
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_9572e5
-         %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 %textureDimensions_9572e5
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_9572e5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_9572e5
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_9572e5
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.spvasm
index 1c1cf34..ceac95f 100644
--- a/test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_962dcd "textureDimensions_962dcd"
                OpName %res "res"
-               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 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 Cube 0 0 0 1 Unknown
-%_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 Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %23 = OpConstantNull %v2int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_962dcd = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %23
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySizeLod %v2int %19 %int_0
                OpStore %res %17
                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 %textureDimensions_962dcd
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_962dcd
-         %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 %textureDimensions_962dcd
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_962dcd
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_962dcd
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_962dcd
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/998f6b.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/998f6b.wgsl.expected.spvasm
index 280d5db..2073a4e 100644
--- a/test/intrinsics/gen/textureDimensions/998f6b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/998f6b.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_998f6b "textureDimensions_998f6b"
                OpName %res "res"
-               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 NonWritable
                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,37 +44,36 @@
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %25 = OpConstantNull %v2int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_998f6b = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %25
-         %22 = OpLoad %7 %arg_0
+         %22 = OpLoad %11 %arg_0
          %20 = OpImageQuerySize %v3int %22
          %17 = OpVectorShuffle %v2int %20 %20 0 1
                OpStore %res %17
                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 %textureDimensions_998f6b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureDimensions_998f6b
-         %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 %textureDimensions_998f6b
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_998f6b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureDimensions_998f6b
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureDimensions_998f6b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/9abfe5.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/9abfe5.wgsl.expected.spvasm
index 1d99df4..6a733e8 100644
--- a/test/intrinsics/gen/textureDimensions/9abfe5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/9abfe5.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 ImageQuery
                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 %textureDimensions_9abfe5 "textureDimensions_9abfe5"
                OpName %res "res"
-               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
@@ -44,37 +43,36 @@
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_9abfe5 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %16 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %16
                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 %textureDimensions_9abfe5
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_9abfe5
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_9abfe5
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_9abfe5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_9abfe5
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_9abfe5
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/9c9c57.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/9c9c57.wgsl.expected.spvasm
index a6b9920..6d34f92 100644
--- a/test/intrinsics/gen/textureDimensions/9c9c57.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/9c9c57.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 ImageQuery
                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 %textureDimensions_9c9c57 "textureDimensions_9c9c57"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
@@ -44,37 +43,36 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %25 = OpConstantNull %v2int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_9c9c57 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %25
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySizeLod %v3int %21 %int_0
          %17 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %17
                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 %textureDimensions_9c9c57
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureDimensions_9c9c57
-         %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 %textureDimensions_9c9c57
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_9c9c57
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureDimensions_9c9c57
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureDimensions_9c9c57
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.spvasm
index 6eb0177..edaecfe 100644
--- a/test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_9da9e2 "textureDimensions_9da9e2"
                OpName %res "res"
-               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
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_9da9e2 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %int %18
                OpStore %res %17
                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 %textureDimensions_9da9e2
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureDimensions_9da9e2
-         %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 %textureDimensions_9da9e2
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureDimensions_9da9e2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_9da9e2
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_9da9e2
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.spvasm
index e4d6fea..b450c7b 100644
--- a/test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_9eb8d8 "textureDimensions_9eb8d8"
                OpName %res "res"
-               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
       %v2int = OpTypeVector %int 2
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %23 = OpConstantNull %v2int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_9eb8d8 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v2int %20
                OpStore %res %17
                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 %textureDimensions_9eb8d8
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_9eb8d8
-         %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 %textureDimensions_9eb8d8
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_9eb8d8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_9eb8d8
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_9eb8d8
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/9f8e46.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/9f8e46.wgsl.expected.spvasm
index c102182..9fabd6e 100644
--- a/test/intrinsics/gen/textureDimensions/9f8e46.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/9f8e46.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
                OpCapability ImageQuery
                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 %textureDimensions_9f8e46 "textureDimensions_9f8e46"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,36 +42,35 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %23 = OpConstantNull %v2int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_9f8e46 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %23
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySizeLod %v2int %19 %int_0
                OpStore %res %16
                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 %textureDimensions_9f8e46
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_9f8e46
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureDimensions_9f8e46
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_9f8e46
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_9f8e46
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_9f8e46
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/a01845.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/a01845.wgsl.expected.spvasm
index 40146a8..03a54f6 100644
--- a/test/intrinsics/gen/textureDimensions/a01845.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/a01845.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 SampledCubeArray
                OpCapability ImageQuery
                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 %textureDimensions_a01845 "textureDimensions_a01845"
                OpName %res "res"
-               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 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 Cube 1 1 0 1 Unknown
-%_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 Cube 1 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -45,37 +44,36 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %25 = OpConstantNull %v2int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_a01845 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %25
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySizeLod %v3int %21 %int_0
          %16 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %16
                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 %textureDimensions_a01845
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureDimensions_a01845
-         %34 = OpFunctionCall %void %tint_symbol_2 %11
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_a01845
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_a01845
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureDimensions_a01845
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureDimensions_a01845
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/a0aad1.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/a0aad1.wgsl.expected.spvasm
index 20f60aa..6960bea 100644
--- a/test/intrinsics/gen/textureDimensions/a0aad1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/a0aad1.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_a0aad1 "textureDimensions_a0aad1"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_a0aad1 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v2int %19
                OpStore %res %17
                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 %textureDimensions_a0aad1
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_a0aad1
-         %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 %textureDimensions_a0aad1
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_a0aad1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_a0aad1
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_a0aad1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/a0e4ec.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/a0e4ec.wgsl.expected.spvasm
index c3bbdb2..91531ce 100644
--- a/test/intrinsics/gen/textureDimensions/a0e4ec.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/a0e4ec.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_a0e4ec "textureDimensions_a0e4ec"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %22 = OpConstantNull %v3int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_a0e4ec = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v3int %19
                OpStore %res %17
                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 %textureDimensions_a0e4ec
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_a0e4ec
-         %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 %textureDimensions_a0e4ec
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_a0e4ec
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_a0e4ec
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_a0e4ec
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.spvasm
index a91bab2..1694f88 100644
--- a/test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability Sampled1D
                OpCapability ImageQuery
                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 %textureDimensions_a7d565 "textureDimensions_a7d565"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpConstantNull %int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_a7d565 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %23
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySizeLod %int %19 %int_0
                OpStore %res %17
                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 %textureDimensions_a7d565
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_a7d565
-         %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 %textureDimensions_a7d565
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_a7d565
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_a7d565
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_a7d565
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.spvasm
index c1d9638..9e5a66a 100644
--- a/test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_a863f2 "textureDimensions_a863f2"
                OpName %res "res"
-               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
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_a863f2 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %int %18
                OpStore %res %16
                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 %textureDimensions_a863f2
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureDimensions_a863f2
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureDimensions_a863f2
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureDimensions_a863f2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_a863f2
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_a863f2
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/a9c9c1.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/a9c9c1.wgsl.expected.spvasm
index ae83811..a075354 100644
--- a/test/intrinsics/gen/textureDimensions/a9c9c1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/a9c9c1.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
                OpCapability ImageQuery
                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 %textureDimensions_a9c9c1 "textureDimensions_a9c9c1"
                OpName %res "res"
-               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 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 Cube 0 0 0 1 Unknown
-%_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 Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,36 +42,35 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %23 = OpConstantNull %v2int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_a9c9c1 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %23
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySizeLod %v2int %19 %int_0
                OpStore %res %16
                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 %textureDimensions_a9c9c1
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_a9c9c1
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureDimensions_a9c9c1
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_a9c9c1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_a9c9c1
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_a9c9c1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/ae457f.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/ae457f.wgsl.expected.spvasm
index 0af7bba..a0f37ca 100644
--- a/test/intrinsics/gen/textureDimensions/ae457f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/ae457f.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_ae457f "textureDimensions_ae457f"
                OpName %res "res"
-               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 NonWritable
                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,37 +44,36 @@
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %25 = OpConstantNull %v2int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_ae457f = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %25
-         %22 = OpLoad %7 %arg_0
+         %22 = OpLoad %11 %arg_0
          %20 = OpImageQuerySize %v3int %22
          %17 = OpVectorShuffle %v2int %20 %20 0 1
                OpStore %res %17
                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 %textureDimensions_ae457f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureDimensions_ae457f
-         %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 %textureDimensions_ae457f
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_ae457f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureDimensions_ae457f
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureDimensions_ae457f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.spvasm
index e42d9e0..ce5229c 100644
--- a/test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_b0e16d "textureDimensions_b0e16d"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %23 = OpConstantNull %v2int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_b0e16d = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %23
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySizeLod %v2int %19 %int_0
                OpStore %res %17
                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 %textureDimensions_b0e16d
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_b0e16d
-         %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 %textureDimensions_b0e16d
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_b0e16d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_b0e16d
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_b0e16d
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/b3c954.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/b3c954.wgsl.expected.spvasm
index 7c574ca..f8a392c 100644
--- a/test/intrinsics/gen/textureDimensions/b3c954.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/b3c954.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 ImageQuery
                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 %textureDimensions_b3c954 "textureDimensions_b3c954"
                OpName %res "res"
-               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 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 Cube 0 0 0 1 Unknown
-%_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 Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -44,36 +43,35 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_b3c954 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySizeLod %v2int %20 %int_0
                OpStore %res %17
                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 %textureDimensions_b3c954
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_b3c954
-         %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 %textureDimensions_b3c954
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_b3c954
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_b3c954
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_b3c954
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.spvasm
index 0782a4b..b700841 100644
--- a/test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability Sampled1D
                OpCapability ImageQuery
                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 %textureDimensions_b3e407 "textureDimensions_b3e407"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Function_int = OpTypePointer Function %int
          %22 = OpConstantNull %int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_b3e407 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %22
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQuerySizeLod %int %18 %int_0
                OpStore %res %16
                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 %textureDimensions_b3e407
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_b3e407
-         %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 %textureDimensions_b3e407
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_b3e407
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_b3e407
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_b3e407
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.spvasm
index fbc7759..a0757e4 100644
--- a/test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_b91240 "textureDimensions_b91240"
                OpName %res "res"
-               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
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_b91240 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v2int %19
                OpStore %res %16
                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 %textureDimensions_b91240
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_b91240
-         %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 %textureDimensions_b91240
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_b91240
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_b91240
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_b91240
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/ba1481.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/ba1481.wgsl.expected.spvasm
index 618d11b..9d157ae 100644
--- a/test/intrinsics/gen/textureDimensions/ba1481.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/ba1481.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
                OpCapability ImageQuery
                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 %textureDimensions_ba1481 "textureDimensions_ba1481"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,36 +42,35 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %23 = OpConstantNull %v2int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_ba1481 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %23
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySizeLod %v2int %19 %int_0
                OpStore %res %16
                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 %textureDimensions_ba1481
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_ba1481
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureDimensions_ba1481
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_ba1481
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_ba1481
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_ba1481
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/ba6e15.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/ba6e15.wgsl.expected.spvasm
index 2e033df..404e706 100644
--- a/test/intrinsics/gen/textureDimensions/ba6e15.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/ba6e15.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_ba6e15 "textureDimensions_ba6e15"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_ba6e15 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v2int %19
                OpStore %res %16
                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 %textureDimensions_ba6e15
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_ba6e15
-         %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 %textureDimensions_ba6e15
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_ba6e15
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_ba6e15
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_ba6e15
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.spvasm
index 5524466..7d30072 100644
--- a/test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_bb3dde "textureDimensions_bb3dde"
                OpName %res "res"
-               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
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %22 = OpConstantNull %v3int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_bb3dde = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v3int %19
                OpStore %res %17
                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 %textureDimensions_bb3dde
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_bb3dde
-         %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 %textureDimensions_bb3dde
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_bb3dde
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_bb3dde
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_bb3dde
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/c2215f.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/c2215f.wgsl.expected.spvasm
index 52cc05f..b70a750 100644
--- a/test/intrinsics/gen/textureDimensions/c2215f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/c2215f.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 ImageQuery
                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 %textureDimensions_c2215f "textureDimensions_c2215f"
                OpName %res "res"
-               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 NonWritable
                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
@@ -44,37 +43,36 @@
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_c2215f = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %16 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %16
                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 %textureDimensions_c2215f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_c2215f
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_c2215f
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_c2215f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_c2215f
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_c2215f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.spvasm
index 6bfa57c..05cad7c 100644
--- a/test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_c30e75 "textureDimensions_c30e75"
                OpName %res "res"
-               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
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_c30e75 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v2int %19
                OpStore %res %17
                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 %textureDimensions_c30e75
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_c30e75
-         %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 %textureDimensions_c30e75
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_c30e75
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_c30e75
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_c30e75
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/c60b66.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/c60b66.wgsl.expected.spvasm
index 7f6cf25..fe18056 100644
--- a/test/intrinsics/gen/textureDimensions/c60b66.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/c60b66.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_c60b66 "textureDimensions_c60b66"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_c60b66 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %int %18
                OpStore %res %17
                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 %textureDimensions_c60b66
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureDimensions_c60b66
-         %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 %textureDimensions_c60b66
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureDimensions_c60b66
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_c60b66
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_c60b66
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/c74533.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/c74533.wgsl.expected.spvasm
index 433d410..0ca1760 100644
--- a/test/intrinsics/gen/textureDimensions/c74533.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/c74533.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_c74533 "textureDimensions_c74533"
                OpName %res "res"
-               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 NonWritable
                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
       %v2int = OpTypeVector %int 2
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %23 = OpConstantNull %v2int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_c74533 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v2int %20
                OpStore %res %17
                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 %textureDimensions_c74533
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_c74533
-         %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 %textureDimensions_c74533
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_c74533
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_c74533
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_c74533
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.spvasm
index 15af643..0f1070d 100644
--- a/test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_c7943d "textureDimensions_c7943d"
                OpName %res "res"
-               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
       %v2int = OpTypeVector %int 2
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %23 = OpConstantNull %v2int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_c7943d = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v2int %20
                OpStore %res %17
                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 %textureDimensions_c7943d
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_c7943d
-         %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 %textureDimensions_c7943d
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_c7943d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_c7943d
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_c7943d
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/caaabb.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/caaabb.wgsl.expected.spvasm
index c0faeb1..545e9ce 100644
--- a/test/intrinsics/gen/textureDimensions/caaabb.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/caaabb.wgsl.expected.spvasm
@@ -1,81 +1,79 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureDimensions_caaabb "textureDimensions_caaabb"
                OpName %res "res"
-               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 NonWritable
                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
       %v2int = OpTypeVector %int 2
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_caaabb = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %17 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %17
                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 %textureDimensions_caaabb
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_caaabb
-         %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 %textureDimensions_caaabb
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_caaabb
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_caaabb
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_caaabb
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/cc5478.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/cc5478.wgsl.expected.spvasm
index ab716b1..a850b0b 100644
--- a/test/intrinsics/gen/textureDimensions/cc5478.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/cc5478.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_cc5478 "textureDimensions_cc5478"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_cc5478 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %int %18
                OpStore %res %16
                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 %textureDimensions_cc5478
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureDimensions_cc5478
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureDimensions_cc5478
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureDimensions_cc5478
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_cc5478
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_cc5478
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.spvasm
index ce06dbb..21f2dd1 100644
--- a/test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureDimensions_cc968c "textureDimensions_cc968c"
                OpName %res "res"
-               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
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_cc968c = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %int %18
                OpStore %res %17
                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 %textureDimensions_cc968c
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureDimensions_cc968c
-         %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 %textureDimensions_cc968c
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureDimensions_cc968c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_cc968c
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_cc968c
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.spvasm
index c12ca5c..ae7cb8d 100644
--- a/test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_cccc8f "textureDimensions_cccc8f"
                OpName %res "res"
-               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
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_cccc8f = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %int %18
                OpStore %res %16
                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 %textureDimensions_cccc8f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureDimensions_cccc8f
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureDimensions_cccc8f
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureDimensions_cccc8f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_cccc8f
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_cccc8f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.spvasm
index 546e8a1..6d33337 100644
--- a/test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_cd76a7 "textureDimensions_cd76a7"
                OpName %res "res"
-               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
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %22 = OpConstantNull %v3int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_cd76a7 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v3int %19
                OpStore %res %16
                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 %textureDimensions_cd76a7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_cd76a7
-         %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 %textureDimensions_cd76a7
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_cd76a7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_cd76a7
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_cd76a7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/cdaff9.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/cdaff9.wgsl.expected.spvasm
index 0b9efd8..db04d25 100644
--- a/test/intrinsics/gen/textureDimensions/cdaff9.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/cdaff9.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_cdaff9 "textureDimensions_cdaff9"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %22 = OpConstantNull %v3int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_cdaff9 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v3int %19
                OpStore %res %16
                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 %textureDimensions_cdaff9
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_cdaff9
-         %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 %textureDimensions_cdaff9
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_cdaff9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_cdaff9
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_cdaff9
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.spvasm
index 946919e..30caae8 100644
--- a/test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_cdf473 "textureDimensions_cdf473"
                OpName %res "res"
-               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
       %v2int = OpTypeVector %int 2
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_cdf473 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %17 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %17
                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 %textureDimensions_cdf473
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_cdf473
-         %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 %textureDimensions_cdf473
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_cdf473
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_cdf473
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_cdf473
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/cec841.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/cec841.wgsl.expected.spvasm
index 419ce59..34eb8ec 100644
--- a/test/intrinsics/gen/textureDimensions/cec841.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/cec841.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
                OpCapability ImageQuery
                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 %textureDimensions_cec841 "textureDimensions_cec841"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -44,37 +43,36 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %25 = OpConstantNull %v2int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_cec841 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %25
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySizeLod %v3int %21 %int_0
          %16 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %16
                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 %textureDimensions_cec841
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureDimensions_cec841
-         %34 = OpFunctionCall %void %tint_symbol_2 %11
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_cec841
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_cec841
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureDimensions_cec841
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureDimensions_cec841
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/cf1d42.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/cf1d42.wgsl.expected.spvasm
index b9e6602..ecc9d6b 100644
--- a/test/intrinsics/gen/textureDimensions/cf1d42.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/cf1d42.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_cf1d42 "textureDimensions_cf1d42"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_cf1d42 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %int %18
                OpStore %res %16
                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 %textureDimensions_cf1d42
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureDimensions_cf1d42
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureDimensions_cf1d42
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureDimensions_cf1d42
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_cf1d42
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_cf1d42
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.spvasm
index f4aec52..62a64df 100644
--- a/test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_cf7e43 "textureDimensions_cf7e43"
                OpName %res "res"
-               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
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %22 = OpConstantNull %v3int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_cf7e43 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v3int %19
                OpStore %res %16
                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 %textureDimensions_cf7e43
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_cf7e43
-         %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 %textureDimensions_cf7e43
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_cf7e43
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_cf7e43
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_cf7e43
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/d125bc.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/d125bc.wgsl.expected.spvasm
index b2e7490..3d3b32a 100644
--- a/test/intrinsics/gen/textureDimensions/d125bc.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/d125bc.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
                OpCapability ImageQuery
                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 %textureDimensions_d125bc "textureDimensions_d125bc"
                OpName %res "res"
-               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 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 Cube 0 0 0 1 Unknown
-%_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 Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,36 +42,35 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %23 = OpConstantNull %v2int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_d125bc = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %23
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySizeLod %v2int %19 %int_0
                OpStore %res %16
                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 %textureDimensions_d125bc
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_d125bc
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureDimensions_d125bc
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_d125bc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_d125bc
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_d125bc
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/d40b9e.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/d40b9e.wgsl.expected.spvasm
index 05a43cf..ac92139 100644
--- a/test/intrinsics/gen/textureDimensions/d40b9e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/d40b9e.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_d40b9e "textureDimensions_d40b9e"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_d40b9e = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v2int %19
                OpStore %res %17
                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 %textureDimensions_d40b9e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_d40b9e
-         %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 %textureDimensions_d40b9e
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_d40b9e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_d40b9e
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_d40b9e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/d4106f.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/d4106f.wgsl.expected.spvasm
index 642a64a..8a0011b 100644
--- a/test/intrinsics/gen/textureDimensions/d4106f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/d4106f.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_d4106f "textureDimensions_d4106f"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_d4106f = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v2int %19
                OpStore %res %17
                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 %textureDimensions_d4106f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_d4106f
-         %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 %textureDimensions_d4106f
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_d4106f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_d4106f
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_d4106f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.spvasm
index ee0b694..8f98426 100644
--- a/test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
                OpCapability ImageQuery
                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 %textureDimensions_d83c45 "textureDimensions_d83c45"
                OpName %res "res"
-               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 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 Cube 0 1 0 1 Unknown
-%_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 Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -46,37 +45,36 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %26 = OpConstantNull %v2int
-         %27 = OpTypeFunction %void %v4float
+         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_d83c45 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %26
-         %22 = OpLoad %7 %arg_0
+         %22 = OpLoad %11 %arg_0
          %20 = OpImageQuerySizeLod %v3int %22 %int_0
          %17 = OpVectorShuffle %v2int %20 %20 0 1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %27
-%tint_symbol = OpFunctionParameter %v4float
-         %30 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureDimensions_d83c45
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %32 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %34 = OpFunctionCall %void %textureDimensions_d83c45
-         %35 = OpFunctionCall %void %tint_symbol_2 %12
+         %33 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %33
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_d83c45
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_d83c45
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureDimensions_d83c45
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureDimensions_d83c45
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/d8f951.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/d8f951.wgsl.expected.spvasm
index 11b7e33..919cb7b 100644
--- a/test/intrinsics/gen/textureDimensions/d8f951.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/d8f951.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_d8f951 "textureDimensions_d8f951"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_d8f951 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %int %18
                OpStore %res %16
                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 %textureDimensions_d8f951
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureDimensions_d8f951
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureDimensions_d8f951
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureDimensions_d8f951
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_d8f951
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_d8f951
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/da3099.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/da3099.wgsl.expected.spvasm
index 3930ab3..9682008 100644
--- a/test/intrinsics/gen/textureDimensions/da3099.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/da3099.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_da3099 "textureDimensions_da3099"
                OpName %res "res"
-               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 NonWritable
                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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %23 = OpConstantNull %v3int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_da3099 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v3int %20
                OpStore %res %17
                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 %textureDimensions_da3099
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_da3099
-         %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 %textureDimensions_da3099
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_da3099
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_da3099
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_da3099
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/daf7c0.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/daf7c0.wgsl.expected.spvasm
index b766be7..05b6fe7 100644
--- a/test/intrinsics/gen/textureDimensions/daf7c0.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/daf7c0.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 ImageQuery
                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 %textureDimensions_daf7c0 "textureDimensions_daf7c0"
                OpName %res "res"
-               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 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 1 1 Unknown
-%_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 1 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_daf7c0 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v2int %19
                OpStore %res %17
                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 %textureDimensions_daf7c0
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_daf7c0
-         %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 %textureDimensions_daf7c0
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_daf7c0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_daf7c0
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_daf7c0
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/dba47c.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/dba47c.wgsl.expected.spvasm
index ef594fb..128437c 100644
--- a/test/intrinsics/gen/textureDimensions/dba47c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/dba47c.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_dba47c "textureDimensions_dba47c"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_int = OpTypePointer Function %int
          %22 = OpConstantNull %int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_dba47c = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %int %19
                OpStore %res %17
                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 %textureDimensions_dba47c
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_dba47c
-         %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 %textureDimensions_dba47c
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_dba47c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_dba47c
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_dba47c
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.spvasm
index 9c1d4c4..074de23 100644
--- a/test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability ImageQuery
                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 %textureDimensions_dc2dd0 "textureDimensions_dc2dd0"
                OpName %res "res"
-               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
 %_ptr_Function_int = OpTypePointer Function %int
          %22 = OpConstantNull %int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_dc2dd0 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %int %19
                OpStore %res %17
                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 %textureDimensions_dc2dd0
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_dc2dd0
-         %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 %textureDimensions_dc2dd0
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_dc2dd0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_dc2dd0
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_dc2dd0
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/e10157.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/e10157.wgsl.expected.spvasm
index f662392..923452f 100644
--- a/test/intrinsics/gen/textureDimensions/e10157.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/e10157.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_e10157 "textureDimensions_e10157"
                OpName %res "res"
-               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 NonWritable
                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
       %v2int = OpTypeVector %int 2
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %23 = OpConstantNull %v2int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_e10157 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v2int %20
                OpStore %res %17
                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 %textureDimensions_e10157
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_e10157
-         %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 %textureDimensions_e10157
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_e10157
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_e10157
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_e10157
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.spvasm
index efdc0d7..021901e 100644
--- a/test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
                OpCapability ImageQuery
                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 %textureDimensions_e927be "textureDimensions_e927be"
                OpName %res "res"
-               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 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 Cube 0 1 0 1 Unknown
-%_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 Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
@@ -45,37 +44,36 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %25 = OpConstantNull %v2int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_e927be = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %25
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySizeLod %v3int %21 %int_0
          %17 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %17
                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 %textureDimensions_e927be
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureDimensions_e927be
-         %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 %textureDimensions_e927be
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_e927be
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureDimensions_e927be
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureDimensions_e927be
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/e93464.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/e93464.wgsl.expected.spvasm
index 8a86884..fc72f55 100644
--- a/test/intrinsics/gen/textureDimensions/e93464.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/e93464.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Image1D
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureDimensions_e93464 "textureDimensions_e93464"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_e93464 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %int %18
                OpStore %res %17
                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 %textureDimensions_e93464
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureDimensions_e93464
-         %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 %textureDimensions_e93464
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureDimensions_e93464
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_e93464
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_e93464
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/e9628c.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/e9628c.wgsl.expected.spvasm
index 75e4e59..29c5390 100644
--- a/test/intrinsics/gen/textureDimensions/e9628c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/e9628c.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 ImageQuery
                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 %textureDimensions_e9628c "textureDimensions_e9628c"
                OpName %res "res"
-               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 NonWritable
                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
@@ -44,37 +43,36 @@
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_e9628c = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %16 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %16
                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 %textureDimensions_e9628c
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_e9628c
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_e9628c
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_e9628c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_e9628c
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_e9628c
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/e9e96c.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/e9e96c.wgsl.expected.spvasm
index 959f5e1..3bc1dd4 100644
--- a/test/intrinsics/gen/textureDimensions/e9e96c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/e9e96c.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 ImageQuery
                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 %textureDimensions_e9e96c "textureDimensions_e9e96c"
                OpName %res "res"
-               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
@@ -44,37 +43,36 @@
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_e9e96c = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %16 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %16
                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 %textureDimensions_e9e96c
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_e9e96c
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_e9e96c
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_e9e96c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_e9e96c
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_e9e96c
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/e9fe54.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/e9fe54.wgsl.expected.spvasm
index 469d0dd..ac10439 100644
--- a/test/intrinsics/gen/textureDimensions/e9fe54.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/e9fe54.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureDimensions_e9fe54 "textureDimensions_e9fe54"
                OpName %res "res"
-               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 NonWritable
                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
       %v2int = OpTypeVector %int 2
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %23 = OpConstantNull %v2int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_e9fe54 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v2int %20
                OpStore %res %17
                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 %textureDimensions_e9fe54
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_e9fe54
-         %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 %textureDimensions_e9fe54
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_e9fe54
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_e9fe54
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_e9fe54
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/e9fe58.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/e9fe58.wgsl.expected.spvasm
index 6058fa6..e8f098b 100644
--- a/test/intrinsics/gen/textureDimensions/e9fe58.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/e9fe58.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_e9fe58 "textureDimensions_e9fe58"
                OpName %res "res"
-               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 NonWritable
                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,37 +44,36 @@
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %25 = OpConstantNull %v2int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_e9fe58 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %25
-         %22 = OpLoad %7 %arg_0
+         %22 = OpLoad %11 %arg_0
          %20 = OpImageQuerySize %v3int %22
          %17 = OpVectorShuffle %v2int %20 %20 0 1
                OpStore %res %17
                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 %textureDimensions_e9fe58
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureDimensions_e9fe58
-         %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 %textureDimensions_e9fe58
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_e9fe58
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureDimensions_e9fe58
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureDimensions_e9fe58
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/ef5b89.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/ef5b89.wgsl.expected.spvasm
index 7a808a9..2cb1a7f 100644
--- a/test/intrinsics/gen/textureDimensions/ef5b89.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/ef5b89.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 ImageQuery
                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 %textureDimensions_ef5b89 "textureDimensions_ef5b89"
                OpName %res "res"
-               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 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 1 1 Unknown
-%_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 1 1 Unknown
+%_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
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_ef5b89 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v2int %19
                OpStore %res %16
                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 %textureDimensions_ef5b89
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_ef5b89
-         %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 %textureDimensions_ef5b89
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_ef5b89
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_ef5b89
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_ef5b89
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.spvasm
index bf8e0dc..c249a24 100644
--- a/test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_efc8a4 "textureDimensions_efc8a4"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %int_0 = OpConstant %int 0
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %23 = OpConstantNull %v3int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_efc8a4 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %23
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySizeLod %v3int %19 %int_0
                OpStore %res %17
                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 %textureDimensions_efc8a4
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_efc8a4
-         %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 %textureDimensions_efc8a4
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_efc8a4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_efc8a4
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_efc8a4
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/f1b72b.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/f1b72b.wgsl.expected.spvasm
index 1d87771..e02181c 100644
--- a/test/intrinsics/gen/textureDimensions/f1b72b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/f1b72b.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_f1b72b "textureDimensions_f1b72b"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_f1b72b = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v2int %19
                OpStore %res %16
                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 %textureDimensions_f1b72b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_f1b72b
-         %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 %textureDimensions_f1b72b
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_f1b72b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_f1b72b
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_f1b72b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/f60bdb.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/f60bdb.wgsl.expected.spvasm
index c29deb3..ad4b6aa 100644
--- a/test/intrinsics/gen/textureDimensions/f60bdb.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/f60bdb.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 ImageQuery
                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 %textureDimensions_f60bdb "textureDimensions_f60bdb"
                OpName %res "res"
-               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 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 1 0 1 1 Unknown
-%_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 1 0 1 1 Unknown
+%_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
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_f60bdb = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v2int %19
                OpStore %res %16
                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 %textureDimensions_f60bdb
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_f60bdb
-         %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 %textureDimensions_f60bdb
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_f60bdb
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_f60bdb
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_f60bdb
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/f7145b.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/f7145b.wgsl.expected.spvasm
index 7ef3114..7a5a016 100644
--- a/test/intrinsics/gen/textureDimensions/f7145b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/f7145b.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 ImageQuery
                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 %textureDimensions_f7145b "textureDimensions_f7145b"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -44,36 +43,35 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_f7145b = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySizeLod %v2int %20 %int_0
                OpStore %res %17
                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 %textureDimensions_f7145b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_f7145b
-         %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 %textureDimensions_f7145b
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_f7145b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_f7145b
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_f7145b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/f7aa9e.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/f7aa9e.wgsl.expected.spvasm
index 19ff511..83a9263 100644
--- a/test/intrinsics/gen/textureDimensions/f7aa9e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/f7aa9e.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_f7aa9e "textureDimensions_f7aa9e"
                OpName %res "res"
-               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 NonWritable
                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
       %v2int = OpTypeVector %int 2
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_f7aa9e = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %17 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %17
                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 %textureDimensions_f7aa9e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_f7aa9e
-         %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 %textureDimensions_f7aa9e
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_f7aa9e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_f7aa9e
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_f7aa9e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/f7e436.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/f7e436.wgsl.expected.spvasm
index e6cc284..d567410 100644
--- a/test/intrinsics/gen/textureDimensions/f7e436.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/f7e436.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_f7e436 "textureDimensions_f7e436"
                OpName %res "res"
-               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 NonWritable
                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,37 +44,36 @@
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %25 = OpConstantNull %v2int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_f7e436 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %25
-         %22 = OpLoad %7 %arg_0
+         %22 = OpLoad %11 %arg_0
          %20 = OpImageQuerySize %v3int %22
          %17 = OpVectorShuffle %v2int %20 %20 0 1
                OpStore %res %17
                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 %textureDimensions_f7e436
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureDimensions_f7e436
-         %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 %textureDimensions_f7e436
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_f7e436
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureDimensions_f7e436
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureDimensions_f7e436
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.spvasm
index e1e3209..2375b4d 100644
--- a/test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_f931c7 "textureDimensions_f931c7"
                OpName %res "res"
-               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
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_f931c7 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v2int %19
                OpStore %res %16
                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 %textureDimensions_f931c7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_f931c7
-         %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 %textureDimensions_f931c7
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_f931c7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_f931c7
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_f931c7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/fa90e1.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/fa90e1.wgsl.expected.spvasm
index c997daa..76b12de 100644
--- a/test/intrinsics/gen/textureDimensions/fa90e1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/fa90e1.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureDimensions_fa90e1 "textureDimensions_fa90e1"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %22 = OpConstantNull %v2int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_fa90e1 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %16 = OpImageQuerySize %v2int %19
                OpStore %res %16
                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 %textureDimensions_fa90e1
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureDimensions_fa90e1
-         %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 %textureDimensions_fa90e1
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureDimensions_fa90e1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureDimensions_fa90e1
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureDimensions_fa90e1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.spvasm
index 231e68a..769c44e 100644
--- a/test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_fa9859 "textureDimensions_fa9859"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %23 = OpConstantNull %v2int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_fa9859 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %23
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySizeLod %v2int %19 %int_0
                OpStore %res %17
                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 %textureDimensions_fa9859
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_fa9859
-         %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 %textureDimensions_fa9859
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_fa9859
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_fa9859
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_fa9859
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.spvasm
index 79530cb..c870194 100644
--- a/test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureDimensions_fb5670 "textureDimensions_fb5670"
                OpName %res "res"
-               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
@@ -45,37 +44,36 @@
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v2int = OpTypePointer Function %v2int
          %24 = OpConstantNull %v2int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_fb5670 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %16 = OpVectorShuffle %v2int %19 %19 0 1
                OpStore %res %16
                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 %textureDimensions_fb5670
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureDimensions_fb5670
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureDimensions_fb5670
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureDimensions_fb5670
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureDimensions_fb5670
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureDimensions_fb5670
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/fbbe4d.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/fbbe4d.wgsl.expected.spvasm
index 6333e2c..b6f35d1 100644
--- a/test/intrinsics/gen/textureDimensions/fbbe4d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/fbbe4d.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_fbbe4d "textureDimensions_fbbe4d"
                OpName %res "res"
-               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 NonWritable
                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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %23 = OpConstantNull %v3int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_fbbe4d = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v3int %20
                OpStore %res %17
                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 %textureDimensions_fbbe4d
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_fbbe4d
-         %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 %textureDimensions_fbbe4d
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_fbbe4d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_fbbe4d
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_fbbe4d
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.spvasm b/test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.spvasm
index bc049db..2b1c5c3 100644
--- a/test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureDimensions_fcac78 "textureDimensions_fcac78"
                OpName %res "res"
-               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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_v3int = OpTypePointer Function %v3int
          %23 = OpConstantNull %v3int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureDimensions_fcac78 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v3int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %17 = OpImageQuerySize %v3int %20
                OpStore %res %17
                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 %textureDimensions_fcac78
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureDimensions_fcac78
-         %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 %textureDimensions_fcac78
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureDimensions_fcac78
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureDimensions_fcac78
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureDimensions_fcac78
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/050c33.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/050c33.wgsl.expected.spvasm
index 45ce9dc..b07a3c5 100644
--- a/test/intrinsics/gen/textureLoad/050c33.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/050c33.wgsl.expected.spvasm
@@ -5,43 +5,42 @@
 ; 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 %textureLoad_050c33 "textureLoad_050c33"
                OpName %res "res"
-               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 NonWritable
                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
      %v4uint = OpTypeVector %uint 4
@@ -50,36 +49,35 @@
          %22 = OpConstantNull %v2int
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %25 = OpConstantNull %v4uint
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_050c33 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %25
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4uint %19 %22
                OpStore %res %17
                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 %textureLoad_050c33
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureLoad_050c33
-         %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 %textureLoad_050c33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_050c33
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_050c33
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_050c33
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/072e26.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/072e26.wgsl.expected.spvasm
index 85a08cb..baf53a4 100644
--- a/test/intrinsics/gen/textureLoad/072e26.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/072e26.wgsl.expected.spvasm
@@ -5,41 +5,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 %textureLoad_072e26 "textureLoad_072e26"
                OpName %res "res"
-               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 NonWritable
                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
@@ -48,36 +47,35 @@
       %int_1 = OpConstant %int 1
          %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_072e26 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageRead %v4float %17 %22
                OpStore %res %16
                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 %textureLoad_072e26
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_072e26
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_072e26
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_072e26
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_072e26
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_072e26
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/078bc4.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/078bc4.wgsl.expected.spvasm
index afd6392..06825de 100644
--- a/test/intrinsics/gen/textureLoad/078bc4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/078bc4.wgsl.expected.spvasm
@@ -5,77 +5,75 @@
 ; 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 %textureLoad_078bc4 "textureLoad_078bc4"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_078bc4 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageRead %v4float %17 %20
                OpStore %res %16
                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 %textureLoad_078bc4
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureLoad_078bc4
-         %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 %textureLoad_078bc4
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureLoad_078bc4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_078bc4
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_078bc4
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/127e12.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/127e12.wgsl.expected.spvasm
index 0242452..2e74406 100644
--- a/test/intrinsics/gen/textureLoad/127e12.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/127e12.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 42
 ; 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 %textureLoad_127e12 "textureLoad_127e12"
                OpName %res "res"
-               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 NonWritable
                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
      %v4uint = OpTypeVector %uint 4
@@ -51,36 +50,35 @@
          %24 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %27 = OpConstantNull %v4uint
-         %28 = OpTypeFunction %void %v4float
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_127e12 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %27
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4uint %19 %24
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %28
-%tint_symbol = OpFunctionParameter %v4float
-         %31 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureLoad_127e12
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %33 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %35 = OpFunctionCall %void %textureLoad_127e12
-         %36 = OpFunctionCall %void %tint_symbol_2 %12
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_127e12
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_127e12
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_127e12
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_127e12
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/1561a7.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/1561a7.wgsl.expected.spvasm
index 9b93b88..f2908b8 100644
--- a/test/intrinsics/gen/textureLoad/1561a7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/1561a7.wgsl.expected.spvasm
@@ -5,43 +5,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; 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 %textureLoad_1561a7 "textureLoad_1561a7"
                OpName %res "res"
-               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 NonWritable
                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
      %v4uint = OpTypeVector %uint 4
@@ -49,36 +48,35 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %24 = OpConstantNull %v4uint
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_1561a7 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %24
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4uint %19 %int_1
                OpStore %res %17
                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 %textureLoad_1561a7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_1561a7
-         %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 %textureLoad_1561a7
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_1561a7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_1561a7
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_1561a7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.spvasm
index 697f575..5a0ea57 100644
--- a/test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; 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 %textureLoad_19cf87 "textureLoad_19cf87"
                OpName %res "res"
-               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 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 1 0 0 1 Unknown
-%_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 1 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -42,37 +41,36 @@
          %21 = OpConstantNull %v2int
       %int_0 = OpConstant %int 0
 %_ptr_Function_float = OpTypePointer Function %float
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_19cf87 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
-         %18 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_float Function %8
+         %18 = OpLoad %11 %arg_0
          %17 = OpImageFetch %v4float %18 %21 Lod %int_0
          %16 = OpCompositeExtract %float %17 0
                OpStore %res %16
                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 %textureLoad_19cf87
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_19cf87
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_19cf87
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_19cf87
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_19cf87
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_19cf87
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/1a062f.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/1a062f.wgsl.expected.spvasm
index 902f34a..e86a28f 100644
--- a/test/intrinsics/gen/textureLoad/1a062f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/1a062f.wgsl.expected.spvasm
@@ -5,41 +5,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 %textureLoad_1a062f "textureLoad_1a062f"
                OpName %res "res"
-               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 NonWritable
                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
@@ -48,36 +47,35 @@
       %int_1 = OpConstant %int 1
          %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_1a062f = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageRead %v4float %17 %22
                OpStore %res %16
                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 %textureLoad_1a062f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_1a062f
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_1a062f
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_1a062f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_1a062f
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_1a062f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/1a8452.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/1a8452.wgsl.expected.spvasm
index 5eeb305..11b914f 100644
--- a/test/intrinsics/gen/textureLoad/1a8452.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/1a8452.wgsl.expected.spvasm
@@ -5,43 +5,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; 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 %textureLoad_1a8452 "textureLoad_1a8452"
                OpName %res "res"
-               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 NonWritable
                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
      %v4uint = OpTypeVector %uint 4
@@ -49,36 +48,35 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %24 = OpConstantNull %v4uint
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_1a8452 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %24
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4uint %19 %int_1
                OpStore %res %17
                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 %textureLoad_1a8452
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_1a8452
-         %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 %textureLoad_1a8452
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_1a8452
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_1a8452
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_1a8452
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/1b8588.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/1b8588.wgsl.expected.spvasm
index 8a5913e..21b4c1e 100644
--- a/test/intrinsics/gen/textureLoad/1b8588.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/1b8588.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 Sampled1D
                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 %textureLoad_1b8588 "textureLoad_1b8588"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v4uint = OpTypeVector %uint 4
@@ -45,36 +44,35 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %25 = OpConstantNull %v4uint
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_1b8588 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %25
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageFetch %v4uint %19 %int_1 Lod %int_0
                OpStore %res %17
                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 %textureLoad_1b8588
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureLoad_1b8588
-         %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 %textureLoad_1b8588
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_1b8588
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_1b8588
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_1b8588
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.spvasm
index be992fd..15ceefa 100644
--- a/test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; 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 %textureLoad_1f2016 "textureLoad_1f2016"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -42,36 +41,35 @@
          %20 = OpConstantNull %v3int
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_1f2016 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageFetch %v4float %17 %20 Lod %int_0
                OpStore %res %16
                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 %textureLoad_1f2016
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureLoad_1f2016
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureLoad_1f2016
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureLoad_1f2016
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_1f2016
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_1f2016
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/20fa2f.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/20fa2f.wgsl.expected.spvasm
index 772f7b8..43dd765 100644
--- a/test/intrinsics/gen/textureLoad/20fa2f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/20fa2f.wgsl.expected.spvasm
@@ -5,42 +5,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 %textureLoad_20fa2f "textureLoad_20fa2f"
                OpName %res "res"
-               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 NonWritable
                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
@@ -49,36 +48,35 @@
       %int_1 = OpConstant %int 1
          %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_20fa2f = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageRead %v4float %17 %22
                OpStore %res %16
                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 %textureLoad_20fa2f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_20fa2f
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_20fa2f
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_20fa2f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_20fa2f
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_20fa2f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/276a2c.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/276a2c.wgsl.expected.spvasm
index 11c05ae..6217b54 100644
--- a/test/intrinsics/gen/textureLoad/276a2c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/276a2c.wgsl.expected.spvasm
@@ -5,43 +5,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; 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 %textureLoad_276a2c "textureLoad_276a2c"
                OpName %res "res"
-               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 NonWritable
                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
      %v4uint = OpTypeVector %uint 4
@@ -49,36 +48,35 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %24 = OpConstantNull %v4uint
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_276a2c = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %24
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4uint %19 %int_1
                OpStore %res %17
                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 %textureLoad_276a2c
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_276a2c
-         %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 %textureLoad_276a2c
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_276a2c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_276a2c
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_276a2c
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/2887d7.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/2887d7.wgsl.expected.spvasm
index 04ea5bf..b606ca1 100644
--- a/test/intrinsics/gen/textureLoad/2887d7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/2887d7.wgsl.expected.spvasm
@@ -5,77 +5,75 @@
 ; 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 %textureLoad_2887d7 "textureLoad_2887d7"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_2887d7 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageRead %v4float %17 %int_1
                OpStore %res %16
                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 %textureLoad_2887d7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureLoad_2887d7
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureLoad_2887d7
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureLoad_2887d7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_2887d7
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_2887d7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/2ae485.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/2ae485.wgsl.expected.spvasm
index 3f09134..b87c6ed 100644
--- a/test/intrinsics/gen/textureLoad/2ae485.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/2ae485.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; 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 %textureLoad_2ae485 "textureLoad_2ae485"
                OpName %res "res"
-               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 NonWritable
                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
       %v4int = OpTypeVector %int 4
@@ -48,36 +47,35 @@
          %21 = OpConstantNull %v2int
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %24 = OpConstantNull %v4int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_2ae485 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %24
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4int %19 %21
                OpStore %res %17
                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 %textureLoad_2ae485
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_2ae485
-         %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 %textureLoad_2ae485
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_2ae485
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_2ae485
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_2ae485
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/2d6cf7.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/2d6cf7.wgsl.expected.spvasm
index a19078f..bb1b566 100644
--- a/test/intrinsics/gen/textureLoad/2d6cf7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/2d6cf7.wgsl.expected.spvasm
@@ -5,80 +5,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; 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 %textureLoad_2d6cf7 "textureLoad_2d6cf7"
                OpName %res "res"
-               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 NonWritable
                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
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %23 = OpConstantNull %v4int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_2d6cf7 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %23
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4int %19 %int_1
                OpStore %res %17
                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 %textureLoad_2d6cf7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureLoad_2d6cf7
-         %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 %textureLoad_2d6cf7
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureLoad_2d6cf7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_2d6cf7
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_2d6cf7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/3c0d9e.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/3c0d9e.wgsl.expected.spvasm
index 1df16bd..9788afc 100644
--- a/test/intrinsics/gen/textureLoad/3c0d9e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/3c0d9e.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; 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 %textureLoad_3c0d9e "textureLoad_3c0d9e"
                OpName %res "res"
-               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 NonWritable
                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
      %v4uint = OpTypeVector %uint 4
@@ -49,36 +48,35 @@
          %22 = OpConstantNull %v2int
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %25 = OpConstantNull %v4uint
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_3c0d9e = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %25
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4uint %19 %22
                OpStore %res %17
                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 %textureLoad_3c0d9e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureLoad_3c0d9e
-         %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 %textureLoad_3c0d9e
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_3c0d9e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_3c0d9e
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_3c0d9e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/3c9587.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/3c9587.wgsl.expected.spvasm
index 3bd9235..646e403 100644
--- a/test/intrinsics/gen/textureLoad/3c9587.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/3c9587.wgsl.expected.spvasm
@@ -5,77 +5,75 @@
 ; 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 %textureLoad_3c9587 "textureLoad_3c9587"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_3c9587 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageRead %v4float %17 %20
                OpStore %res %16
                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 %textureLoad_3c9587
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureLoad_3c9587
-         %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 %textureLoad_3c9587
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureLoad_3c9587
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_3c9587
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_3c9587
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/3d001b.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/3d001b.wgsl.expected.spvasm
index 7fae168..e8bc1b2 100644
--- a/test/intrinsics/gen/textureLoad/3d001b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/3d001b.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; 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 %textureLoad_3d001b "textureLoad_3d001b"
                OpName %res "res"
-               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 NonWritable
                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
       %v4int = OpTypeVector %int 4
@@ -48,36 +47,35 @@
          %21 = OpConstantNull %v3int
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %24 = OpConstantNull %v4int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_3d001b = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %24
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4int %19 %21
                OpStore %res %17
                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 %textureLoad_3d001b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_3d001b
-         %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 %textureLoad_3d001b
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_3d001b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_3d001b
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_3d001b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/3d9c90.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/3d9c90.wgsl.expected.spvasm
index c5182bb..daaf0e4 100644
--- a/test/intrinsics/gen/textureLoad/3d9c90.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/3d9c90.wgsl.expected.spvasm
@@ -5,77 +5,75 @@
 ; 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 %textureLoad_3d9c90 "textureLoad_3d9c90"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_3d9c90 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageRead %v4float %17 %20
                OpStore %res %16
                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 %textureLoad_3d9c90
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureLoad_3d9c90
-         %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 %textureLoad_3d9c90
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureLoad_3d9c90
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_3d9c90
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_3d9c90
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/484344.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/484344.wgsl.expected.spvasm
index a45d27d..5bf4201 100644
--- a/test/intrinsics/gen/textureLoad/484344.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/484344.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; 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 %textureLoad_484344 "textureLoad_484344"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -42,36 +41,35 @@
          %20 = OpConstantNull %v2int
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_484344 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageFetch %v4float %17 %20 Lod %int_0
                OpStore %res %16
                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 %textureLoad_484344
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureLoad_484344
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureLoad_484344
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureLoad_484344
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_484344
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_484344
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.spvasm
index 8c4a2be..dae2d0c 100644
--- a/test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/4fd803.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 %textureLoad_4fd803 "textureLoad_4fd803"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
@@ -44,36 +43,35 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %25 = OpConstantNull %v4int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_4fd803 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %25
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageFetch %v4int %19 %21 Lod %int_0
                OpStore %res %17
                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 %textureLoad_4fd803
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureLoad_4fd803
-         %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 %textureLoad_4fd803
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_4fd803
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_4fd803
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_4fd803
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/505aa2.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/505aa2.wgsl.expected.spvasm
index a61a915..df71fff 100644
--- a/test/intrinsics/gen/textureLoad/505aa2.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/505aa2.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; 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 %textureLoad_505aa2 "textureLoad_505aa2"
                OpName %res "res"
-               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 NonWritable
                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
       %v4int = OpTypeVector %int 4
@@ -48,36 +47,35 @@
          %21 = OpConstantNull %v3int
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %24 = OpConstantNull %v4int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_505aa2 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %24
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4int %19 %21
                OpStore %res %17
                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 %textureLoad_505aa2
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_505aa2
-         %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 %textureLoad_505aa2
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_505aa2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_505aa2
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_505aa2
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/519ab5.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/519ab5.wgsl.expected.spvasm
index 4545989..71ec10d 100644
--- a/test/intrinsics/gen/textureLoad/519ab5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/519ab5.wgsl.expected.spvasm
@@ -5,77 +5,75 @@
 ; 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 %textureLoad_519ab5 "textureLoad_519ab5"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_519ab5 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageRead %v4float %17 %int_1
                OpStore %res %16
                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 %textureLoad_519ab5
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureLoad_519ab5
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureLoad_519ab5
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureLoad_519ab5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_519ab5
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_519ab5
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/53378a.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/53378a.wgsl.expected.spvasm
index 93e235c..116f265 100644
--- a/test/intrinsics/gen/textureLoad/53378a.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/53378a.wgsl.expected.spvasm
@@ -5,43 +5,42 @@
 ; 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 %textureLoad_53378a "textureLoad_53378a"
                OpName %res "res"
-               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 NonWritable
                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
       %v4int = OpTypeVector %int 4
@@ -49,36 +48,35 @@
          %21 = OpConstantNull %v2int
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %24 = OpConstantNull %v4int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_53378a = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %24
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4int %19 %21
                OpStore %res %17
                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 %textureLoad_53378a
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_53378a
-         %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 %textureLoad_53378a
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_53378a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_53378a
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_53378a
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/560573.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/560573.wgsl.expected.spvasm
index d00f5eb..c0e8c7c 100644
--- a/test/intrinsics/gen/textureLoad/560573.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/560573.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 41
 ; 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 %textureLoad_560573 "textureLoad_560573"
                OpName %res "res"
-               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 NonWritable
                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
       %v4int = OpTypeVector %int 4
@@ -50,36 +49,35 @@
          %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %26 = OpConstantNull %v4int
-         %27 = OpTypeFunction %void %v4float
+         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_560573 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %26
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4int %19 %23
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %27
-%tint_symbol = OpFunctionParameter %v4float
-         %30 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureLoad_560573
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %32 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %34 = OpFunctionCall %void %textureLoad_560573
-         %35 = OpFunctionCall %void %tint_symbol_2 %12
+         %33 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %33
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_560573
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_560573
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_560573
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureLoad_560573
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/582015.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/582015.wgsl.expected.spvasm
index 8360485..f3536ae 100644
--- a/test/intrinsics/gen/textureLoad/582015.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/582015.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 41
 ; 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 %textureLoad_582015 "textureLoad_582015"
                OpName %res "res"
-               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 NonWritable
                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
       %v4int = OpTypeVector %int 4
@@ -50,36 +49,35 @@
          %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %26 = OpConstantNull %v4int
-         %27 = OpTypeFunction %void %v4float
+         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_582015 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %26
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4int %19 %23
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %27
-%tint_symbol = OpFunctionParameter %v4float
-         %30 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureLoad_582015
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %32 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %34 = OpFunctionCall %void %textureLoad_582015
-         %35 = OpFunctionCall %void %tint_symbol_2 %12
+         %33 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %33
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_582015
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_582015
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_582015
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureLoad_582015
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/5a2f9d.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/5a2f9d.wgsl.expected.spvasm
index 43422f0..3388593 100644
--- a/test/intrinsics/gen/textureLoad/5a2f9d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/5a2f9d.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 Sampled1D
                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 %textureLoad_5a2f9d "textureLoad_5a2f9d"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
@@ -44,36 +43,35 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %24 = OpConstantNull %v4int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_5a2f9d = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %24
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageFetch %v4int %19 %int_1 Lod %int_0
                OpStore %res %17
                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 %textureLoad_5a2f9d
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_5a2f9d
-         %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 %textureLoad_5a2f9d
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_5a2f9d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_5a2f9d
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_5a2f9d
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/5bb7fb.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/5bb7fb.wgsl.expected.spvasm
index b2f2223..f6c5b95 100644
--- a/test/intrinsics/gen/textureLoad/5bb7fb.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/5bb7fb.wgsl.expected.spvasm
@@ -5,44 +5,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; 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 %textureLoad_5bb7fb "textureLoad_5bb7fb"
                OpName %res "res"
-               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 NonWritable
                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
      %v4uint = OpTypeVector %uint 4
@@ -50,36 +49,35 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %24 = OpConstantNull %v4uint
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_5bb7fb = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %24
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4uint %19 %int_1
                OpStore %res %17
                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 %textureLoad_5bb7fb
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_5bb7fb
-         %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 %textureLoad_5bb7fb
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_5bb7fb
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_5bb7fb
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_5bb7fb
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/5d0a2f.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/5d0a2f.wgsl.expected.spvasm
index 177e51c..52772ea 100644
--- a/test/intrinsics/gen/textureLoad/5d0a2f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/5d0a2f.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 42
 ; 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 %textureLoad_5d0a2f "textureLoad_5d0a2f"
                OpName %res "res"
-               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 NonWritable
                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
      %v4uint = OpTypeVector %uint 4
@@ -51,36 +50,35 @@
          %24 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %27 = OpConstantNull %v4uint
-         %28 = OpTypeFunction %void %v4float
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_5d0a2f = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %27
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4uint %19 %24
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %28
-%tint_symbol = OpFunctionParameter %v4float
-         %31 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureLoad_5d0a2f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %33 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %35 = OpFunctionCall %void %textureLoad_5d0a2f
-         %36 = OpFunctionCall %void %tint_symbol_2 %12
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_5d0a2f
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_5d0a2f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_5d0a2f
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_5d0a2f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.spvasm
index 6a4c040..579e1d9 100644
--- a/test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 41
 ; 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 %textureLoad_6154d4 "textureLoad_6154d4"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v4uint = OpTypeVector %uint 4
@@ -45,36 +44,35 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %26 = OpConstantNull %v4uint
-         %27 = OpTypeFunction %void %v4float
+         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_6154d4 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %26
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageFetch %v4uint %19 %22 Lod %int_0
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %27
-%tint_symbol = OpFunctionParameter %v4float
-         %30 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureLoad_6154d4
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %32 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %34 = OpFunctionCall %void %textureLoad_6154d4
-         %35 = OpFunctionCall %void %tint_symbol_2 %12
+         %33 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %33
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_6154d4
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_6154d4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_6154d4
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureLoad_6154d4
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.spvasm
index f4cf793..2f1ffc5 100644
--- a/test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; 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 %textureLoad_6273b1 "textureLoad_6273b1"
                OpName %res "res"
-               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 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 1 0 1 1 Unknown
-%_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 1 0 1 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -42,37 +41,36 @@
          %21 = OpConstantNull %v2int
       %int_1 = OpConstant %int 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_6273b1 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
-         %18 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_float Function %8
+         %18 = OpLoad %11 %arg_0
          %17 = OpImageFetch %v4float %18 %21 Sample %int_1
          %16 = OpCompositeExtract %float %17 0
                OpStore %res %16
                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 %textureLoad_6273b1
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_6273b1
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_6273b1
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_6273b1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_6273b1
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_6273b1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/62d125.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/62d125.wgsl.expected.spvasm
index f800ee1..55f6bd7 100644
--- a/test/intrinsics/gen/textureLoad/62d125.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/62d125.wgsl.expected.spvasm
@@ -5,77 +5,75 @@
 ; 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 %textureLoad_62d125 "textureLoad_62d125"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_62d125 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageRead %v4float %17 %20
                OpStore %res %16
                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 %textureLoad_62d125
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureLoad_62d125
-         %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 %textureLoad_62d125
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureLoad_62d125
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_62d125
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_62d125
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/6678b6.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/6678b6.wgsl.expected.spvasm
index 5a71d61..fee02ec 100644
--- a/test/intrinsics/gen/textureLoad/6678b6.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/6678b6.wgsl.expected.spvasm
@@ -5,79 +5,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; 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 %textureLoad_6678b6 "textureLoad_6678b6"
                OpName %res "res"
-               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 NonWritable
                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
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %23 = OpConstantNull %v4int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_6678b6 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %23
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4int %19 %int_1
                OpStore %res %17
                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 %textureLoad_6678b6
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureLoad_6678b6
-         %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 %textureLoad_6678b6
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureLoad_6678b6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_6678b6
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_6678b6
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/67edca.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/67edca.wgsl.expected.spvasm
index 690a187..338c91b 100644
--- a/test/intrinsics/gen/textureLoad/67edca.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/67edca.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; 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 %textureLoad_67edca "textureLoad_67edca"
                OpName %res "res"
-               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 NonWritable
                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
      %v4uint = OpTypeVector %uint 4
@@ -49,36 +48,35 @@
          %22 = OpConstantNull %v3int
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %25 = OpConstantNull %v4uint
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_67edca = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %25
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4uint %19 %22
                OpStore %res %17
                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 %textureLoad_67edca
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureLoad_67edca
-         %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 %textureLoad_67edca
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_67edca
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_67edca
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_67edca
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/749704.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/749704.wgsl.expected.spvasm
index 4cdb843..40218e3 100644
--- a/test/intrinsics/gen/textureLoad/749704.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/749704.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; 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 %textureLoad_749704 "textureLoad_749704"
                OpName %res "res"
-               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 NonWritable
                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
      %v4uint = OpTypeVector %uint 4
@@ -49,36 +48,35 @@
          %22 = OpConstantNull %v2int
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %25 = OpConstantNull %v4uint
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_749704 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %25
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4uint %19 %22
                OpStore %res %17
                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 %textureLoad_749704
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureLoad_749704
-         %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 %textureLoad_749704
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_749704
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_749704
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_749704
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.spvasm
index b4135d9..9ea6971 100644
--- a/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 41
 ; 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 %textureLoad_79e697 "textureLoad_79e697"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
@@ -45,36 +44,35 @@
          %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %26 = OpConstantNull %v4int
-         %27 = OpTypeFunction %void %v4float
+         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_79e697 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %26
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageFetch %v4int %19 %23 Lod %int_0
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %27
-%tint_symbol = OpFunctionParameter %v4float
-         %30 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureLoad_79e697
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %32 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %34 = OpFunctionCall %void %textureLoad_79e697
-         %35 = OpFunctionCall %void %tint_symbol_2 %12
+         %33 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %33
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_79e697
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_79e697
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_79e697
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureLoad_79e697
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.spvasm
index 2180701..72245ac 100644
--- a/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 42
 ; 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 %textureLoad_7c90e5 "textureLoad_7c90e5"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v4uint = OpTypeVector %uint 4
@@ -46,36 +45,35 @@
          %24 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %27 = OpConstantNull %v4uint
-         %28 = OpTypeFunction %void %v4float
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_7c90e5 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %27
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageFetch %v4uint %19 %24 Lod %int_0
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %28
-%tint_symbol = OpFunctionParameter %v4float
-         %31 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureLoad_7c90e5
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %33 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %35 = OpFunctionCall %void %textureLoad_7c90e5
-         %36 = OpFunctionCall %void %tint_symbol_2 %12
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_7c90e5
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_7c90e5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_7c90e5
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_7c90e5
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/81c381.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/81c381.wgsl.expected.spvasm
index dea096f..87aa1c5 100644
--- a/test/intrinsics/gen/textureLoad/81c381.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/81c381.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 Sampled1D
                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 %textureLoad_81c381 "textureLoad_81c381"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_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
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_81c381 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageFetch %v4float %17 %int_1 Lod %int_0
                OpStore %res %16
                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 %textureLoad_81c381
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureLoad_81c381
-         %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 %textureLoad_81c381
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureLoad_81c381
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_81c381
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_81c381
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/83cea4.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/83cea4.wgsl.expected.spvasm
index 7202492..9e8e53d 100644
--- a/test/intrinsics/gen/textureLoad/83cea4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/83cea4.wgsl.expected.spvasm
@@ -5,43 +5,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; 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 %textureLoad_83cea4 "textureLoad_83cea4"
                OpName %res "res"
-               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 NonWritable
                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
      %v4uint = OpTypeVector %uint 4
@@ -49,36 +48,35 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %24 = OpConstantNull %v4uint
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_83cea4 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %24
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4uint %19 %int_1
                OpStore %res %17
                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 %textureLoad_83cea4
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_83cea4
-         %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 %textureLoad_83cea4
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_83cea4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_83cea4
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_83cea4
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.spvasm
index 44ae488..c8c2895 100644
--- a/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; 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 %textureLoad_87be85 "textureLoad_87be85"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,36 +42,35 @@
       %int_1 = OpConstant %int 1
          %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_87be85 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageFetch %v4float %17 %22 Lod %int_0
                OpStore %res %16
                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 %textureLoad_87be85
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_87be85
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_87be85
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_87be85
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_87be85
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_87be85
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.spvasm
index 7f64a6b..17ac507 100644
--- a/test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; 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 %textureLoad_8acf41 "textureLoad_8acf41"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -42,36 +41,35 @@
          %20 = OpConstantNull %v2int
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_8acf41 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageFetch %v4float %17 %20 Lod %int_0
                OpStore %res %16
                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 %textureLoad_8acf41
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureLoad_8acf41
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureLoad_8acf41
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureLoad_8acf41
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_8acf41
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_8acf41
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/8e5032.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/8e5032.wgsl.expected.spvasm
index 285526b..4f6a5fc 100644
--- a/test/intrinsics/gen/textureLoad/8e5032.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/8e5032.wgsl.expected.spvasm
@@ -5,43 +5,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 42
 ; 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 %textureLoad_8e5032 "textureLoad_8e5032"
                OpName %res "res"
-               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 NonWritable
                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
      %v4uint = OpTypeVector %uint 4
@@ -52,36 +51,35 @@
          %24 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %27 = OpConstantNull %v4uint
-         %28 = OpTypeFunction %void %v4float
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_8e5032 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %27
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4uint %19 %24
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %28
-%tint_symbol = OpFunctionParameter %v4float
-         %31 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureLoad_8e5032
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %33 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %35 = OpFunctionCall %void %textureLoad_8e5032
-         %36 = OpFunctionCall %void %tint_symbol_2 %12
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_8e5032
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_8e5032
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_8e5032
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_8e5032
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/936952.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/936952.wgsl.expected.spvasm
index 4e89cf9..befa7f0 100644
--- a/test/intrinsics/gen/textureLoad/936952.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/936952.wgsl.expected.spvasm
@@ -5,41 +5,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 %textureLoad_936952 "textureLoad_936952"
                OpName %res "res"
-               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 NonWritable
                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
@@ -48,36 +47,35 @@
       %int_1 = OpConstant %int 1
          %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_936952 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageRead %v4float %17 %22
                OpStore %res %16
                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 %textureLoad_936952
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_936952
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_936952
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_936952
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_936952
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_936952
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/9a7c90.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/9a7c90.wgsl.expected.spvasm
index b6f4c89..c3f2586 100644
--- a/test/intrinsics/gen/textureLoad/9a7c90.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/9a7c90.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; 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 %textureLoad_9a7c90 "textureLoad_9a7c90"
                OpName %res "res"
-               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 NonWritable
                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
      %v4uint = OpTypeVector %uint 4
@@ -49,36 +48,35 @@
          %22 = OpConstantNull %v3int
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %25 = OpConstantNull %v4uint
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_9a7c90 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %25
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4uint %19 %22
                OpStore %res %17
                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 %textureLoad_9a7c90
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureLoad_9a7c90
-         %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 %textureLoad_9a7c90
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_9a7c90
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_9a7c90
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_9a7c90
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.spvasm
index 207c92d..76e06b1 100644
--- a/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; 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 %textureLoad_9b2667 "textureLoad_9b2667"
                OpName %res "res"
-               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 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 1 1 0 1 Unknown
-%_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 1 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,37 +42,36 @@
       %int_1 = OpConstant %int 1
          %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_9b2667 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
-         %18 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_float Function %8
+         %18 = OpLoad %11 %arg_0
          %17 = OpImageFetch %v4float %18 %23 Lod %int_0
          %16 = OpCompositeExtract %float %17 0
                OpStore %res %16
                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 %textureLoad_9b2667
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureLoad_9b2667
-         %34 = OpFunctionCall %void %tint_symbol_2 %11
+         %32 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %32
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_9b2667
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_9b2667
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_9b2667
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_9b2667
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/9c2a14.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/9c2a14.wgsl.expected.spvasm
index cf619f0..edb9c69 100644
--- a/test/intrinsics/gen/textureLoad/9c2a14.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/9c2a14.wgsl.expected.spvasm
@@ -5,78 +5,76 @@
 ; 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 %textureLoad_9c2a14 "textureLoad_9c2a14"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_9c2a14 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageRead %v4float %17 %20
                OpStore %res %16
                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 %textureLoad_9c2a14
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureLoad_9c2a14
-         %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 %textureLoad_9c2a14
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureLoad_9c2a14
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_9c2a14
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_9c2a14
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.spvasm
index 4bdec9c..92defe1 100644
--- a/test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; 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 %textureLoad_a583c9 "textureLoad_a583c9"
                OpName %res "res"
-               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 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 1 1 Unknown
-%_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 1 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -42,36 +41,35 @@
          %20 = OpConstantNull %v2int
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_a583c9 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageFetch %v4float %17 %20 Sample %int_1
                OpStore %res %16
                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 %textureLoad_a583c9
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureLoad_a583c9
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureLoad_a583c9
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureLoad_a583c9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_a583c9
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_a583c9
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/a6a85a.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/a6a85a.wgsl.expected.spvasm
index 3f3eca2..7b72c44 100644
--- a/test/intrinsics/gen/textureLoad/a6a85a.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/a6a85a.wgsl.expected.spvasm
@@ -5,77 +5,75 @@
 ; 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 %textureLoad_a6a85a "textureLoad_a6a85a"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_a6a85a = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageRead %v4float %17 %20
                OpStore %res %16
                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 %textureLoad_a6a85a
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureLoad_a6a85a
-         %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 %textureLoad_a6a85a
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureLoad_a6a85a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_a6a85a
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_a6a85a
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/a6b61d.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/a6b61d.wgsl.expected.spvasm
index 3da44f4..f8bea3f 100644
--- a/test/intrinsics/gen/textureLoad/a6b61d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/a6b61d.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 41
 ; 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 %textureLoad_a6b61d "textureLoad_a6b61d"
                OpName %res "res"
-               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 NonWritable
                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
       %v4int = OpTypeVector %int 4
@@ -50,36 +49,35 @@
          %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %26 = OpConstantNull %v4int
-         %27 = OpTypeFunction %void %v4float
+         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_a6b61d = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %26
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4int %19 %23
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %27
-%tint_symbol = OpFunctionParameter %v4float
-         %30 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureLoad_a6b61d
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %32 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %34 = OpFunctionCall %void %textureLoad_a6b61d
-         %35 = OpFunctionCall %void %tint_symbol_2 %12
+         %33 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %33
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_a6b61d
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_a6b61d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_a6b61d
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureLoad_a6b61d
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/a7a3c3.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/a7a3c3.wgsl.expected.spvasm
index 0dc63d7..bca5554 100644
--- a/test/intrinsics/gen/textureLoad/a7a3c3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/a7a3c3.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; 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 %textureLoad_a7a3c3 "textureLoad_a7a3c3"
                OpName %res "res"
-               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 NonWritable
                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
       %v4int = OpTypeVector %int 4
@@ -48,36 +47,35 @@
          %21 = OpConstantNull %v3int
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %24 = OpConstantNull %v4int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_a7a3c3 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %24
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4int %19 %21
                OpStore %res %17
                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 %textureLoad_a7a3c3
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_a7a3c3
-         %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 %textureLoad_a7a3c3
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_a7a3c3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_a7a3c3
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_a7a3c3
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.spvasm
index 2d57095..f9c5c1f 100644
--- a/test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 41
 ; 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 %textureLoad_a9a9f5 "textureLoad_a9a9f5"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v4uint = OpTypeVector %uint 4
@@ -45,36 +44,35 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %26 = OpConstantNull %v4uint
-         %27 = OpTypeFunction %void %v4float
+         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_a9a9f5 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %26
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageFetch %v4uint %19 %22 Lod %int_0
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %27
-%tint_symbol = OpFunctionParameter %v4float
-         %30 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureLoad_a9a9f5
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %32 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %34 = OpFunctionCall %void %textureLoad_a9a9f5
-         %35 = OpFunctionCall %void %tint_symbol_2 %12
+         %33 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %33
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_a9a9f5
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_a9a9f5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_a9a9f5
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureLoad_a9a9f5
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/b1bf79.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/b1bf79.wgsl.expected.spvasm
index 83d4c16..dbac120 100644
--- a/test/intrinsics/gen/textureLoad/b1bf79.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/b1bf79.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; 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 %textureLoad_b1bf79 "textureLoad_b1bf79"
                OpName %res "res"
-               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 NonWritable
                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
       %v4int = OpTypeVector %int 4
@@ -48,36 +47,35 @@
          %21 = OpConstantNull %v3int
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %24 = OpConstantNull %v4int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_b1bf79 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %24
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4int %19 %21
                OpStore %res %17
                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 %textureLoad_b1bf79
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_b1bf79
-         %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 %textureLoad_b1bf79
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_b1bf79
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_b1bf79
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_b1bf79
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/b58c6d.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/b58c6d.wgsl.expected.spvasm
index 95115b8..b6cad38 100644
--- a/test/intrinsics/gen/textureLoad/b58c6d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/b58c6d.wgsl.expected.spvasm
@@ -5,41 +5,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 %textureLoad_b58c6d "textureLoad_b58c6d"
                OpName %res "res"
-               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 NonWritable
                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
@@ -48,36 +47,35 @@
       %int_1 = OpConstant %int 1
          %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_b58c6d = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageRead %v4float %17 %22
                OpStore %res %16
                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 %textureLoad_b58c6d
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_b58c6d
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_b58c6d
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_b58c6d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_b58c6d
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_b58c6d
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/b6c458.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/b6c458.wgsl.expected.spvasm
index f4e13f4..93350a9 100644
--- a/test/intrinsics/gen/textureLoad/b6c458.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/b6c458.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; 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 %textureLoad_b6c458 "textureLoad_b6c458"
                OpName %res "res"
-               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 NonWritable
                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
      %v4uint = OpTypeVector %uint 4
@@ -49,36 +48,35 @@
          %22 = OpConstantNull %v2int
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %25 = OpConstantNull %v4uint
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_b6c458 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %25
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4uint %19 %22
                OpStore %res %17
                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 %textureLoad_b6c458
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureLoad_b6c458
-         %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 %textureLoad_b6c458
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_b6c458
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_b6c458
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_b6c458
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/bfd154.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/bfd154.wgsl.expected.spvasm
index 2f7aa34..2bd1310 100644
--- a/test/intrinsics/gen/textureLoad/bfd154.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/bfd154.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; 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 %textureLoad_bfd154 "textureLoad_bfd154"
                OpName %res "res"
-               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 NonWritable
                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
      %v4uint = OpTypeVector %uint 4
@@ -49,36 +48,35 @@
          %22 = OpConstantNull %v3int
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %25 = OpConstantNull %v4uint
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_bfd154 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %25
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4uint %19 %22
                OpStore %res %17
                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 %textureLoad_bfd154
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureLoad_bfd154
-         %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 %textureLoad_bfd154
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_bfd154
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_bfd154
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_bfd154
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/c02b74.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/c02b74.wgsl.expected.spvasm
index 069c66d..6394655 100644
--- a/test/intrinsics/gen/textureLoad/c02b74.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/c02b74.wgsl.expected.spvasm
@@ -5,77 +5,75 @@
 ; 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 %textureLoad_c02b74 "textureLoad_c02b74"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_c02b74 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageRead %v4float %17 %int_1
                OpStore %res %16
                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 %textureLoad_c02b74
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureLoad_c02b74
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureLoad_c02b74
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureLoad_c02b74
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_c02b74
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_c02b74
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/c07013.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/c07013.wgsl.expected.spvasm
index 7b7b6e9..b21a921 100644
--- a/test/intrinsics/gen/textureLoad/c07013.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/c07013.wgsl.expected.spvasm
@@ -5,77 +5,75 @@
 ; 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 %textureLoad_c07013 "textureLoad_c07013"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_c07013 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageRead %v4float %17 %20
                OpStore %res %16
                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 %textureLoad_c07013
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureLoad_c07013
-         %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 %textureLoad_c07013
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureLoad_c07013
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_c07013
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_c07013
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.spvasm
index 628a152..2a12e21 100644
--- a/test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/c2a480.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 %textureLoad_c2a480 "textureLoad_c2a480"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
@@ -44,36 +43,35 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %25 = OpConstantNull %v4int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_c2a480 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %25
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageFetch %v4int %19 %21 Lod %int_0
                OpStore %res %17
                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 %textureLoad_c2a480
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureLoad_c2a480
-         %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 %textureLoad_c2a480
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_c2a480
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_c2a480
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_c2a480
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.spvasm
index ce95a40..7190f78 100644
--- a/test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 41
 ; 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 %textureLoad_c378ee "textureLoad_c378ee"
                OpName %res "res"
-               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 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 1 1 Unknown
-%_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 1 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %v4uint = OpTypeVector %uint 4
@@ -45,36 +44,35 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %26 = OpConstantNull %v4uint
-         %27 = OpTypeFunction %void %v4float
+         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_c378ee = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %26
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageFetch %v4uint %19 %22 Sample %int_1
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %27
-%tint_symbol = OpFunctionParameter %v4float
-         %30 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureLoad_c378ee
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %32 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %34 = OpFunctionCall %void %textureLoad_c378ee
-         %35 = OpFunctionCall %void %tint_symbol_2 %12
+         %33 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %33
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_c378ee
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_c378ee
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_c378ee
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureLoad_c378ee
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/c40dcb.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/c40dcb.wgsl.expected.spvasm
index ec6e891..ab5e2b6 100644
--- a/test/intrinsics/gen/textureLoad/c40dcb.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/c40dcb.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 42
 ; 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 %textureLoad_c40dcb "textureLoad_c40dcb"
                OpName %res "res"
-               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 NonWritable
                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
      %v4uint = OpTypeVector %uint 4
@@ -51,36 +50,35 @@
          %24 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %27 = OpConstantNull %v4uint
-         %28 = OpTypeFunction %void %v4float
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_c40dcb = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %27
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4uint %19 %24
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %28
-%tint_symbol = OpFunctionParameter %v4float
-         %31 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureLoad_c40dcb
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %33 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %35 = OpFunctionCall %void %textureLoad_c40dcb
-         %36 = OpFunctionCall %void %tint_symbol_2 %12
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_c40dcb
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_c40dcb
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_c40dcb
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_c40dcb
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/c456bc.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/c456bc.wgsl.expected.spvasm
index 7486f32..bbc1ef8 100644
--- a/test/intrinsics/gen/textureLoad/c456bc.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/c456bc.wgsl.expected.spvasm
@@ -5,77 +5,75 @@
 ; 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 %textureLoad_c456bc "textureLoad_c456bc"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_c456bc = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageRead %v4float %17 %20
                OpStore %res %16
                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 %textureLoad_c456bc
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureLoad_c456bc
-         %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 %textureLoad_c456bc
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureLoad_c456bc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_c456bc
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_c456bc
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/c7cbed.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/c7cbed.wgsl.expected.spvasm
index 1e970b3..94da017 100644
--- a/test/intrinsics/gen/textureLoad/c7cbed.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/c7cbed.wgsl.expected.spvasm
@@ -5,77 +5,75 @@
 ; 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 %textureLoad_c7cbed "textureLoad_c7cbed"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_c7cbed = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageRead %v4float %17 %int_1
                OpStore %res %16
                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 %textureLoad_c7cbed
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureLoad_c7cbed
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureLoad_c7cbed
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureLoad_c7cbed
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_c7cbed
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_c7cbed
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/c9cc40.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/c9cc40.wgsl.expected.spvasm
index 0787515..ba72b53 100644
--- a/test/intrinsics/gen/textureLoad/c9cc40.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/c9cc40.wgsl.expected.spvasm
@@ -5,79 +5,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; 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 %textureLoad_c9cc40 "textureLoad_c9cc40"
                OpName %res "res"
-               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 NonWritable
                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
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %23 = OpConstantNull %v4int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_c9cc40 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %23
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4int %19 %int_1
                OpStore %res %17
                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 %textureLoad_c9cc40
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureLoad_c9cc40
-         %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 %textureLoad_c9cc40
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureLoad_c9cc40
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_c9cc40
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_c9cc40
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/d5c48d.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/d5c48d.wgsl.expected.spvasm
index 880b057..1d73e80 100644
--- a/test/intrinsics/gen/textureLoad/d5c48d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/d5c48d.wgsl.expected.spvasm
@@ -5,77 +5,75 @@
 ; 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 %textureLoad_d5c48d "textureLoad_d5c48d"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_d5c48d = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageRead %v4float %17 %20
                OpStore %res %16
                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 %textureLoad_d5c48d
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureLoad_d5c48d
-         %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 %textureLoad_d5c48d
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureLoad_d5c48d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_d5c48d
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_d5c48d
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/d81c57.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/d81c57.wgsl.expected.spvasm
index 1f1a00f..9e79b75 100644
--- a/test/intrinsics/gen/textureLoad/d81c57.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/d81c57.wgsl.expected.spvasm
@@ -5,78 +5,76 @@
 ; 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 %textureLoad_d81c57 "textureLoad_d81c57"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_d81c57 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageRead %v4float %17 %int_1
                OpStore %res %16
                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 %textureLoad_d81c57
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureLoad_d81c57
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureLoad_d81c57
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureLoad_d81c57
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_d81c57
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_d81c57
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/d8617f.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/d8617f.wgsl.expected.spvasm
index 3d60188..369b377 100644
--- a/test/intrinsics/gen/textureLoad/d8617f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/d8617f.wgsl.expected.spvasm
@@ -5,43 +5,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 41
 ; 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 %textureLoad_d8617f "textureLoad_d8617f"
                OpName %res "res"
-               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 NonWritable
                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
       %v4int = OpTypeVector %int 4
@@ -51,36 +50,35 @@
          %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %26 = OpConstantNull %v4int
-         %27 = OpTypeFunction %void %v4float
+         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_d8617f = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %26
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4int %19 %23
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %27
-%tint_symbol = OpFunctionParameter %v4float
-         %30 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureLoad_d8617f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %32 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %34 = OpFunctionCall %void %textureLoad_d8617f
-         %35 = OpFunctionCall %void %tint_symbol_2 %12
+         %33 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %33
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_d8617f
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_d8617f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_d8617f
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureLoad_d8617f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/dbd554.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/dbd554.wgsl.expected.spvasm
index c8d8bba..65e1063 100644
--- a/test/intrinsics/gen/textureLoad/dbd554.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/dbd554.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; 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 %textureLoad_dbd554 "textureLoad_dbd554"
                OpName %res "res"
-               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 NonWritable
                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
       %v4int = OpTypeVector %int 4
@@ -48,36 +47,35 @@
          %21 = OpConstantNull %v2int
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %24 = OpConstantNull %v4int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_dbd554 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %24
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4int %19 %21
                OpStore %res %17
                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 %textureLoad_dbd554
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_dbd554
-         %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 %textureLoad_dbd554
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_dbd554
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_dbd554
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_dbd554
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/ddeed3.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/ddeed3.wgsl.expected.spvasm
index ef36b19..f4850be 100644
--- a/test/intrinsics/gen/textureLoad/ddeed3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/ddeed3.wgsl.expected.spvasm
@@ -5,79 +5,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; 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 %textureLoad_ddeed3 "textureLoad_ddeed3"
                OpName %res "res"
-               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 NonWritable
                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
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %23 = OpConstantNull %v4int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_ddeed3 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %23
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4int %19 %int_1
                OpStore %res %17
                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 %textureLoad_ddeed3
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureLoad_ddeed3
-         %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 %textureLoad_ddeed3
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureLoad_ddeed3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_ddeed3
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_ddeed3
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/dee8e7.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/dee8e7.wgsl.expected.spvasm
index 42cd97c..deb06ca 100644
--- a/test/intrinsics/gen/textureLoad/dee8e7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/dee8e7.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; 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 %textureLoad_dee8e7 "textureLoad_dee8e7"
                OpName %res "res"
-               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 NonWritable
                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
       %v4int = OpTypeVector %int 4
@@ -48,36 +47,35 @@
          %21 = OpConstantNull %v2int
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %24 = OpConstantNull %v4int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_dee8e7 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %24
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4int %19 %21
                OpStore %res %17
                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 %textureLoad_dee8e7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_dee8e7
-         %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 %textureLoad_dee8e7
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_dee8e7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_dee8e7
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_dee8e7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.spvasm
index c51e959..87d98ce 100644
--- a/test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/e3d2cc.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 %textureLoad_e3d2cc "textureLoad_e3d2cc"
                OpName %res "res"
-               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 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 1 1 Unknown
-%_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 1 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v4int = OpTypeVector %int 4
@@ -44,36 +43,35 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %25 = OpConstantNull %v4int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_e3d2cc = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %25
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageFetch %v4int %19 %21 Sample %int_1
                OpStore %res %17
                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 %textureLoad_e3d2cc
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureLoad_e3d2cc
-         %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 %textureLoad_e3d2cc
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_e3d2cc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_e3d2cc
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_e3d2cc
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/e65916.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/e65916.wgsl.expected.spvasm
index 094dd56..8fe3311 100644
--- a/test/intrinsics/gen/textureLoad/e65916.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/e65916.wgsl.expected.spvasm
@@ -5,43 +5,42 @@
 ; 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 %textureLoad_e65916 "textureLoad_e65916"
                OpName %res "res"
-               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 NonWritable
                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
       %v4int = OpTypeVector %int 4
@@ -49,36 +48,35 @@
          %21 = OpConstantNull %v3int
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %24 = OpConstantNull %v4int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_e65916 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %24
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4int %19 %21
                OpStore %res %17
                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 %textureLoad_e65916
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_e65916
-         %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 %textureLoad_e65916
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_e65916
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_e65916
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_e65916
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/e893d7.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/e893d7.wgsl.expected.spvasm
index 373fbaf..15f0608 100644
--- a/test/intrinsics/gen/textureLoad/e893d7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/e893d7.wgsl.expected.spvasm
@@ -5,77 +5,75 @@
 ; 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 %textureLoad_e893d7 "textureLoad_e893d7"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_e893d7 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageRead %v4float %17 %20
                OpStore %res %16
                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 %textureLoad_e893d7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureLoad_e893d7
-         %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 %textureLoad_e893d7
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureLoad_e893d7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_e893d7
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_e893d7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/eb573b.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/eb573b.wgsl.expected.spvasm
index 7aae5f4..788f96a 100644
--- a/test/intrinsics/gen/textureLoad/eb573b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/eb573b.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; 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 %textureLoad_eb573b "textureLoad_eb573b"
                OpName %res "res"
-               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 NonWritable
                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
       %v4int = OpTypeVector %int 4
@@ -48,36 +47,35 @@
          %21 = OpConstantNull %v2int
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %24 = OpConstantNull %v4int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_eb573b = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %24
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4int %19 %21
                OpStore %res %17
                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 %textureLoad_eb573b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_eb573b
-         %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 %textureLoad_eb573b
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_eb573b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_eb573b
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_eb573b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/ecc823.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/ecc823.wgsl.expected.spvasm
index 5ef0e6f..8ca180a 100644
--- a/test/intrinsics/gen/textureLoad/ecc823.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/ecc823.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; 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 %textureLoad_ecc823 "textureLoad_ecc823"
                OpName %res "res"
-               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 NonWritable
                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
      %v4uint = OpTypeVector %uint 4
@@ -49,36 +48,35 @@
          %22 = OpConstantNull %v2int
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %25 = OpConstantNull %v4uint
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_ecc823 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %25
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4uint %19 %22
                OpStore %res %17
                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 %textureLoad_ecc823
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureLoad_ecc823
-         %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 %textureLoad_ecc823
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_ecc823
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_ecc823
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_ecc823
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/ef5405.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/ef5405.wgsl.expected.spvasm
index 85e01b9..fab31d8 100644
--- a/test/intrinsics/gen/textureLoad/ef5405.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/ef5405.wgsl.expected.spvasm
@@ -5,43 +5,42 @@
 ; 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 %textureLoad_ef5405 "textureLoad_ef5405"
                OpName %res "res"
-               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 NonWritable
                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
      %v4uint = OpTypeVector %uint 4
@@ -50,36 +49,35 @@
          %22 = OpConstantNull %v3int
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %25 = OpConstantNull %v4uint
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_ef5405 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %25
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4uint %19 %22
                OpStore %res %17
                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 %textureLoad_ef5405
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureLoad_ef5405
-         %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 %textureLoad_ef5405
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_ef5405
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_ef5405
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_ef5405
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/f06b69.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/f06b69.wgsl.expected.spvasm
index 4db4ec7..8727b36 100644
--- a/test/intrinsics/gen/textureLoad/f06b69.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/f06b69.wgsl.expected.spvasm
@@ -5,79 +5,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; 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 %textureLoad_f06b69 "textureLoad_f06b69"
                OpName %res "res"
-               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 NonWritable
                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
       %v4int = OpTypeVector %int 4
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %23 = OpConstantNull %v4int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_f06b69 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %23
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4int %19 %int_1
                OpStore %res %17
                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 %textureLoad_f06b69
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureLoad_f06b69
-         %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 %textureLoad_f06b69
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureLoad_f06b69
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_f06b69
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_f06b69
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/f379e2.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/f379e2.wgsl.expected.spvasm
index 207adf5..34ed2d0 100644
--- a/test/intrinsics/gen/textureLoad/f379e2.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/f379e2.wgsl.expected.spvasm
@@ -5,41 +5,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 %textureLoad_f379e2 "textureLoad_f379e2"
                OpName %res "res"
-               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 NonWritable
                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
@@ -48,36 +47,35 @@
       %int_1 = OpConstant %int 1
          %22 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_f379e2 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageRead %v4float %17 %22
                OpStore %res %16
                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 %textureLoad_f379e2
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureLoad_f379e2
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_f379e2
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_f379e2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_f379e2
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_f379e2
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/f56e6f.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/f56e6f.wgsl.expected.spvasm
index 680300b..b799f3d 100644
--- a/test/intrinsics/gen/textureLoad/f56e6f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/f56e6f.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; 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 %textureLoad_f56e6f "textureLoad_f56e6f"
                OpName %res "res"
-               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 NonWritable
                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
      %v4uint = OpTypeVector %uint 4
@@ -49,36 +48,35 @@
          %22 = OpConstantNull %v3int
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %25 = OpConstantNull %v4uint
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_f56e6f = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %25
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4uint %19 %22
                OpStore %res %17
                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 %textureLoad_f56e6f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureLoad_f56e6f
-         %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 %textureLoad_f56e6f
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_f56e6f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureLoad_f56e6f
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureLoad_f56e6f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/f74bd8.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/f74bd8.wgsl.expected.spvasm
index a891057..ccd5ab3 100644
--- a/test/intrinsics/gen/textureLoad/f74bd8.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/f74bd8.wgsl.expected.spvasm
@@ -5,78 +5,76 @@
 ; 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 %textureLoad_f74bd8 "textureLoad_f74bd8"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_f74bd8 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageRead %v4float %17 %20
                OpStore %res %16
                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 %textureLoad_f74bd8
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureLoad_f74bd8
-         %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 %textureLoad_f74bd8
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureLoad_f74bd8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_f74bd8
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_f74bd8
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/fc6d36.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/fc6d36.wgsl.expected.spvasm
index 5b72227..ddd0b08 100644
--- a/test/intrinsics/gen/textureLoad/fc6d36.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/fc6d36.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 41
 ; 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 %textureLoad_fc6d36 "textureLoad_fc6d36"
                OpName %res "res"
-               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 NonWritable
                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
       %v4int = OpTypeVector %int 4
@@ -50,36 +49,35 @@
          %23 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
          %26 = OpConstantNull %v4int
-         %27 = OpTypeFunction %void %v4float
+         %27 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_fc6d36 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %26
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4int %19 %23
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %27
-%tint_symbol = OpFunctionParameter %v4float
-         %30 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %textureLoad_fc6d36
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %32 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %34 = OpFunctionCall %void %textureLoad_fc6d36
-         %35 = OpFunctionCall %void %tint_symbol_2 %12
+         %33 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %33
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureLoad_fc6d36
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureLoad_fc6d36
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %textureLoad_fc6d36
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureLoad_fc6d36
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/fdebd0.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/fdebd0.wgsl.expected.spvasm
index 011f663..ec95e85 100644
--- a/test/intrinsics/gen/textureLoad/fdebd0.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/fdebd0.wgsl.expected.spvasm
@@ -5,42 +5,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 42
 ; 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 %textureLoad_fdebd0 "textureLoad_fdebd0"
                OpName %res "res"
-               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 NonWritable
                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
      %v4uint = OpTypeVector %uint 4
@@ -51,36 +50,35 @@
          %24 = OpConstantComposite %v3int %int_0 %int_0 %int_1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
          %27 = OpConstantNull %v4uint
-         %28 = OpTypeFunction %void %v4float
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_fdebd0 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %27
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageRead %v4uint %19 %24
                OpStore %res %17
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %28
-%tint_symbol = OpFunctionParameter %v4float
-         %31 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureLoad_fdebd0
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %33 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %35 = OpFunctionCall %void %textureLoad_fdebd0
-         %36 = OpFunctionCall %void %tint_symbol_2 %12
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureLoad_fdebd0
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureLoad_fdebd0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_fdebd0
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureLoad_fdebd0
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/fe222a.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/fe222a.wgsl.expected.spvasm
index 3a69455..87daa2f 100644
--- a/test/intrinsics/gen/textureLoad/fe222a.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/fe222a.wgsl.expected.spvasm
@@ -5,77 +5,75 @@
 ; 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 %textureLoad_fe222a "textureLoad_fe222a"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_fe222a = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageRead %v4float %17 %int_1
                OpStore %res %16
                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 %textureLoad_fe222a
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureLoad_fe222a
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureLoad_fe222a
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureLoad_fe222a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureLoad_fe222a
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureLoad_fe222a
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureLoad/feab99.wgsl.expected.spvasm b/test/intrinsics/gen/textureLoad/feab99.wgsl.expected.spvasm
index 9461a3f..618321d 100644
--- a/test/intrinsics/gen/textureLoad/feab99.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureLoad/feab99.wgsl.expected.spvasm
@@ -5,77 +5,75 @@
 ; 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 %textureLoad_feab99 "textureLoad_feab99"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureLoad_feab99 = OpFunction %void None %12
          %15 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %11
-         %17 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %17 = OpLoad %11 %arg_0
          %16 = OpImageRead %v4float %17 %20
                OpStore %res %16
                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 %textureLoad_feab99
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureLoad_feab99
-         %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 %textureLoad_feab99
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureLoad_feab99
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureLoad_feab99
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureLoad_feab99
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/024820.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/024820.wgsl.expected.spvasm
index 45ba7e6..5c65a19 100644
--- a/test/intrinsics/gen/textureNumLayers/024820.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/024820.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
                OpCapability ImageQuery
                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 %textureNumLayers_024820 "textureNumLayers_024820"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,37 +42,36 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_int = OpTypePointer Function %int
          %24 = OpConstantNull %int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_024820 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %24
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySizeLod %v3int %20 %int_0
          %16 = OpCompositeExtract %int %18 2
                OpStore %res %16
                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 %textureNumLayers_024820
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureNumLayers_024820
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureNumLayers_024820
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLayers_024820
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureNumLayers_024820
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureNumLayers_024820
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.spvasm
index 9dcf75f..a8336ca 100644
--- a/test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
                OpCapability ImageQuery
                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 %textureNumLayers_053df7 "textureNumLayers_053df7"
                OpName %res "res"
-               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 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 Cube 0 1 0 1 Unknown
-%_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 Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -45,37 +44,36 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_int = OpTypePointer Function %int
          %25 = OpConstantNull %int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_053df7 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %25
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySizeLod %v3int %21 %int_0
          %17 = OpCompositeExtract %int %19 2
                OpStore %res %17
                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 %textureNumLayers_053df7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureNumLayers_053df7
-         %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 %textureNumLayers_053df7
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureNumLayers_053df7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureNumLayers_053df7
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureNumLayers_053df7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.spvasm
index c6295ab..4737d7e 100644
--- a/test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureNumLayers_058cc3 "textureNumLayers_058cc3"
                OpName %res "res"
-               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
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpConstantNull %int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_058cc3 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySize %v3int %20
          %17 = OpCompositeExtract %int %18 2
                OpStore %res %17
                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 %textureNumLayers_058cc3
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureNumLayers_058cc3
-         %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 %textureNumLayers_058cc3
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureNumLayers_058cc3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureNumLayers_058cc3
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureNumLayers_058cc3
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.spvasm
index 875a32d..e70fdfc 100644
--- a/test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_09d05d "textureNumLayers_09d05d"
                OpName %res "res"
-               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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpConstantNull %int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_09d05d = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySize %v3int %20
          %16 = OpCompositeExtract %int %18 2
                OpStore %res %16
                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 %textureNumLayers_09d05d
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureNumLayers_09d05d
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureNumLayers_09d05d
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureNumLayers_09d05d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureNumLayers_09d05d
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureNumLayers_09d05d
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.spvasm
index b718fb6..651790d 100644
--- a/test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_13b4ce "textureNumLayers_13b4ce"
                OpName %res "res"
-               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
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpConstantNull %int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_13b4ce = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySize %v3int %20
          %17 = OpCompositeExtract %int %18 2
                OpStore %res %17
                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 %textureNumLayers_13b4ce
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureNumLayers_13b4ce
-         %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 %textureNumLayers_13b4ce
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureNumLayers_13b4ce
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureNumLayers_13b4ce
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureNumLayers_13b4ce
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.spvasm
index 8cb1c31..953a4a4 100644
--- a/test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_22e53b "textureNumLayers_22e53b"
                OpName %res "res"
-               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
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpConstantNull %int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_22e53b = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySize %v3int %20
          %17 = OpCompositeExtract %int %18 2
                OpStore %res %17
                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 %textureNumLayers_22e53b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureNumLayers_22e53b
-         %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 %textureNumLayers_22e53b
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureNumLayers_22e53b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureNumLayers_22e53b
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureNumLayers_22e53b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/2f6bb3.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/2f6bb3.wgsl.expected.spvasm
index 397d281..dc0fae5 100644
--- a/test/intrinsics/gen/textureNumLayers/2f6bb3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/2f6bb3.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_2f6bb3 "textureNumLayers_2f6bb3"
                OpName %res "res"
-               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 NonWritable
                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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_int = OpTypePointer Function %int
          %24 = OpConstantNull %int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_2f6bb3 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %17 = OpCompositeExtract %int %19 2
                OpStore %res %17
                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 %textureNumLayers_2f6bb3
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureNumLayers_2f6bb3
-         %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 %textureNumLayers_2f6bb3
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLayers_2f6bb3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureNumLayers_2f6bb3
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureNumLayers_2f6bb3
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/315298.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/315298.wgsl.expected.spvasm
index 7ec4325..a238b9c 100644
--- a/test/intrinsics/gen/textureNumLayers/315298.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/315298.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_315298 "textureNumLayers_315298"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpConstantNull %int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_315298 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySize %v3int %20
          %17 = OpCompositeExtract %int %18 2
                OpStore %res %17
                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 %textureNumLayers_315298
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureNumLayers_315298
-         %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 %textureNumLayers_315298
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureNumLayers_315298
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureNumLayers_315298
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureNumLayers_315298
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/3615e3.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/3615e3.wgsl.expected.spvasm
index b3125c4..12ea130 100644
--- a/test/intrinsics/gen/textureNumLayers/3615e3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/3615e3.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_3615e3 "textureNumLayers_3615e3"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpConstantNull %int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_3615e3 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySize %v3int %20
          %17 = OpCompositeExtract %int %18 2
                OpStore %res %17
                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 %textureNumLayers_3615e3
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureNumLayers_3615e3
-         %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 %textureNumLayers_3615e3
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureNumLayers_3615e3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureNumLayers_3615e3
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureNumLayers_3615e3
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/390fd5.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/390fd5.wgsl.expected.spvasm
index bbe77b3..01c522c 100644
--- a/test/intrinsics/gen/textureNumLayers/390fd5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/390fd5.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_390fd5 "textureNumLayers_390fd5"
                OpName %res "res"
-               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 NonWritable
                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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_int = OpTypePointer Function %int
          %24 = OpConstantNull %int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_390fd5 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %17 = OpCompositeExtract %int %19 2
                OpStore %res %17
                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 %textureNumLayers_390fd5
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureNumLayers_390fd5
-         %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 %textureNumLayers_390fd5
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLayers_390fd5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureNumLayers_390fd5
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureNumLayers_390fd5
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/45155d.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/45155d.wgsl.expected.spvasm
index 6d2daac..88f53a8 100644
--- a/test/intrinsics/gen/textureNumLayers/45155d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/45155d.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_45155d "textureNumLayers_45155d"
                OpName %res "res"
-               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 NonWritable
                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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpConstantNull %int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_45155d = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySize %v3int %20
          %16 = OpCompositeExtract %int %18 2
                OpStore %res %16
                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 %textureNumLayers_45155d
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureNumLayers_45155d
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureNumLayers_45155d
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureNumLayers_45155d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureNumLayers_45155d
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureNumLayers_45155d
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/4bf67b.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/4bf67b.wgsl.expected.spvasm
index 4ccb269..6805cb6 100644
--- a/test/intrinsics/gen/textureNumLayers/4bf67b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/4bf67b.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_4bf67b "textureNumLayers_4bf67b"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpConstantNull %int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_4bf67b = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySize %v3int %20
          %17 = OpCompositeExtract %int %18 2
                OpStore %res %17
                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 %textureNumLayers_4bf67b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureNumLayers_4bf67b
-         %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 %textureNumLayers_4bf67b
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureNumLayers_4bf67b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureNumLayers_4bf67b
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureNumLayers_4bf67b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.spvasm
index 4dd95b2..96b0fc2 100644
--- a/test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_562013 "textureNumLayers_562013"
                OpName %res "res"
-               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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpConstantNull %int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_562013 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySize %v3int %20
          %16 = OpCompositeExtract %int %18 2
                OpStore %res %16
                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 %textureNumLayers_562013
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureNumLayers_562013
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureNumLayers_562013
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureNumLayers_562013
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureNumLayers_562013
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureNumLayers_562013
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/57092f.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/57092f.wgsl.expected.spvasm
index 11e5d4a..ac1f09a 100644
--- a/test/intrinsics/gen/textureNumLayers/57092f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/57092f.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_57092f "textureNumLayers_57092f"
                OpName %res "res"
-               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 NonWritable
                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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_int = OpTypePointer Function %int
          %24 = OpConstantNull %int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_57092f = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %17 = OpCompositeExtract %int %19 2
                OpStore %res %17
                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 %textureNumLayers_57092f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureNumLayers_57092f
-         %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 %textureNumLayers_57092f
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLayers_57092f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureNumLayers_57092f
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureNumLayers_57092f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/5d59cd.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/5d59cd.wgsl.expected.spvasm
index dee75ea..e7f1f9e 100644
--- a/test/intrinsics/gen/textureNumLayers/5d59cd.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/5d59cd.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 SampledCubeArray
                OpCapability ImageQuery
                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 %textureNumLayers_5d59cd "textureNumLayers_5d59cd"
                OpName %res "res"
-               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 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 Cube 0 1 0 1 Unknown
-%_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 Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -44,37 +43,36 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_int = OpTypePointer Function %int
          %24 = OpConstantNull %int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_5d59cd = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %24
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySizeLod %v3int %20 %int_0
          %16 = OpCompositeExtract %int %18 2
                OpStore %res %16
                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 %textureNumLayers_5d59cd
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureNumLayers_5d59cd
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureNumLayers_5d59cd
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLayers_5d59cd
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureNumLayers_5d59cd
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureNumLayers_5d59cd
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.spvasm
index f31077f..53d6ff2 100644
--- a/test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_68a65b "textureNumLayers_68a65b"
                OpName %res "res"
-               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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpConstantNull %int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_68a65b = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySize %v3int %20
          %16 = OpCompositeExtract %int %18 2
                OpStore %res %16
                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 %textureNumLayers_68a65b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureNumLayers_68a65b
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureNumLayers_68a65b
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureNumLayers_68a65b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureNumLayers_68a65b
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureNumLayers_68a65b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/778bd1.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/778bd1.wgsl.expected.spvasm
index ab55f07..e34b642 100644
--- a/test/intrinsics/gen/textureNumLayers/778bd1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/778bd1.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 SampledCubeArray
                OpCapability ImageQuery
                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 %textureNumLayers_778bd1 "textureNumLayers_778bd1"
                OpName %res "res"
-               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 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 Cube 1 1 0 1 Unknown
-%_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 Cube 1 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -44,37 +43,36 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_int = OpTypePointer Function %int
          %24 = OpConstantNull %int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_778bd1 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %24
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySizeLod %v3int %20 %int_0
          %16 = OpCompositeExtract %int %18 2
                OpStore %res %16
                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 %textureNumLayers_778bd1
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureNumLayers_778bd1
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureNumLayers_778bd1
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLayers_778bd1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureNumLayers_778bd1
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureNumLayers_778bd1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.spvasm
index 8789a55..59d909d 100644
--- a/test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureNumLayers_7f1937 "textureNumLayers_7f1937"
                OpName %res "res"
-               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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpConstantNull %int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_7f1937 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySize %v3int %20
          %16 = OpCompositeExtract %int %18 2
                OpStore %res %16
                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 %textureNumLayers_7f1937
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureNumLayers_7f1937
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureNumLayers_7f1937
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureNumLayers_7f1937
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureNumLayers_7f1937
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureNumLayers_7f1937
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.spvasm
index 18ef1fc..4484cad 100644
--- a/test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
                OpCapability ImageQuery
                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 %textureNumLayers_85f980 "textureNumLayers_85f980"
                OpName %res "res"
-               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 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 Cube 0 1 0 1 Unknown
-%_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 Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %int_0 = OpConstant %int 0
 %_ptr_Function_int = OpTypePointer Function %int
          %24 = OpConstantNull %int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_85f980 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %24
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySizeLod %v3int %20 %int_0
          %17 = OpCompositeExtract %int %18 2
                OpStore %res %17
                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 %textureNumLayers_85f980
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureNumLayers_85f980
-         %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 %textureNumLayers_85f980
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLayers_85f980
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureNumLayers_85f980
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureNumLayers_85f980
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/87953e.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/87953e.wgsl.expected.spvasm
index 053b87c..109f2d0 100644
--- a/test/intrinsics/gen/textureNumLayers/87953e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/87953e.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 ImageQuery
                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 %textureNumLayers_87953e "textureNumLayers_87953e"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -44,37 +43,36 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_int = OpTypePointer Function %int
          %25 = OpConstantNull %int
-         %26 = OpTypeFunction %void %v4float
+         %26 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_87953e = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %25
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySizeLod %v3int %21 %int_0
          %17 = OpCompositeExtract %int %19 2
                OpStore %res %17
                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 %textureNumLayers_87953e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %31 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpFunctionCall %void %textureNumLayers_87953e
-         %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 %textureNumLayers_87953e
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureNumLayers_87953e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureNumLayers_87953e
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureNumLayers_87953e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.spvasm
index 898ee2c..22bfd83 100644
--- a/test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_893e7c "textureNumLayers_893e7c"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
       %v3int = OpTypeVector %int 3
       %int_0 = OpConstant %int 0
 %_ptr_Function_int = OpTypePointer Function %int
          %24 = OpConstantNull %int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_893e7c = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %24
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySizeLod %v3int %20 %int_0
          %17 = OpCompositeExtract %int %18 2
                OpStore %res %17
                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 %textureNumLayers_893e7c
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureNumLayers_893e7c
-         %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 %textureNumLayers_893e7c
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLayers_893e7c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureNumLayers_893e7c
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureNumLayers_893e7c
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/938763.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/938763.wgsl.expected.spvasm
index 7a8a0ea..93f9c84 100644
--- a/test/intrinsics/gen/textureNumLayers/938763.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/938763.wgsl.expected.spvasm
@@ -1,81 +1,79 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureNumLayers_938763 "textureNumLayers_938763"
                OpName %res "res"
-               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 NonWritable
                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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_int = OpTypePointer Function %int
          %24 = OpConstantNull %int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_938763 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %17 = OpCompositeExtract %int %19 2
                OpStore %res %17
                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 %textureNumLayers_938763
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureNumLayers_938763
-         %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 %textureNumLayers_938763
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLayers_938763
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureNumLayers_938763
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureNumLayers_938763
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.spvasm
index 24e0ac5..4986494 100644
--- a/test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_9700fb "textureNumLayers_9700fb"
                OpName %res "res"
-               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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_int = OpTypePointer Function %int
          %24 = OpConstantNull %int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_9700fb = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %17 = OpCompositeExtract %int %19 2
                OpStore %res %17
                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 %textureNumLayers_9700fb
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureNumLayers_9700fb
-         %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 %textureNumLayers_9700fb
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLayers_9700fb
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureNumLayers_9700fb
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureNumLayers_9700fb
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.spvasm
index 36439d2..2d82417 100644
--- a/test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_a216d2 "textureNumLayers_a216d2"
                OpName %res "res"
-               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
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpConstantNull %int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_a216d2 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySize %v3int %20
          %17 = OpCompositeExtract %int %18 2
                OpStore %res %17
                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 %textureNumLayers_a216d2
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureNumLayers_a216d2
-         %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 %textureNumLayers_a216d2
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureNumLayers_a216d2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureNumLayers_a216d2
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureNumLayers_a216d2
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/aa08a7.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/aa08a7.wgsl.expected.spvasm
index e282d0c..8627271 100644
--- a/test/intrinsics/gen/textureNumLayers/aa08a7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/aa08a7.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureNumLayers_aa08a7 "textureNumLayers_aa08a7"
                OpName %res "res"
-               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 NonWritable
                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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpConstantNull %int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_aa08a7 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySize %v3int %20
          %16 = OpCompositeExtract %int %18 2
                OpStore %res %16
                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 %textureNumLayers_aa08a7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureNumLayers_aa08a7
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureNumLayers_aa08a7
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureNumLayers_aa08a7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureNumLayers_aa08a7
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureNumLayers_aa08a7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/ab0c9b.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/ab0c9b.wgsl.expected.spvasm
index 296cafd..fdc495a 100644
--- a/test/intrinsics/gen/textureNumLayers/ab0c9b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/ab0c9b.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureNumLayers_ab0c9b "textureNumLayers_ab0c9b"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpConstantNull %int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_ab0c9b = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySize %v3int %20
          %17 = OpCompositeExtract %int %18 2
                OpStore %res %17
                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 %textureNumLayers_ab0c9b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureNumLayers_ab0c9b
-         %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 %textureNumLayers_ab0c9b
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureNumLayers_ab0c9b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureNumLayers_ab0c9b
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureNumLayers_ab0c9b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/b8cd76.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/b8cd76.wgsl.expected.spvasm
index 553f041..ae8ea64 100644
--- a/test/intrinsics/gen/textureNumLayers/b8cd76.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/b8cd76.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_b8cd76 "textureNumLayers_b8cd76"
                OpName %res "res"
-               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 NonWritable
                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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpConstantNull %int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_b8cd76 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySize %v3int %20
          %16 = OpCompositeExtract %int %18 2
                OpStore %res %16
                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 %textureNumLayers_b8cd76
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureNumLayers_b8cd76
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureNumLayers_b8cd76
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureNumLayers_b8cd76
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureNumLayers_b8cd76
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureNumLayers_b8cd76
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/be1d70.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/be1d70.wgsl.expected.spvasm
index 591fbc2..361a574 100644
--- a/test/intrinsics/gen/textureNumLayers/be1d70.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/be1d70.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_be1d70 "textureNumLayers_be1d70"
                OpName %res "res"
-               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 NonWritable
                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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpConstantNull %int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_be1d70 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySize %v3int %20
          %16 = OpCompositeExtract %int %18 2
                OpStore %res %16
                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 %textureNumLayers_be1d70
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureNumLayers_be1d70
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureNumLayers_be1d70
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureNumLayers_be1d70
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureNumLayers_be1d70
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureNumLayers_be1d70
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/be3acb.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/be3acb.wgsl.expected.spvasm
index c3bc5c4..d4a035b 100644
--- a/test/intrinsics/gen/textureNumLayers/be3acb.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/be3acb.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_be3acb "textureNumLayers_be3acb"
                OpName %res "res"
-               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 NonWritable
                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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpConstantNull %int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_be3acb = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySize %v3int %20
          %16 = OpCompositeExtract %int %18 2
                OpStore %res %16
                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 %textureNumLayers_be3acb
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureNumLayers_be3acb
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureNumLayers_be3acb
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureNumLayers_be3acb
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureNumLayers_be3acb
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureNumLayers_be3acb
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/c09917.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/c09917.wgsl.expected.spvasm
index 8238315..587be4b 100644
--- a/test/intrinsics/gen/textureNumLayers/c09917.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/c09917.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_c09917 "textureNumLayers_c09917"
                OpName %res "res"
-               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 NonWritable
                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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_int = OpTypePointer Function %int
          %24 = OpConstantNull %int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_c09917 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %17 = OpCompositeExtract %int %19 2
                OpStore %res %17
                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 %textureNumLayers_c09917
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureNumLayers_c09917
-         %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 %textureNumLayers_c09917
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLayers_c09917
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureNumLayers_c09917
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureNumLayers_c09917
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/c7c7f2.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/c7c7f2.wgsl.expected.spvasm
index 516bb38..f81ec2d 100644
--- a/test/intrinsics/gen/textureNumLayers/c7c7f2.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/c7c7f2.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_c7c7f2 "textureNumLayers_c7c7f2"
                OpName %res "res"
-               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 NonWritable
                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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpConstantNull %int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_c7c7f2 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySize %v3int %20
          %16 = OpCompositeExtract %int %18 2
                OpStore %res %16
                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 %textureNumLayers_c7c7f2
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureNumLayers_c7c7f2
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureNumLayers_c7c7f2
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureNumLayers_c7c7f2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureNumLayers_c7c7f2
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureNumLayers_c7c7f2
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.spvasm
index e084d97..996f85e 100644
--- a/test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_cd5dc8 "textureNumLayers_cd5dc8"
                OpName %res "res"
-               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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_int = OpTypePointer Function %int
          %24 = OpConstantNull %int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_cd5dc8 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %17 = OpCompositeExtract %int %19 2
                OpStore %res %17
                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 %textureNumLayers_cd5dc8
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureNumLayers_cd5dc8
-         %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 %textureNumLayers_cd5dc8
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLayers_cd5dc8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureNumLayers_cd5dc8
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureNumLayers_cd5dc8
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.spvasm
index 090fad2..08a45ee 100644
--- a/test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_d5b228 "textureNumLayers_d5b228"
                OpName %res "res"
-               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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpConstantNull %int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_d5b228 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySize %v3int %20
          %16 = OpCompositeExtract %int %18 2
                OpStore %res %16
                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 %textureNumLayers_d5b228
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureNumLayers_d5b228
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureNumLayers_d5b228
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureNumLayers_d5b228
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureNumLayers_d5b228
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureNumLayers_d5b228
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/e15642.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/e15642.wgsl.expected.spvasm
index 652d1e1..e164ea8 100644
--- a/test/intrinsics/gen/textureNumLayers/e15642.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/e15642.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_e15642 "textureNumLayers_e15642"
                OpName %res "res"
-               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 NonWritable
                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
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpConstantNull %int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_e15642 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySize %v3int %20
          %17 = OpCompositeExtract %int %18 2
                OpStore %res %17
                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 %textureNumLayers_e15642
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureNumLayers_e15642
-         %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 %textureNumLayers_e15642
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureNumLayers_e15642
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureNumLayers_e15642
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureNumLayers_e15642
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.spvasm
index 5ce6c9f..192aa63 100644
--- a/test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_e31be1 "textureNumLayers_e31be1"
                OpName %res "res"
-               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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpConstantNull %int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_e31be1 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySize %v3int %20
          %16 = OpCompositeExtract %int %18 2
                OpStore %res %16
                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 %textureNumLayers_e31be1
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureNumLayers_e31be1
-         %32 = OpFunctionCall %void %tint_symbol_2 %11
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureNumLayers_e31be1
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureNumLayers_e31be1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureNumLayers_e31be1
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureNumLayers_e31be1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/e653c0.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/e653c0.wgsl.expected.spvasm
index 1502876..8fb0180 100644
--- a/test/intrinsics/gen/textureNumLayers/e653c0.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/e653c0.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
                OpCapability ImageQuery
                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 %textureNumLayers_e653c0 "textureNumLayers_e653c0"
                OpName %res "res"
-               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 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 1 1 0 1 Unknown
-%_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 1 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,37 +42,36 @@
       %int_0 = OpConstant %int 0
 %_ptr_Function_int = OpTypePointer Function %int
          %24 = OpConstantNull %int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_e653c0 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %24
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySizeLod %v3int %20 %int_0
          %16 = OpCompositeExtract %int %18 2
                OpStore %res %16
                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 %textureNumLayers_e653c0
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureNumLayers_e653c0
-         %33 = OpFunctionCall %void %tint_symbol_2 %11
+         %31 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %31
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureNumLayers_e653c0
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLayers_e653c0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureNumLayers_e653c0
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureNumLayers_e653c0
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.spvasm
index bd63c9d..e0a11d9 100644
--- a/test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_ee942f "textureNumLayers_ee942f"
                OpName %res "res"
-               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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_int = OpTypePointer Function %int
          %24 = OpConstantNull %int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_ee942f = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %17 = OpCompositeExtract %int %19 2
                OpStore %res %17
                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 %textureNumLayers_ee942f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureNumLayers_ee942f
-         %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 %textureNumLayers_ee942f
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLayers_ee942f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureNumLayers_ee942f
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureNumLayers_ee942f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.spvasm
index 46349d8..a6a6224 100644
--- a/test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.spvasm
@@ -1,79 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_f33005 "textureNumLayers_f33005"
                OpName %res "res"
-               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
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpConstantNull %int
-         %24 = OpTypeFunction %void %v4float
+         %24 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_f33005 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %23
-         %20 = OpLoad %7 %arg_0
+         %20 = OpLoad %11 %arg_0
          %18 = OpImageQuerySize %v3int %20
          %17 = OpCompositeExtract %int %18 2
                OpStore %res %17
                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 %textureNumLayers_f33005
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpFunctionCall %void %textureNumLayers_f33005
-         %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 %textureNumLayers_f33005
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureNumLayers_f33005
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %textureNumLayers_f33005
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureNumLayers_f33005
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.spvasm
index cf2b552..b33d57b 100644
--- a/test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.spvasm
@@ -1,81 +1,79 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability StorageImageExtendedFormats
                OpCapability ImageQuery
                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 %textureNumLayers_fcec98 "textureNumLayers_fcec98"
                OpName %res "res"
-               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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_int = OpTypePointer Function %int
          %24 = OpConstantNull %int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_fcec98 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %17 = OpCompositeExtract %int %19 2
                OpStore %res %17
                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 %textureNumLayers_fcec98
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureNumLayers_fcec98
-         %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 %textureNumLayers_fcec98
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLayers_fcec98
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureNumLayers_fcec98
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureNumLayers_fcec98
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.spvasm
index 8608934..ae6e277 100644
--- a/test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.spvasm
@@ -1,80 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                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 %textureNumLayers_ff5e89 "textureNumLayers_ff5e89"
                OpName %res "res"
-               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
       %v3int = OpTypeVector %int 3
 %_ptr_Function_int = OpTypePointer Function %int
          %24 = OpConstantNull %int
-         %25 = OpTypeFunction %void %v4float
+         %25 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLayers_ff5e89 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %24
-         %21 = OpLoad %7 %arg_0
+         %21 = OpLoad %11 %arg_0
          %19 = OpImageQuerySize %v3int %21
          %17 = OpCompositeExtract %int %19 2
                OpStore %res %17
                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 %textureNumLayers_ff5e89
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %textureNumLayers_ff5e89
-         %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 %textureNumLayers_ff5e89
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLayers_ff5e89
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureNumLayers_ff5e89
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureNumLayers_ff5e89
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLevels/076cb5.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLevels/076cb5.wgsl.expected.spvasm
index ab98b40..ad5ab93 100644
--- a/test/intrinsics/gen/textureNumLevels/076cb5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLevels/076cb5.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 ImageQuery
                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 %textureNumLevels_076cb5 "textureNumLevels_076cb5"
                OpName %res "res"
-               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 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 Cube 1 0 0 1 Unknown
-%_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 Cube 1 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLevels_076cb5 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQueryLevels %int %18
                OpStore %res %16
                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 %textureNumLevels_076cb5
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureNumLevels_076cb5
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureNumLevels_076cb5
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureNumLevels_076cb5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureNumLevels_076cb5
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLevels_076cb5
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLevels/080d95.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLevels/080d95.wgsl.expected.spvasm
index 63bb114..bcbd3c7 100644
--- a/test/intrinsics/gen/textureNumLevels/080d95.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLevels/080d95.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 ImageQuery
                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 %textureNumLevels_080d95 "textureNumLevels_080d95"
                OpName %res "res"
-               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 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 Cube 0 0 0 1 Unknown
-%_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 Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLevels_080d95 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %17 = OpImageQueryLevels %int %18
                OpStore %res %17
                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 %textureNumLevels_080d95
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureNumLevels_080d95
-         %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 %textureNumLevels_080d95
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureNumLevels_080d95
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureNumLevels_080d95
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLevels_080d95
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLevels/09ddd0.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLevels/09ddd0.wgsl.expected.spvasm
index 2f369db..13e73f5 100644
--- a/test/intrinsics/gen/textureNumLevels/09ddd0.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLevels/09ddd0.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 ImageQuery
                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 %textureNumLevels_09ddd0 "textureNumLevels_09ddd0"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
          %22 = OpConstantNull %int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLevels_09ddd0 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQueryLevels %int %19
                OpStore %res %17
                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 %textureNumLevels_09ddd0
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureNumLevels_09ddd0
-         %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 %textureNumLevels_09ddd0
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureNumLevels_09ddd0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureNumLevels_09ddd0
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureNumLevels_09ddd0
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLevels/105988.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLevels/105988.wgsl.expected.spvasm
index 7a3b6a8..fd629e8 100644
--- a/test/intrinsics/gen/textureNumLevels/105988.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLevels/105988.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 ImageQuery
                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 %textureNumLevels_105988 "textureNumLevels_105988"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLevels_105988 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQueryLevels %int %18
                OpStore %res %16
                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 %textureNumLevels_105988
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureNumLevels_105988
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureNumLevels_105988
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureNumLevels_105988
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureNumLevels_105988
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLevels_105988
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.spvasm
index a263bec..80c21ea 100644
--- a/test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability Sampled1D
                OpCapability ImageQuery
                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 %textureNumLevels_1e6f3b "textureNumLevels_1e6f3b"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
          %22 = OpConstantNull %int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLevels_1e6f3b = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQueryLevels %int %19
                OpStore %res %17
                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 %textureNumLevels_1e6f3b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureNumLevels_1e6f3b
-         %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 %textureNumLevels_1e6f3b
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureNumLevels_1e6f3b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureNumLevels_1e6f3b
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureNumLevels_1e6f3b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLevels/23f750.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLevels/23f750.wgsl.expected.spvasm
index e1fc4b0..8dd3517 100644
--- a/test/intrinsics/gen/textureNumLevels/23f750.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLevels/23f750.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 ImageQuery
                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 %textureNumLevels_23f750 "textureNumLevels_23f750"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLevels_23f750 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %17 = OpImageQueryLevels %int %18
                OpStore %res %17
                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 %textureNumLevels_23f750
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureNumLevels_23f750
-         %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 %textureNumLevels_23f750
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureNumLevels_23f750
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureNumLevels_23f750
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLevels_23f750
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.spvasm
index 2e68eb3..9f84c3c 100644
--- a/test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.spvasm
@@ -1,77 +1,75 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
                OpCapability ImageQuery
                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 %textureNumLevels_2c3575 "textureNumLevels_2c3575"
                OpName %res "res"
-               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 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 Cube 1 1 0 1 Unknown
-%_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 Cube 1 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLevels_2c3575 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQueryLevels %int %18
                OpStore %res %16
                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 %textureNumLevels_2c3575
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureNumLevels_2c3575
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureNumLevels_2c3575
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureNumLevels_2c3575
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureNumLevels_2c3575
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLevels_2c3575
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.spvasm
index a6f21e0f..283d160 100644
--- a/test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.spvasm
@@ -1,77 +1,75 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Sampled1D
                OpCapability ImageQuery
                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 %textureNumLevels_32a0ae "textureNumLevels_32a0ae"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLevels_32a0ae = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %17 = OpImageQueryLevels %int %18
                OpStore %res %17
                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 %textureNumLevels_32a0ae
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureNumLevels_32a0ae
-         %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 %textureNumLevels_32a0ae
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureNumLevels_32a0ae
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureNumLevels_32a0ae
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLevels_32a0ae
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLevels/5101cf.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLevels/5101cf.wgsl.expected.spvasm
index 893e54d..321f409 100644
--- a/test/intrinsics/gen/textureNumLevels/5101cf.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLevels/5101cf.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 ImageQuery
                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 %textureNumLevels_5101cf "textureNumLevels_5101cf"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
          %22 = OpConstantNull %int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLevels_5101cf = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQueryLevels %int %19
                OpStore %res %17
                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 %textureNumLevels_5101cf
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureNumLevels_5101cf
-         %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 %textureNumLevels_5101cf
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureNumLevels_5101cf
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureNumLevels_5101cf
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureNumLevels_5101cf
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.spvasm
index 93e65fa..2fa2c76 100644
--- a/test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.spvasm
@@ -1,77 +1,75 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability Sampled1D
                OpCapability ImageQuery
                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 %textureNumLevels_51b5bb "textureNumLevels_51b5bb"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLevels_51b5bb = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQueryLevels %int %18
                OpStore %res %16
                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 %textureNumLevels_51b5bb
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureNumLevels_51b5bb
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureNumLevels_51b5bb
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureNumLevels_51b5bb
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureNumLevels_51b5bb
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLevels_51b5bb
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLevels/897aaf.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLevels/897aaf.wgsl.expected.spvasm
index 7f4e14e..2daa6e8 100644
--- a/test/intrinsics/gen/textureNumLevels/897aaf.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLevels/897aaf.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 ImageQuery
                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 %textureNumLevels_897aaf "textureNumLevels_897aaf"
                OpName %res "res"
-               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 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 Cube 0 0 0 1 Unknown
-%_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 Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLevels_897aaf = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQueryLevels %int %18
                OpStore %res %16
                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 %textureNumLevels_897aaf
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureNumLevels_897aaf
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureNumLevels_897aaf
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureNumLevels_897aaf
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureNumLevels_897aaf
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLevels_897aaf
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLevels/9da7a5.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLevels/9da7a5.wgsl.expected.spvasm
index 705b961..522fe68 100644
--- a/test/intrinsics/gen/textureNumLevels/9da7a5.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLevels/9da7a5.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 ImageQuery
                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 %textureNumLevels_9da7a5 "textureNumLevels_9da7a5"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLevels_9da7a5 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %17 = OpImageQueryLevels %int %18
                OpStore %res %17
                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 %textureNumLevels_9da7a5
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureNumLevels_9da7a5
-         %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 %textureNumLevels_9da7a5
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureNumLevels_9da7a5
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureNumLevels_9da7a5
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLevels_9da7a5
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.spvasm
index 8fef955..ba04989 100644
--- a/test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.spvasm
@@ -1,77 +1,75 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
                OpCapability ImageQuery
                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 %textureNumLevels_a91c03 "textureNumLevels_a91c03"
                OpName %res "res"
-               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 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 Cube 0 1 0 1 Unknown
-%_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 Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLevels_a91c03 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %17 = OpImageQueryLevels %int %18
                OpStore %res %17
                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 %textureNumLevels_a91c03
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureNumLevels_a91c03
-         %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 %textureNumLevels_a91c03
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureNumLevels_a91c03
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureNumLevels_a91c03
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLevels_a91c03
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.spvasm
index 690441a..d5f9d13 100644
--- a/test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.spvasm
@@ -1,77 +1,75 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
                OpCapability ImageQuery
                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 %textureNumLevels_aee7c8 "textureNumLevels_aee7c8"
                OpName %res "res"
-               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 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 Cube 0 1 0 1 Unknown
-%_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 Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLevels_aee7c8 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQueryLevels %int %18
                OpStore %res %16
                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 %textureNumLevels_aee7c8
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureNumLevels_aee7c8
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureNumLevels_aee7c8
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureNumLevels_aee7c8
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureNumLevels_aee7c8
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLevels_aee7c8
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLevels/b1b12b.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLevels/b1b12b.wgsl.expected.spvasm
index 7263834..def7aeb 100644
--- a/test/intrinsics/gen/textureNumLevels/b1b12b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLevels/b1b12b.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 ImageQuery
                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 %textureNumLevels_b1b12b "textureNumLevels_b1b12b"
                OpName %res "res"
-               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 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 1 0 0 1 Unknown
-%_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 1 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLevels_b1b12b = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQueryLevels %int %18
                OpStore %res %16
                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 %textureNumLevels_b1b12b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureNumLevels_b1b12b
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureNumLevels_b1b12b
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureNumLevels_b1b12b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureNumLevels_b1b12b
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLevels_b1b12b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl.expected.spvasm
index 23c469e..6508bca 100644
--- a/test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLevels/b4f5ea.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 ImageQuery
                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 %textureNumLevels_b4f5ea "textureNumLevels_b4f5ea"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
          %22 = OpConstantNull %int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLevels_b4f5ea = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQueryLevels %int %19
                OpStore %res %17
                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 %textureNumLevels_b4f5ea
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureNumLevels_b4f5ea
-         %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 %textureNumLevels_b4f5ea
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureNumLevels_b4f5ea
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureNumLevels_b4f5ea
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureNumLevels_b4f5ea
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLevels/d004a9.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLevels/d004a9.wgsl.expected.spvasm
index 18fa3a1..48fe3de 100644
--- a/test/intrinsics/gen/textureNumLevels/d004a9.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLevels/d004a9.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 ImageQuery
                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 %textureNumLevels_d004a9 "textureNumLevels_d004a9"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLevels_d004a9 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %17 = OpImageQueryLevels %int %18
                OpStore %res %17
                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 %textureNumLevels_d004a9
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureNumLevels_d004a9
-         %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 %textureNumLevels_d004a9
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureNumLevels_d004a9
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureNumLevels_d004a9
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLevels_d004a9
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLevels/dca09e.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLevels/dca09e.wgsl.expected.spvasm
index 025d472..3ee917e 100644
--- a/test/intrinsics/gen/textureNumLevels/dca09e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLevels/dca09e.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 ImageQuery
                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 %textureNumLevels_dca09e "textureNumLevels_dca09e"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLevels_dca09e = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQueryLevels %int %18
                OpStore %res %16
                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 %textureNumLevels_dca09e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureNumLevels_dca09e
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureNumLevels_dca09e
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureNumLevels_dca09e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureNumLevels_dca09e
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLevels_dca09e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLevels/e67231.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLevels/e67231.wgsl.expected.spvasm
index b2e72df..f2974bb 100644
--- a/test/intrinsics/gen/textureNumLevels/e67231.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLevels/e67231.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 ImageQuery
                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 %textureNumLevels_e67231 "textureNumLevels_e67231"
                OpName %res "res"
-               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 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 1 Unknown
-%_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLevels_e67231 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQueryLevels %int %18
                OpStore %res %16
                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 %textureNumLevels_e67231
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureNumLevels_e67231
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureNumLevels_e67231
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureNumLevels_e67231
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureNumLevels_e67231
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLevels_e67231
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLevels/ed078b.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLevels/ed078b.wgsl.expected.spvasm
index 7713a7e..78cf143 100644
--- a/test/intrinsics/gen/textureNumLevels/ed078b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLevels/ed078b.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 ImageQuery
                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 %textureNumLevels_ed078b "textureNumLevels_ed078b"
                OpName %res "res"
-               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 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 Cube 0 0 0 1 Unknown
-%_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 Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
          %22 = OpConstantNull %int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLevels_ed078b = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQueryLevels %int %19
                OpStore %res %17
                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 %textureNumLevels_ed078b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureNumLevels_ed078b
-         %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 %textureNumLevels_ed078b
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureNumLevels_ed078b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureNumLevels_ed078b
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureNumLevels_ed078b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.spvasm
index 6c31bf7..7650c28 100644
--- a/test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.spvasm
@@ -1,78 +1,76 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
                OpCapability ImageQuery
                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 %textureNumLevels_f46ec6 "textureNumLevels_f46ec6"
                OpName %res "res"
-               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 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 Cube 0 1 0 1 Unknown
-%_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 Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
          %22 = OpConstantNull %int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLevels_f46ec6 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQueryLevels %int %19
                OpStore %res %17
                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 %textureNumLevels_f46ec6
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureNumLevels_f46ec6
-         %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 %textureNumLevels_f46ec6
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureNumLevels_f46ec6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureNumLevels_f46ec6
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureNumLevels_f46ec6
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumLevels/f5828d.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumLevels/f5828d.wgsl.expected.spvasm
index 5013da4..50e30a2 100644
--- a/test/intrinsics/gen/textureNumLevels/f5828d.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumLevels/f5828d.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 ImageQuery
                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 %textureNumLevels_f5828d "textureNumLevels_f5828d"
                OpName %res "res"
-               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 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 1 1 0 1 Unknown
-%_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 1 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumLevels_f5828d = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQueryLevels %int %18
                OpStore %res %16
                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 %textureNumLevels_f5828d
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureNumLevels_f5828d
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureNumLevels_f5828d
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureNumLevels_f5828d
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureNumLevels_f5828d
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumLevels_f5828d
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumSamples/2c6f14.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumSamples/2c6f14.wgsl.expected.spvasm
index 9536280..f1b55e4 100644
--- a/test/intrinsics/gen/textureNumSamples/2c6f14.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumSamples/2c6f14.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 ImageQuery
                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 %textureNumSamples_2c6f14 "textureNumSamples_2c6f14"
                OpName %res "res"
-               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 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 1 1 Unknown
-%_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 1 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumSamples_2c6f14 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQuerySamples %int %18
                OpStore %res %16
                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 %textureNumSamples_2c6f14
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureNumSamples_2c6f14
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureNumSamples_2c6f14
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureNumSamples_2c6f14
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureNumSamples_2c6f14
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumSamples_2c6f14
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumSamples/42f8bb.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumSamples/42f8bb.wgsl.expected.spvasm
index 5ebd9f3..a8b6504 100644
--- a/test/intrinsics/gen/textureNumSamples/42f8bb.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumSamples/42f8bb.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 ImageQuery
                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 %textureNumSamples_42f8bb "textureNumSamples_42f8bb"
                OpName %res "res"
-               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 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 1 1 Unknown
-%_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 1 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
          %22 = OpConstantNull %int
-         %23 = OpTypeFunction %void %v4float
+         %23 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumSamples_42f8bb = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %22
-         %19 = OpLoad %7 %arg_0
+         %19 = OpLoad %11 %arg_0
          %17 = OpImageQuerySamples %int %19
                OpStore %res %17
                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 %textureNumSamples_42f8bb
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpFunctionCall %void %textureNumSamples_42f8bb
-         %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 %textureNumSamples_42f8bb
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureNumSamples_42f8bb
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %textureNumSamples_42f8bb
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureNumSamples_42f8bb
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumSamples/449d23.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumSamples/449d23.wgsl.expected.spvasm
index 66f448c..f89f901 100644
--- a/test/intrinsics/gen/textureNumSamples/449d23.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumSamples/449d23.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 ImageQuery
                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 %textureNumSamples_449d23 "textureNumSamples_449d23"
                OpName %res "res"
-               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 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 1 1 Unknown
-%_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 1 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumSamples_449d23 = OpFunction %void None %13
          %16 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %17 = OpImageQuerySamples %int %18
                OpStore %res %17
                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 %textureNumSamples_449d23
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %13
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureNumSamples_449d23
-         %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 %textureNumSamples_449d23
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureNumSamples_449d23
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %13
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureNumSamples_449d23
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumSamples_449d23
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl.expected.spvasm b/test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl.expected.spvasm
index 38604f0..5800475 100644
--- a/test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureNumSamples/a3c8a0.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 ImageQuery
                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 %textureNumSamples_a3c8a0 "textureNumSamples_a3c8a0"
                OpName %res "res"
-               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 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 1 0 1 1 Unknown
-%_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 1 0 1 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
          %21 = OpConstantNull %int
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureNumSamples_a3c8a0 = OpFunction %void None %12
          %15 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %21
-         %18 = OpLoad %7 %arg_0
+         %18 = OpLoad %11 %arg_0
          %16 = OpImageQuerySamples %int %18
                OpStore %res %16
                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 %textureNumSamples_a3c8a0
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %12
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %textureNumSamples_a3c8a0
-         %30 = OpFunctionCall %void %tint_symbol_2 %11
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %12
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %textureNumSamples_a3c8a0
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureNumSamples_a3c8a0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %12
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %textureNumSamples_a3c8a0
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureNumSamples_a3c8a0
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.spvasm
index 367451d..08eaacd 100644
--- a/test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.spvasm
@@ -1,49 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 48
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleCompareLevel_011a8f "textureSampleCompareLevel_011a8f"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 1 1 0 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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 1 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %22 = OpTypeSampledImage %7
+         %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
     %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
@@ -52,12 +51,12 @@
       %v2int = OpTypeVector %int 2
          %32 = OpConstantNull %v2int
 %_ptr_Function_float = OpTypePointer Function %float
-         %35 = OpTypeFunction %void %v4float
+         %35 = OpTypeFunction %v4float
 %textureSampleCompareLevel_011a8f = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
-         %20 = OpLoad %10 %arg_1
-         %21 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_float Function %8
+         %20 = OpLoad %14 %arg_1
+         %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
          %26 = OpConvertSToF %float %int_1
          %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
@@ -65,26 +64,25 @@
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %35
-%tint_symbol = OpFunctionParameter %v4float
-         %38 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureSampleCompareLevel_011a8f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %40 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %41 = OpFunctionCall %void %textureSampleCompareLevel_011a8f
-         %42 = OpFunctionCall %void %tint_symbol_2 %14
+         %41 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %41
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleCompareLevel_011a8f
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureSampleCompareLevel_011a8f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureSampleCompareLevel_011a8f
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureSampleCompareLevel_011a8f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.spvasm
index 9497aa4..45efa23 100644
--- a/test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.spvasm
@@ -1,61 +1,60 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 46
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleCompareLevel_1116ed "textureSampleCompareLevel_1116ed"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 1 1 0 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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 1 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %22 = OpTypeSampledImage %7
+         %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
     %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %33 = OpTypeFunction %void %v4float
+         %33 = OpTypeFunction %v4float
 %textureSampleCompareLevel_1116ed = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
-         %20 = OpLoad %10 %arg_1
-         %21 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_float Function %8
+         %20 = OpLoad %14 %arg_1
+         %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
          %26 = OpConvertSToF %float %int_1
          %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
@@ -63,26 +62,25 @@
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %33
-%tint_symbol = OpFunctionParameter %v4float
-         %36 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureSampleCompareLevel_1116ed
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %38 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %39 = OpFunctionCall %void %textureSampleCompareLevel_1116ed
-         %40 = OpFunctionCall %void %tint_symbol_2 %14
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureSampleCompareLevel_1116ed
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureSampleCompareLevel_1116ed
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureSampleCompareLevel_1116ed
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleCompareLevel_1116ed
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.spvasm
index e973d77..834d5df 100644
--- a/test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.spvasm
@@ -1,85 +1,83 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 43
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleCompareLevel_1568e3 "textureSampleCompareLevel_1568e3"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 Cube 1 0 0 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+         %11 = OpTypeImage %float Cube 1 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %22 = OpTypeSampledImage %7
+         %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
          %25 = OpConstantNull %v3float
     %float_1 = OpConstant %float 1
     %float_0 = OpConstant %float 0
 %_ptr_Function_float = OpTypePointer Function %float
-         %30 = OpTypeFunction %void %v4float
+         %30 = OpTypeFunction %v4float
 %textureSampleCompareLevel_1568e3 = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
-         %20 = OpLoad %10 %arg_1
-         %21 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_float Function %8
+         %20 = OpLoad %14 %arg_1
+         %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
          %19 = OpImageSampleDrefExplicitLod %float %23 %25 %float_1 Lod %float_0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %30
-%tint_symbol = OpFunctionParameter %v4float
-         %33 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureSampleCompareLevel_1568e3
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %35 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %36 = OpFunctionCall %void %textureSampleCompareLevel_1568e3
-         %37 = OpFunctionCall %void %tint_symbol_2 %14
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureSampleCompareLevel_1568e3
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureSampleCompareLevel_1568e3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureSampleCompareLevel_1568e3
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureSampleCompareLevel_1568e3
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.spvasm
index f820c27..177f6f9 100644
--- a/test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.spvasm
@@ -1,85 +1,83 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 43
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleCompareLevel_2ad2b1 "textureSampleCompareLevel_2ad2b1"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 1 0 0 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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 1 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %22 = OpTypeSampledImage %7
+         %22 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
          %25 = OpConstantNull %v2float
     %float_1 = OpConstant %float 1
     %float_0 = OpConstant %float 0
 %_ptr_Function_float = OpTypePointer Function %float
-         %30 = OpTypeFunction %void %v4float
+         %30 = OpTypeFunction %v4float
 %textureSampleCompareLevel_2ad2b1 = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
-         %20 = OpLoad %10 %arg_1
-         %21 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_float Function %8
+         %20 = OpLoad %14 %arg_1
+         %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
          %19 = OpImageSampleDrefExplicitLod %float %23 %25 %float_1 Lod %float_0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %30
-%tint_symbol = OpFunctionParameter %v4float
-         %33 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %30
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %textureSampleCompareLevel_2ad2b1
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %35 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %36 = OpFunctionCall %void %textureSampleCompareLevel_2ad2b1
-         %37 = OpFunctionCall %void %tint_symbol_2 %14
+         %36 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %36
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureSampleCompareLevel_2ad2b1
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureSampleCompareLevel_2ad2b1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureSampleCompareLevel_2ad2b1
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureSampleCompareLevel_2ad2b1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.spvasm
index a25fc99..8102ae6 100644
--- a/test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.spvasm
@@ -1,61 +1,60 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
                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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleCompareLevel_4cf3a2 "textureSampleCompareLevel_4cf3a2"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 Cube 1 1 0 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+         %11 = OpTypeImage %float Cube 1 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %22 = OpTypeSampledImage %7
+         %22 = OpTypeSampledImage %11
     %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %32 = OpTypeFunction %void %v4float
+         %32 = OpTypeFunction %v4float
 %textureSampleCompareLevel_4cf3a2 = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
-         %20 = OpLoad %10 %arg_1
-         %21 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_float Function %8
+         %20 = OpLoad %14 %arg_1
+         %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
          %25 = OpConvertSToF %float %int_1
          %28 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %25
@@ -63,26 +62,25 @@
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %32
-%tint_symbol = OpFunctionParameter %v4float
-         %35 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureSampleCompareLevel_4cf3a2
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %37 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %38 = OpFunctionCall %void %textureSampleCompareLevel_4cf3a2
-         %39 = OpFunctionCall %void %tint_symbol_2 %14
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSampleCompareLevel_4cf3a2
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureSampleCompareLevel_4cf3a2
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleCompareLevel_4cf3a2
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureSampleCompareLevel_4cf3a2
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.spvasm
index 9048dd1..4220224 100644
--- a/test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.spvasm
@@ -1,49 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 46
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleCompareLevel_f8121c "textureSampleCompareLevel_f8121c"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 1 0 0 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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 1 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %22 = OpTypeSampledImage %7
+         %22 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
          %25 = OpConstantNull %v2float
     %float_1 = OpConstant %float 1
@@ -52,37 +51,36 @@
       %v2int = OpTypeVector %int 2
          %30 = OpConstantNull %v2int
 %_ptr_Function_float = OpTypePointer Function %float
-         %33 = OpTypeFunction %void %v4float
+         %33 = OpTypeFunction %v4float
 %textureSampleCompareLevel_f8121c = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
-         %20 = OpLoad %10 %arg_1
-         %21 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_float Function %8
+         %20 = OpLoad %14 %arg_1
+         %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
          %19 = OpImageSampleDrefExplicitLod %float %23 %25 %float_1 Lod|ConstOffset %float_0 %30
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %33
-%tint_symbol = OpFunctionParameter %v4float
-         %36 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureSampleCompareLevel_f8121c
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %38 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %39 = OpFunctionCall %void %textureSampleCompareLevel_f8121c
-         %40 = OpFunctionCall %void %tint_symbol_2 %14
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureSampleCompareLevel_f8121c
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureSampleCompareLevel_f8121c
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureSampleCompareLevel_f8121c
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleCompareLevel_f8121c
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.spvasm
index 757d428..99b7b95 100644
--- a/test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.spvasm
@@ -1,84 +1,82 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 42
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleGrad_21402b "textureSampleGrad_21402b"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %22 = OpTypeSampledImage %7
+         %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
          %25 = OpConstantNull %v3float
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %28 = OpTypeFunction %void %v4float
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureSampleGrad_21402b = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %14
-         %20 = OpLoad %10 %arg_1
-         %21 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %20 = OpLoad %14 %arg_1
+         %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
          %19 = OpImageSampleExplicitLod %v4float %23 %25 Grad %25 %25
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %28
-%tint_symbol = OpFunctionParameter %v4float
-         %31 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureSampleGrad_21402b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %33 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %35 = OpFunctionCall %void %textureSampleGrad_21402b
-         %36 = OpFunctionCall %void %tint_symbol_2 %14
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureSampleGrad_21402b
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureSampleGrad_21402b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSampleGrad_21402b
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureSampleGrad_21402b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.spvasm
index da65931..ec4ab9b 100644
--- a/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.spvasm
@@ -1,49 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 48
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleGrad_2ecd8f "textureSampleGrad_2ecd8f"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %22 = OpTypeSampledImage %7
+         %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
     %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
@@ -51,13 +50,13 @@
     %v2float = OpTypeVector %float 2
          %31 = OpConstantNull %v2float
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %34 = OpTypeFunction %void %v4float
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureSampleGrad_2ecd8f = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %14
-         %20 = OpLoad %10 %arg_1
-         %21 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %20 = OpLoad %14 %arg_1
+         %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
          %26 = OpConvertSToF %float %int_1
          %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
@@ -65,26 +64,25 @@
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %34
-%tint_symbol = OpFunctionParameter %v4float
-         %37 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureSampleGrad_2ecd8f
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %39 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %41 = OpFunctionCall %void %textureSampleGrad_2ecd8f
-         %42 = OpFunctionCall %void %tint_symbol_2 %14
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleGrad_2ecd8f
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureSampleGrad_2ecd8f
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureSampleGrad_2ecd8f
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureSampleGrad_2ecd8f
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.spvasm
index 9d30fbc..9caa2c3 100644
--- a/test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.spvasm
@@ -1,87 +1,85 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 45
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleGrad_468f88 "textureSampleGrad_468f88"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %22 = OpTypeSampledImage %7
+         %22 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
          %25 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
          %28 = OpConstantNull %v2int
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %void %v4float
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureSampleGrad_468f88 = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %14
-         %20 = OpLoad %10 %arg_1
-         %21 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %20 = OpLoad %14 %arg_1
+         %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
          %19 = OpImageSampleExplicitLod %v4float %23 %25 Grad|ConstOffset %25 %25 %28
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %31
-%tint_symbol = OpFunctionParameter %v4float
-         %34 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureSampleGrad_468f88
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %36 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %38 = OpFunctionCall %void %textureSampleGrad_468f88
-         %39 = OpFunctionCall %void %tint_symbol_2 %14
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSampleGrad_468f88
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureSampleGrad_468f88
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleGrad_468f88
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureSampleGrad_468f88
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.spvasm
index 415b703..ac43905 100644
--- a/test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.spvasm
@@ -1,84 +1,82 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 42
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleGrad_521263 "textureSampleGrad_521263"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %22 = OpTypeSampledImage %7
+         %22 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
          %25 = OpConstantNull %v2float
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %28 = OpTypeFunction %void %v4float
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureSampleGrad_521263 = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %14
-         %20 = OpLoad %10 %arg_1
-         %21 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %20 = OpLoad %14 %arg_1
+         %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
          %19 = OpImageSampleExplicitLod %v4float %23 %25 Grad %25 %25
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %28
-%tint_symbol = OpFunctionParameter %v4float
-         %31 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureSampleGrad_521263
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %33 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %35 = OpFunctionCall %void %textureSampleGrad_521263
-         %36 = OpFunctionCall %void %tint_symbol_2 %14
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureSampleGrad_521263
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureSampleGrad_521263
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSampleGrad_521263
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureSampleGrad_521263
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.spvasm
index 0cc1c9a..19283ee 100644
--- a/test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.spvasm
@@ -1,84 +1,82 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 42
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleGrad_5312f4 "textureSampleGrad_5312f4"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+         %11 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %22 = OpTypeSampledImage %7
+         %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
          %25 = OpConstantNull %v3float
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %28 = OpTypeFunction %void %v4float
+         %28 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureSampleGrad_5312f4 = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %14
-         %20 = OpLoad %10 %arg_1
-         %21 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %20 = OpLoad %14 %arg_1
+         %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
          %19 = OpImageSampleExplicitLod %v4float %23 %25 Grad %25 %25
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %28
-%tint_symbol = OpFunctionParameter %v4float
-         %31 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %28
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %textureSampleGrad_5312f4
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %33 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %35 = OpFunctionCall %void %textureSampleGrad_5312f4
-         %36 = OpFunctionCall %void %tint_symbol_2 %14
+         %34 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %34
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureSampleGrad_5312f4
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureSampleGrad_5312f4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSampleGrad_5312f4
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureSampleGrad_5312f4
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.spvasm
index 4cb56d1..8fb8f21 100644
--- a/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.spvasm
@@ -1,49 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 51
+; Bound: 50
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleGrad_872f00 "textureSampleGrad_872f00"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %22 = OpTypeSampledImage %7
+         %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
     %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
@@ -53,13 +52,13 @@
       %v2int = OpTypeVector %int 2
          %33 = OpConstantNull %v2int
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %36 = OpTypeFunction %void %v4float
+         %36 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureSampleGrad_872f00 = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %14
-         %20 = OpLoad %10 %arg_1
-         %21 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %20 = OpLoad %14 %arg_1
+         %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
          %26 = OpConvertSToF %float %int_1
          %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
@@ -67,26 +66,25 @@
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %36
-%tint_symbol = OpFunctionParameter %v4float
-         %39 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %36
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureSampleGrad_872f00
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %41 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %43 = OpFunctionCall %void %textureSampleGrad_872f00
-         %44 = OpFunctionCall %void %tint_symbol_2 %14
+         %42 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %42
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureSampleGrad_872f00
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureSampleGrad_872f00
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureSampleGrad_872f00
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureSampleGrad_872f00
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.spvasm
index 6a84f1f..a5cff35 100644
--- a/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.spvasm
@@ -1,63 +1,62 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
                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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleGrad_e383db "textureSampleGrad_e383db"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+         %11 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %22 = OpTypeSampledImage %7
+         %22 = OpTypeSampledImage %11
     %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
     %v3float = OpTypeVector %float 3
          %30 = OpConstantNull %v3float
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %33 = OpTypeFunction %void %v4float
+         %33 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureSampleGrad_e383db = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %14
-         %20 = OpLoad %10 %arg_1
-         %21 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %20 = OpLoad %14 %arg_1
+         %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
          %25 = OpConvertSToF %float %int_1
          %28 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %25
@@ -65,26 +64,25 @@
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %33
-%tint_symbol = OpFunctionParameter %v4float
-         %36 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureSampleGrad_e383db
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %38 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %40 = OpFunctionCall %void %textureSampleGrad_e383db
-         %41 = OpFunctionCall %void %tint_symbol_2 %14
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %textureSampleGrad_e383db
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %textureSampleGrad_e383db
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %textureSampleGrad_e383db
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %textureSampleGrad_e383db
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.spvasm
index b13faa0..a54c398 100644
--- a/test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.spvasm
@@ -1,87 +1,85 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 45
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleGrad_e9a2f7 "textureSampleGrad_e9a2f7"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %22 = OpTypeSampledImage %7
+         %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
          %25 = OpConstantNull %v3float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
          %28 = OpConstantNull %v3int
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %31 = OpTypeFunction %void %v4float
+         %31 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureSampleGrad_e9a2f7 = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %14
-         %20 = OpLoad %10 %arg_1
-         %21 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %20 = OpLoad %14 %arg_1
+         %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
          %19 = OpImageSampleExplicitLod %v4float %23 %25 Grad|ConstOffset %25 %25 %28
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %31
-%tint_symbol = OpFunctionParameter %v4float
-         %34 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %textureSampleGrad_e9a2f7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %36 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %38 = OpFunctionCall %void %textureSampleGrad_e9a2f7
-         %39 = OpFunctionCall %void %tint_symbol_2 %14
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSampleGrad_e9a2f7
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureSampleGrad_e9a2f7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleGrad_e9a2f7
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureSampleGrad_e9a2f7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.spvasm
index d43aedf..b8fed20 100644
--- a/test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.spvasm
@@ -1,61 +1,60 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 46
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleLevel_02be59 "textureSampleLevel_02be59"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 1 0 0 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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 1 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %23 = OpTypeSampledImage %7
+         %23 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
          %26 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Function_float = OpTypePointer Function %float
-         %32 = OpTypeFunction %void %v4float
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureSampleLevel_02be59 = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
-         %21 = OpLoad %10 %arg_1
-         %22 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_float Function %8
+         %21 = OpLoad %14 %arg_1
+         %22 = OpLoad %11 %arg_0
          %24 = OpSampledImage %23 %22 %21
          %27 = OpConvertSToF %float %int_0
          %20 = OpImageSampleExplicitLod %v4float %24 %26 Lod %27
@@ -63,26 +62,25 @@
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %32
-%tint_symbol = OpFunctionParameter %v4float
-         %35 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureSampleLevel_02be59
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %37 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %39 = OpFunctionCall %void %textureSampleLevel_02be59
-         %40 = OpFunctionCall %void %tint_symbol_2 %14
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureSampleLevel_02be59
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureSampleLevel_02be59
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureSampleLevel_02be59
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleLevel_02be59
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.spvasm
index 5d4ebad..6c66663 100644
--- a/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.spvasm
@@ -1,61 +1,60 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
                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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleLevel_0bdd9a "textureSampleLevel_0bdd9a"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+         %11 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %22 = OpTypeSampledImage %7
+         %22 = OpTypeSampledImage %11
     %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
     %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %void %v4float
+         %32 = OpTypeFunction %v4float
 %textureSampleLevel_0bdd9a = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %14
-         %20 = OpLoad %10 %arg_1
-         %21 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %20 = OpLoad %14 %arg_1
+         %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
          %25 = OpConvertSToF %float %int_1
          %28 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %25
@@ -63,26 +62,25 @@
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %32
-%tint_symbol = OpFunctionParameter %v4float
-         %35 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureSampleLevel_0bdd9a
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %37 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %38 = OpFunctionCall %void %textureSampleLevel_0bdd9a
-         %39 = OpFunctionCall %void %tint_symbol_2 %14
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSampleLevel_0bdd9a
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureSampleLevel_0bdd9a
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleLevel_0bdd9a
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureSampleLevel_0bdd9a
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.spvasm
index 35cdc08..38d4e45 100644
--- a/test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.spvasm
@@ -1,61 +1,60 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 46
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleLevel_1b0291 "textureSampleLevel_1b0291"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 Cube 1 0 0 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+         %11 = OpTypeImage %float Cube 1 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %23 = OpTypeSampledImage %7
+         %23 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
          %26 = OpConstantNull %v3float
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Function_float = OpTypePointer Function %float
-         %32 = OpTypeFunction %void %v4float
+         %32 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureSampleLevel_1b0291 = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
-         %21 = OpLoad %10 %arg_1
-         %22 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_float Function %8
+         %21 = OpLoad %14 %arg_1
+         %22 = OpLoad %11 %arg_0
          %24 = OpSampledImage %23 %22 %21
          %27 = OpConvertSToF %float %int_0
          %20 = OpImageSampleExplicitLod %v4float %24 %26 Lod %27
@@ -63,26 +62,25 @@
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %32
-%tint_symbol = OpFunctionParameter %v4float
-         %35 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureSampleLevel_1b0291
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %37 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %39 = OpFunctionCall %void %textureSampleLevel_1b0291
-         %40 = OpFunctionCall %void %tint_symbol_2 %14
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureSampleLevel_1b0291
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureSampleLevel_1b0291
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureSampleLevel_1b0291
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleLevel_1b0291
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.spvasm
index 541d6be..8be8c18 100644
--- a/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.spvasm
@@ -1,62 +1,61 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 49
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleLevel_1bf73e "textureSampleLevel_1bf73e"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 1 1 0 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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 1 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %23 = OpTypeSampledImage %7
+         %23 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
     %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %int_0 = OpConstant %int 0
 %_ptr_Function_float = OpTypePointer Function %float
-         %35 = OpTypeFunction %void %v4float
+         %35 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureSampleLevel_1bf73e = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
-         %21 = OpLoad %10 %arg_1
-         %22 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_float Function %8
+         %21 = OpLoad %14 %arg_1
+         %22 = OpLoad %11 %arg_0
          %24 = OpSampledImage %23 %22 %21
          %27 = OpConvertSToF %float %int_1
          %30 = OpCompositeConstruct %v3float %float_0 %float_0 %27
@@ -66,26 +65,25 @@
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %35
-%tint_symbol = OpFunctionParameter %v4float
-         %38 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureSampleLevel_1bf73e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %40 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %42 = OpFunctionCall %void %textureSampleLevel_1bf73e
-         %43 = OpFunctionCall %void %tint_symbol_2 %14
+         %41 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %41
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureSampleLevel_1bf73e
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleLevel_1bf73e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %textureSampleLevel_1bf73e
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %textureSampleLevel_1bf73e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.spvasm
index febef40..19dc29b 100644
--- a/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.spvasm
@@ -1,61 +1,60 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 46
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleLevel_302be4 "textureSampleLevel_302be4"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %22 = OpTypeSampledImage %7
+         %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
     %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
     %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %33 = OpTypeFunction %void %v4float
+         %33 = OpTypeFunction %v4float
 %textureSampleLevel_302be4 = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %14
-         %20 = OpLoad %10 %arg_1
-         %21 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %20 = OpLoad %14 %arg_1
+         %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
          %26 = OpConvertSToF %float %int_1
          %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
@@ -63,26 +62,25 @@
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %33
-%tint_symbol = OpFunctionParameter %v4float
-         %36 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %textureSampleLevel_302be4
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %38 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %39 = OpFunctionCall %void %textureSampleLevel_302be4
-         %40 = OpFunctionCall %void %tint_symbol_2 %14
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureSampleLevel_302be4
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureSampleLevel_302be4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %textureSampleLevel_302be4
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %textureSampleLevel_302be4
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.spvasm
index 6e8d81b..4a78cb0 100644
--- a/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.spvasm
@@ -1,49 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 48
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleLevel_47daa4 "textureSampleLevel_47daa4"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 1 0 0 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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 1 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %23 = OpTypeSampledImage %7
+         %23 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
          %26 = OpConstantNull %v2float
         %int = OpTypeInt 32 1
@@ -51,13 +50,13 @@
       %v2int = OpTypeVector %int 2
          %31 = OpConstantNull %v2int
 %_ptr_Function_float = OpTypePointer Function %float
-         %34 = OpTypeFunction %void %v4float
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureSampleLevel_47daa4 = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
-         %21 = OpLoad %10 %arg_1
-         %22 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_float Function %8
+         %21 = OpLoad %14 %arg_1
+         %22 = OpLoad %11 %arg_0
          %24 = OpSampledImage %23 %22 %21
          %27 = OpConvertSToF %float %int_0
          %20 = OpImageSampleExplicitLod %v4float %24 %26 Lod|ConstOffset %27 %31
@@ -65,26 +64,25 @@
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %34
-%tint_symbol = OpFunctionParameter %v4float
-         %37 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureSampleLevel_47daa4
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %39 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %41 = OpFunctionCall %void %textureSampleLevel_47daa4
-         %42 = OpFunctionCall %void %tint_symbol_2 %14
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleLevel_47daa4
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureSampleLevel_47daa4
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureSampleLevel_47daa4
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureSampleLevel_47daa4
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.spvasm
index 4c6afe0..50a4990 100644
--- a/test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.spvasm
@@ -1,49 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 45
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleLevel_690d95 "textureSampleLevel_690d95"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %22 = OpTypeSampledImage %7
+         %22 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
          %25 = OpConstantNull %v2float
     %float_1 = OpConstant %float 1
@@ -51,37 +50,36 @@
       %v2int = OpTypeVector %int 2
          %29 = OpConstantNull %v2int
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %void %v4float
+         %32 = OpTypeFunction %v4float
 %textureSampleLevel_690d95 = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %14
-         %20 = OpLoad %10 %arg_1
-         %21 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %20 = OpLoad %14 %arg_1
+         %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
          %19 = OpImageSampleExplicitLod %v4float %23 %25 Lod|ConstOffset %float_1 %29
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %32
-%tint_symbol = OpFunctionParameter %v4float
-         %35 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureSampleLevel_690d95
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %37 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %38 = OpFunctionCall %void %textureSampleLevel_690d95
-         %39 = OpFunctionCall %void %tint_symbol_2 %14
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSampleLevel_690d95
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureSampleLevel_690d95
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleLevel_690d95
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureSampleLevel_690d95
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.spvasm
index c8f76e0..6420fc9 100644
--- a/test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.spvasm
@@ -1,85 +1,83 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 43
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleLevel_979816 "textureSampleLevel_979816"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %22 = OpTypeSampledImage %7
+         %22 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
          %25 = OpConstantNull %v2float
     %float_0 = OpConstant %float 0
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %29 = OpTypeFunction %void %v4float
+         %29 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureSampleLevel_979816 = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %14
-         %20 = OpLoad %10 %arg_1
-         %21 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %20 = OpLoad %14 %arg_1
+         %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
          %19 = OpImageSampleExplicitLod %v4float %23 %25 Lod %float_0
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %29
-%tint_symbol = OpFunctionParameter %v4float
-         %32 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %29
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureSampleLevel_979816
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %34 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %36 = OpFunctionCall %void %textureSampleLevel_979816
-         %37 = OpFunctionCall %void %tint_symbol_2 %14
+         %35 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %35
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %textureSampleLevel_979816
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %textureSampleLevel_979816
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %textureSampleLevel_979816
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %textureSampleLevel_979816
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.spvasm
index bbb579d..6618133 100644
--- a/test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.spvasm
@@ -1,49 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 45
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleLevel_9bd37b "textureSampleLevel_9bd37b"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %22 = OpTypeSampledImage %7
+         %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
          %25 = OpConstantNull %v3float
     %float_1 = OpConstant %float 1
@@ -51,37 +50,36 @@
       %v3int = OpTypeVector %int 3
          %29 = OpConstantNull %v3int
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %32 = OpTypeFunction %void %v4float
+         %32 = OpTypeFunction %v4float
 %textureSampleLevel_9bd37b = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %14
-         %20 = OpLoad %10 %arg_1
-         %21 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %20 = OpLoad %14 %arg_1
+         %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
          %19 = OpImageSampleExplicitLod %v4float %23 %25 Lod|ConstOffset %float_1 %29
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %32
-%tint_symbol = OpFunctionParameter %v4float
-         %35 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %32
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %textureSampleLevel_9bd37b
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %37 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %38 = OpFunctionCall %void %textureSampleLevel_9bd37b
-         %39 = OpFunctionCall %void %tint_symbol_2 %14
+         %38 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %38
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSampleLevel_9bd37b
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureSampleLevel_9bd37b
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleLevel_9bd37b
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureSampleLevel_9bd37b
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.spvasm
index 188ce07..ddb13a5 100644
--- a/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.spvasm
@@ -1,49 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 48
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleLevel_a4af26 "textureSampleLevel_a4af26"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %22 = OpTypeSampledImage %7
+         %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
     %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
@@ -52,12 +51,12 @@
       %v2int = OpTypeVector %int 2
          %32 = OpConstantNull %v2int
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %35 = OpTypeFunction %void %v4float
+         %35 = OpTypeFunction %v4float
 %textureSampleLevel_a4af26 = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %14
-         %20 = OpLoad %10 %arg_1
-         %21 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %20 = OpLoad %14 %arg_1
+         %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
          %26 = OpConvertSToF %float %int_1
          %29 = OpCompositeConstruct %v3float %float_0 %float_0 %26
@@ -65,26 +64,25 @@
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %35
-%tint_symbol = OpFunctionParameter %v4float
-         %38 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %35
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureSampleLevel_a4af26
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %40 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %41 = OpFunctionCall %void %textureSampleLevel_a4af26
-         %42 = OpFunctionCall %void %tint_symbol_2 %14
+         %41 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %41
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleLevel_a4af26
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureSampleLevel_a4af26
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureSampleLevel_a4af26
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureSampleLevel_a4af26
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.spvasm
index 3b16f62..e86f2fb 100644
--- a/test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.spvasm
@@ -1,84 +1,82 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 42
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleLevel_abfcc0 "textureSampleLevel_abfcc0"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %22 = OpTypeSampledImage %7
+         %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
          %25 = OpConstantNull %v3float
     %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %29 = OpTypeFunction %void %v4float
+         %29 = OpTypeFunction %v4float
 %textureSampleLevel_abfcc0 = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %14
-         %20 = OpLoad %10 %arg_1
-         %21 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %20 = OpLoad %14 %arg_1
+         %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
          %19 = OpImageSampleExplicitLod %v4float %23 %25 Lod %float_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %29
-%tint_symbol = OpFunctionParameter %v4float
-         %32 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %29
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureSampleLevel_abfcc0
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %34 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %35 = OpFunctionCall %void %textureSampleLevel_abfcc0
-         %36 = OpFunctionCall %void %tint_symbol_2 %14
+         %35 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %35
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureSampleLevel_abfcc0
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureSampleLevel_abfcc0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSampleLevel_abfcc0
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureSampleLevel_abfcc0
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.spvasm
index 9d7251c..50ca7f9 100644
--- a/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.spvasm
@@ -1,62 +1,61 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpCapability SampledCubeArray
                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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleLevel_ae5e39 "textureSampleLevel_ae5e39"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 Cube 1 1 0 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+         %11 = OpTypeImage %float Cube 1 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %23 = OpTypeSampledImage %7
+         %23 = OpTypeSampledImage %11
     %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %int_0 = OpConstant %int 0
 %_ptr_Function_float = OpTypePointer Function %float
-         %34 = OpTypeFunction %void %v4float
+         %34 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureSampleLevel_ae5e39 = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
-         %21 = OpLoad %10 %arg_1
-         %22 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_float Function %8
+         %21 = OpLoad %14 %arg_1
+         %22 = OpLoad %11 %arg_0
          %24 = OpSampledImage %23 %22 %21
          %26 = OpConvertSToF %float %int_1
          %29 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %26
@@ -66,26 +65,25 @@
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %34
-%tint_symbol = OpFunctionParameter %v4float
-         %37 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %34
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %textureSampleLevel_ae5e39
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %39 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %41 = OpFunctionCall %void %textureSampleLevel_ae5e39
-         %42 = OpFunctionCall %void %tint_symbol_2 %14
+         %40 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %40
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %textureSampleLevel_ae5e39
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %textureSampleLevel_ae5e39
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureSampleLevel_ae5e39
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureSampleLevel_ae5e39
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.spvasm
index c0c4f79..605376e 100644
--- a/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.spvasm
@@ -1,49 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 51
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleLevel_ba93b3 "textureSampleLevel_ba93b3"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 1 1 0 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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 1 1 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %23 = OpTypeSampledImage %7
+         %23 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
     %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
@@ -52,13 +51,13 @@
       %v2int = OpTypeVector %int 2
          %34 = OpConstantNull %v2int
 %_ptr_Function_float = OpTypePointer Function %float
-         %37 = OpTypeFunction %void %v4float
+         %37 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %textureSampleLevel_ba93b3 = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
-         %21 = OpLoad %10 %arg_1
-         %22 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_float Function %8
+         %21 = OpLoad %14 %arg_1
+         %22 = OpLoad %11 %arg_0
          %24 = OpSampledImage %23 %22 %21
          %27 = OpConvertSToF %float %int_1
          %30 = OpCompositeConstruct %v3float %float_0 %float_0 %27
@@ -68,26 +67,25 @@
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %37
-%tint_symbol = OpFunctionParameter %v4float
-         %40 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %37
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %textureSampleLevel_ba93b3
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %42 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %44 = OpFunctionCall %void %textureSampleLevel_ba93b3
-         %45 = OpFunctionCall %void %tint_symbol_2 %14
+         %43 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %43
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %textureSampleLevel_ba93b3
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %textureSampleLevel_ba93b3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %textureSampleLevel_ba93b3
+         %49 = OpLabel
+         %50 = OpFunctionCall %void %textureSampleLevel_ba93b3
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.spvasm
index 0f377ee..5daeeb2 100644
--- a/test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.spvasm
@@ -1,84 +1,82 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 42
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleLevel_c32df7 "textureSampleLevel_c32df7"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+         %11 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %22 = OpTypeSampledImage %7
+         %22 = OpTypeSampledImage %11
     %v3float = OpTypeVector %float 3
          %25 = OpConstantNull %v3float
     %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %29 = OpTypeFunction %void %v4float
+         %29 = OpTypeFunction %v4float
 %textureSampleLevel_c32df7 = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %14
-         %20 = OpLoad %10 %arg_1
-         %21 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %20 = OpLoad %14 %arg_1
+         %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
          %19 = OpImageSampleExplicitLod %v4float %23 %25 Lod %float_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %29
-%tint_symbol = OpFunctionParameter %v4float
-         %32 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %29
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureSampleLevel_c32df7
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %34 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %35 = OpFunctionCall %void %textureSampleLevel_c32df7
-         %36 = OpFunctionCall %void %tint_symbol_2 %14
+         %35 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %35
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureSampleLevel_c32df7
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureSampleLevel_c32df7
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSampleLevel_c32df7
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureSampleLevel_c32df7
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.spvasm b/test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.spvasm
index 3c7813d..7a94097 100644
--- a/test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.spvasm
@@ -1,84 +1,82 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 42
 ; 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 %arg_1 "arg_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %textureSampleLevel_c6aca6 "textureSampleLevel_c6aca6"
                OpName %res "res"
-               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 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_1 DescriptorSet 1
                OpDecorate %arg_1 Binding 1
-               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 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
-         %10 = OpTypeSampler
-%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
-      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %14 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_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 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+         %14 = OpTypeSampler
+%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14
+      %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
-         %22 = OpTypeSampledImage %7
+         %22 = OpTypeSampledImage %11
     %v2float = OpTypeVector %float 2
          %25 = OpConstantNull %v2float
     %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %29 = OpTypeFunction %void %v4float
+         %29 = OpTypeFunction %v4float
 %textureSampleLevel_c6aca6 = OpFunction %void None %15
          %18 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %14
-         %20 = OpLoad %10 %arg_1
-         %21 = OpLoad %7 %arg_0
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %20 = OpLoad %14 %arg_1
+         %21 = OpLoad %11 %arg_0
          %23 = OpSampledImage %22 %21 %20
          %19 = OpImageSampleExplicitLod %v4float %23 %25 Lod %float_1
                OpStore %res %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %29
-%tint_symbol = OpFunctionParameter %v4float
-         %32 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %29
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %textureSampleLevel_c6aca6
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %15
          %34 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %35 = OpFunctionCall %void %textureSampleLevel_c6aca6
-         %36 = OpFunctionCall %void %tint_symbol_2 %14
+         %35 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %35
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %15
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %textureSampleLevel_c6aca6
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %textureSampleLevel_c6aca6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureSampleLevel_c6aca6
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %textureSampleLevel_c6aca6
                OpReturn
                OpFunctionEnd
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..0440137 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 5a8e5203..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
diff --git a/test/intrinsics/gen/transpose/2585cd.wgsl.expected.spvasm b/test/intrinsics/gen/transpose/2585cd.wgsl.expected.spvasm
index fc0fd44..b91c1a9 100644
--- a/test/intrinsics/gen/transpose/2585cd.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/transpose/2585cd.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %transpose_2585cd "transpose_2585cd"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %mat3v4float = OpTypeMatrix %v4float 3
@@ -37,7 +36,7 @@
          %17 = OpConstantNull %mat4v3float
 %_ptr_Function_mat3v4float = OpTypePointer Function %mat3v4float
          %20 = OpConstantNull %mat3v4float
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %transpose_2585cd = OpFunction %void None %9
          %12 = OpLabel
@@ -46,26 +45,25 @@
                OpStore %res %13
                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 %transpose_2585cd
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %transpose_2585cd
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %transpose_2585cd
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %transpose_2585cd
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %transpose_2585cd
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %transpose_2585cd
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/transpose/31d679.wgsl.expected.spvasm b/test/intrinsics/gen/transpose/31d679.wgsl.expected.spvasm
index 1ee07f7..c6e3c94 100644
--- a/test/intrinsics/gen/transpose/31d679.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/transpose/31d679.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %transpose_31d679 "transpose_31d679"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
 %mat2v2float = OpTypeMatrix %v2float 2
          %16 = OpConstantNull %mat2v2float
 %_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %transpose_31d679 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %transpose_31d679
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %transpose_31d679
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %transpose_31d679
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %transpose_31d679
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %transpose_31d679
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %transpose_31d679
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/transpose/31e37e.wgsl.expected.spvasm b/test/intrinsics/gen/transpose/31e37e.wgsl.expected.spvasm
index 158422f..3b97b35 100644
--- a/test/intrinsics/gen/transpose/31e37e.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/transpose/31e37e.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %transpose_31e37e "transpose_31e37e"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %mat2v4float = OpTypeMatrix %v4float 2
@@ -37,7 +36,7 @@
          %17 = OpConstantNull %mat4v2float
 %_ptr_Function_mat2v4float = OpTypePointer Function %mat2v4float
          %20 = OpConstantNull %mat2v4float
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %transpose_31e37e = OpFunction %void None %9
          %12 = OpLabel
@@ -46,26 +45,25 @@
                OpStore %res %13
                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 %transpose_31e37e
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %transpose_31e37e
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %transpose_31e37e
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %transpose_31e37e
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %transpose_31e37e
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %transpose_31e37e
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/transpose/4ce359.wgsl.expected.spvasm b/test/intrinsics/gen/transpose/4ce359.wgsl.expected.spvasm
index fdf46e0..4324939 100644
--- a/test/intrinsics/gen/transpose/4ce359.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/transpose/4ce359.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %transpose_4ce359 "transpose_4ce359"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -37,7 +36,7 @@
          %17 = OpConstantNull %mat2v4float
 %_ptr_Function_mat4v2float = OpTypePointer Function %mat4v2float
          %20 = OpConstantNull %mat4v2float
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %transpose_4ce359 = OpFunction %void None %9
          %12 = OpLabel
@@ -46,26 +45,25 @@
                OpStore %res %13
                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 %transpose_4ce359
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %transpose_4ce359
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %transpose_4ce359
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %transpose_4ce359
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %transpose_4ce359
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %transpose_4ce359
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.spvasm b/test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.spvasm
index 6d64c76..a67bcff 100644
--- a/test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %transpose_4dc9a1 "transpose_4dc9a1"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -38,7 +37,7 @@
          %18 = OpConstantNull %mat2v3float
 %_ptr_Function_mat3v2float = OpTypePointer Function %mat3v2float
          %21 = OpConstantNull %mat3v2float
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %transpose_4dc9a1 = OpFunction %void None %9
          %12 = OpLabel
@@ -47,26 +46,25 @@
                OpStore %res %13
                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 %transpose_4dc9a1
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %transpose_4dc9a1
-         %30 = OpFunctionCall %void %tint_symbol_2 %8
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %transpose_4dc9a1
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %transpose_4dc9a1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %transpose_4dc9a1
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %transpose_4dc9a1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/transpose/854336.wgsl.expected.spvasm b/test/intrinsics/gen/transpose/854336.wgsl.expected.spvasm
index b00b2ce..21308c0 100644
--- a/test/intrinsics/gen/transpose/854336.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/transpose/854336.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %transpose_854336 "transpose_854336"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
 %mat3v3float = OpTypeMatrix %v3float 3
          %16 = OpConstantNull %mat3v3float
 %_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %transpose_854336 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %transpose_854336
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %transpose_854336
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %transpose_854336
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %transpose_854336
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %transpose_854336
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %transpose_854336
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/transpose/c1b600.wgsl.expected.spvasm b/test/intrinsics/gen/transpose/c1b600.wgsl.expected.spvasm
index 4608d07..cb8a504 100644
--- a/test/intrinsics/gen/transpose/c1b600.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/transpose/c1b600.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %transpose_c1b600 "transpose_c1b600"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %mat4v4float = OpTypeMatrix %v4float 4
          %15 = OpConstantNull %mat4v4float
 %_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %transpose_c1b600 = OpFunction %void None %9
          %12 = OpLabel
@@ -43,26 +42,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %transpose_c1b600
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %25 = OpFunctionCall %void %transpose_c1b600
-         %26 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %transpose_c1b600
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %transpose_c1b600
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %transpose_c1b600
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %transpose_c1b600
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.spvasm b/test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.spvasm
index 4d2ce13..e28c4ff 100644
--- a/test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %transpose_d8f8ba "transpose_d8f8ba"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -37,7 +36,7 @@
          %17 = OpConstantNull %mat3v4float
 %_ptr_Function_mat4v3float = OpTypePointer Function %mat4v3float
          %20 = OpConstantNull %mat4v3float
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %transpose_d8f8ba = OpFunction %void None %9
          %12 = OpLabel
@@ -46,26 +45,25 @@
                OpStore %res %13
                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 %transpose_d8f8ba
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %transpose_d8f8ba
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %transpose_d8f8ba
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %transpose_d8f8ba
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %transpose_d8f8ba
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %transpose_d8f8ba
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.spvasm b/test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.spvasm
index d6ed5c4..d413d04 100644
--- a/test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.spvasm
@@ -1,34 +1,33 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 36
 ; 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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %transpose_ed4bdc "transpose_ed4bdc"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -38,7 +37,7 @@
          %18 = OpConstantNull %mat3v2float
 %_ptr_Function_mat2v3float = OpTypePointer Function %mat2v3float
          %21 = OpConstantNull %mat2v3float
-         %22 = OpTypeFunction %void %v4float
+         %22 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %transpose_ed4bdc = OpFunction %void None %9
          %12 = OpLabel
@@ -47,26 +46,25 @@
                OpStore %res %13
                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 %transpose_ed4bdc
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %transpose_ed4bdc
-         %30 = OpFunctionCall %void %tint_symbol_2 %8
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %transpose_ed4bdc
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %transpose_ed4bdc
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %transpose_ed4bdc
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %transpose_ed4bdc
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/trunc/562d05.wgsl.expected.spvasm b/test/intrinsics/gen/trunc/562d05.wgsl.expected.spvasm
index adf112b..afd4688 100644
--- a/test/intrinsics/gen/trunc/562d05.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/trunc/562d05.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %trunc_562d05 "trunc_562d05"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
          %16 = OpConstantNull %v3float
 %_ptr_Function_v3float = OpTypePointer Function %v3float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %trunc_562d05 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %trunc_562d05
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %trunc_562d05
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %trunc_562d05
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %trunc_562d05
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %trunc_562d05
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %trunc_562d05
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/trunc/e183aa.wgsl.expected.spvasm b/test/intrinsics/gen/trunc/e183aa.wgsl.expected.spvasm
index fb0d60a..c435014 100644
--- a/test/intrinsics/gen/trunc/e183aa.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/trunc/e183aa.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %trunc_e183aa "trunc_e183aa"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %17 = OpTypeFunction %void %v4float
+         %17 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %trunc_e183aa = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
-         %13 = OpExtInst %v4float %14 Trunc %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
+         %13 = OpExtInst %v4float %14 Trunc %5
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %v4float
-         %20 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %17
+         %19 = OpLabel
+         %20 = OpFunctionCall %void %trunc_e183aa
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %trunc_e183aa
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %23 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %trunc_e183aa
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %trunc_e183aa
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %trunc_e183aa
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %trunc_e183aa
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/trunc/eb83df.wgsl.expected.spvasm b/test/intrinsics/gen/trunc/eb83df.wgsl.expected.spvasm
index f950d5d..2152182 100644
--- a/test/intrinsics/gen/trunc/eb83df.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/trunc/eb83df.wgsl.expected.spvasm
@@ -1,67 +1,65 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %trunc_eb83df "trunc_eb83df"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
-         %18 = OpTypeFunction %void %v4float
+         %18 = OpTypeFunction %v4float
 %trunc_eb83df = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
          %13 = OpExtInst %float %14 Trunc %float_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %v4float
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %18
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %trunc_eb83df
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %23 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %trunc_eb83df
-         %25 = OpFunctionCall %void %tint_symbol_2 %8
+         %24 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %trunc_eb83df
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %trunc_eb83df
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %trunc_eb83df
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %trunc_eb83df
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/trunc/f370d3.wgsl.expected.spvasm b/test/intrinsics/gen/trunc/f370d3.wgsl.expected.spvasm
index 7736f48..f02cd4c 100644
--- a/test/intrinsics/gen/trunc/f370d3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/trunc/f370d3.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %trunc_f370d3 "trunc_f370d3"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
          %16 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %trunc_f370d3 = OpFunction %void None %9
          %12 = OpLabel
@@ -44,26 +43,25 @@
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %trunc_f370d3
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %trunc_f370d3
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %trunc_f370d3
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %trunc_f370d3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %trunc_f370d3
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %trunc_f370d3
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.spvasm b/test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.spvasm
index f094822..93ec857 100644
--- a/test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.spvasm
@@ -1,35 +1,34 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %unpack2x16float_32a5cf "unpack2x16float_32a5cf"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -37,7 +36,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %20 = OpConstantNull %v2float
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %unpack2x16float_32a5cf = OpFunction %void None %9
          %12 = OpLabel
@@ -46,26 +45,25 @@
                OpStore %res %13
                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 %unpack2x16float_32a5cf
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %unpack2x16float_32a5cf
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %unpack2x16float_32a5cf
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %unpack2x16float_32a5cf
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %unpack2x16float_32a5cf
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %unpack2x16float_32a5cf
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.spvasm b/test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.spvasm
index 9dcabf8..74d879c 100644
--- a/test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.spvasm
@@ -1,35 +1,34 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %unpack2x16snorm_b4aea6 "unpack2x16snorm_b4aea6"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -37,7 +36,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %20 = OpConstantNull %v2float
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %unpack2x16snorm_b4aea6 = OpFunction %void None %9
          %12 = OpLabel
@@ -46,26 +45,25 @@
                OpStore %res %13
                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 %unpack2x16snorm_b4aea6
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %unpack2x16snorm_b4aea6
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %unpack2x16snorm_b4aea6
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %unpack2x16snorm_b4aea6
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %unpack2x16snorm_b4aea6
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %unpack2x16snorm_b4aea6
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.spvasm b/test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.spvasm
index e36eed5..17378db 100644
--- a/test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.spvasm
@@ -1,35 +1,34 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
          %15 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %unpack2x16unorm_7699c0 "unpack2x16unorm_7699c0"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -37,7 +36,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %20 = OpConstantNull %v2float
-         %21 = OpTypeFunction %void %v4float
+         %21 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %unpack2x16unorm_7699c0 = OpFunction %void None %9
          %12 = OpLabel
@@ -46,26 +45,25 @@
                OpStore %res %13
                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 %unpack2x16unorm_7699c0
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %unpack2x16unorm_7699c0
-         %29 = OpFunctionCall %void %tint_symbol_2 %8
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %unpack2x16unorm_7699c0
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %unpack2x16unorm_7699c0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %unpack2x16unorm_7699c0
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %unpack2x16unorm_7699c0
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.spvasm b/test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.spvasm
index 1b26065..d8e904a 100644
--- a/test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.spvasm
@@ -1,69 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %unpack4x8snorm_523fb3 "unpack4x8snorm_523fb3"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %unpack4x8snorm_523fb3 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
          %13 = OpExtInst %v4float %14 UnpackSnorm4x8 %uint_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %unpack4x8snorm_523fb3
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %unpack4x8snorm_523fb3
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %unpack4x8snorm_523fb3
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %unpack4x8snorm_523fb3
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %unpack4x8snorm_523fb3
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %unpack4x8snorm_523fb3
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.spvasm b/test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.spvasm
index c61f7da..d251b3b 100644
--- a/test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.spvasm
+++ b/test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.spvasm
@@ -1,69 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
          %14 = OpExtInstImport "GLSL.std.450"
                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 %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %unpack4x8unorm_750c74 "unpack4x8unorm_750c74"
                OpName %res "res"
-               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 %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
-         %19 = OpTypeFunction %void %v4float
+         %19 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %unpack4x8unorm_750c74 = OpFunction %void None %9
          %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %8
+        %res = OpVariable %_ptr_Function_v4float Function %5
          %13 = OpExtInst %v4float %14 UnpackUnorm4x8 %uint_1
                OpStore %res %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %v4float
-         %22 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %unpack4x8unorm_750c74
+               OpReturnValue %5
                OpFunctionEnd
 %vertex_main = OpFunction %void None %9
          %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %unpack4x8unorm_750c74
-         %27 = OpFunctionCall %void %tint_symbol_2 %8
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %unpack4x8unorm_750c74
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %unpack4x8unorm_750c74
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %unpack4x8unorm_750c74
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %unpack4x8unorm_750c74
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/textureDimensions/depth_ms.spvasm.expected.spvasm b/test/intrinsics/textureDimensions/depth_ms.spvasm.expected.spvasm
index 9f80aa2..3e9f5e3 100644
--- a/test/intrinsics/textureDimensions/depth_ms.spvasm.expected.spvasm
+++ b/test/intrinsics/textureDimensions/depth_ms.spvasm.expected.spvasm
@@ -1,20 +1,20 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 63
+; Bound: 62
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_4
+               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_symbol_1_1_1 %vertex_point_size
                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 %tint_symbol_1_1_1 "tint_symbol_1_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
                OpName %textureDimensions_f60bdb "textureDimensions_f60bdb"
                OpName %res "res"
                OpName %tint_symbol_2 "tint_symbol_2"
@@ -22,33 +22,32 @@
                OpName %vertex_main_1 "vertex_main_1"
                OpName %vertex_main_out "vertex_main_out"
                OpMemberName %vertex_main_out 0 "tint_symbol_1_1"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_3 "tint_symbol_3"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main_1 "fragment_main_1"
                OpName %fragment_main "fragment_main"
                OpName %compute_main_1 "compute_main_1"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %tint_symbol_1_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_4 BuiltIn Position
                OpMemberDecorate %vertex_main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 2D 1 0 1 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
-    %float_0 = OpConstant %float 0
-         %10 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-%tint_symbol_1 = OpVariable %_ptr_Private_v4float Private %10
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %15 = OpConstantNull %v4float
-%tint_symbol_4 = OpVariable %_ptr_Output_v4float Output %15
+          %5 = OpConstantNull %v4float
+%tint_symbol_1_1_1 = OpVariable %_ptr_Output_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 1 0 1 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+    %float_0 = OpConstant %float 0
+         %13 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%tint_symbol_1 = OpVariable %_ptr_Private_v4float Private %13
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -59,13 +58,13 @@
          %26 = OpConstantNull %v2int
          %30 = OpTypeFunction %void %v4float
 %vertex_main_out = OpTypeStruct %v4float
-         %38 = OpTypeFunction %void %vertex_main_out
+         %38 = OpTypeFunction %vertex_main_out
     %float_1 = OpConstant %float 1
 %textureDimensions_f60bdb = OpFunction %void None %16
          %19 = OpLabel
         %res = OpVariable %_ptr_Function_v2int Function %26
                OpStore %res %23
-         %29 = OpLoad %7 %arg_0
+         %29 = OpLoad %11 %arg_0
          %28 = OpImageQuerySize %v2int %29
                OpStore %res %28
                OpReturn
@@ -79,42 +78,41 @@
 %vertex_main_1 = OpFunction %void None %16
          %35 = OpLabel
          %36 = OpFunctionCall %void %textureDimensions_f60bdb
-         %37 = OpFunctionCall %void %tint_symbol_2 %10
+         %37 = OpFunctionCall %void %tint_symbol_2 %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_5 = OpFunction %void None %38
-%tint_symbol_3 = OpFunctionParameter %vertex_main_out
-         %42 = OpLabel
-         %43 = OpCompositeExtract %v4float %tint_symbol_3 0
-               OpStore %tint_symbol_4 %43
-               OpReturn
+%vertex_main_inner = OpFunction %vertex_main_out None %38
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %vertex_main_1
+         %43 = OpLoad %v4float %tint_symbol_1
+         %44 = OpCompositeConstruct %vertex_main_out %43
+               OpReturnValue %44
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %45 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %47 = OpFunctionCall %void %vertex_main_1
-         %49 = OpLoad %v4float %tint_symbol_1
-         %50 = OpCompositeConstruct %vertex_main_out %49
-         %48 = OpFunctionCall %void %tint_symbol_5 %50
+         %46 = OpLabel
+         %47 = OpFunctionCall %vertex_main_out %vertex_main_inner
+         %48 = OpCompositeExtract %v4float %47 0
+               OpStore %tint_symbol_1_1_1 %48
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main_1 = OpFunction %void None %16
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %textureDimensions_f60bdb
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %textureDimensions_f60bdb
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %fragment_main_1
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %fragment_main_1
                OpReturn
                OpFunctionEnd
 %compute_main_1 = OpFunction %void None %16
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %textureDimensions_f60bdb
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %textureDimensions_f60bdb
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %61 = OpLabel
-         %62 = OpFunctionCall %void %compute_main_1
+         %60 = OpLabel
+         %61 = OpFunctionCall %void %compute_main_1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/textureLoad/depth_ms.spvasm.expected.spvasm b/test/intrinsics/textureLoad/depth_ms.spvasm.expected.spvasm
index 4a5da4d..94ddf71 100644
--- a/test/intrinsics/textureLoad/depth_ms.spvasm.expected.spvasm
+++ b/test/intrinsics/textureLoad/depth_ms.spvasm.expected.spvasm
@@ -1,19 +1,19 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 65
+; Bound: 64
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_4
+               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_symbol_1_1_1 %vertex_point_size
                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 %tint_symbol_1_1_1 "tint_symbol_1_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
                OpName %textureLoad_6273b1 "textureLoad_6273b1"
                OpName %res "res"
                OpName %tint_symbol_2 "tint_symbol_2"
@@ -21,33 +21,32 @@
                OpName %vertex_main_1 "vertex_main_1"
                OpName %vertex_main_out "vertex_main_out"
                OpMemberName %vertex_main_out 0 "tint_symbol_1_1"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_3 "tint_symbol_3"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main_1 "fragment_main_1"
                OpName %fragment_main "fragment_main"
                OpName %compute_main_1 "compute_main_1"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %tint_symbol_1_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_4 BuiltIn Position
                OpMemberDecorate %vertex_main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 2D 1 0 1 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
-    %float_0 = OpConstant %float 0
-         %10 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-%tint_symbol_1 = OpVariable %_ptr_Private_v4float Private %10
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %15 = OpConstantNull %v4float
-%tint_symbol_4 = OpVariable %_ptr_Output_v4float Output %15
+          %5 = OpConstantNull %v4float
+%tint_symbol_1_1_1 = OpVariable %_ptr_Output_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 1 0 1 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+    %float_0 = OpConstant %float 0
+         %13 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%tint_symbol_1 = OpVariable %_ptr_Private_v4float Private %13
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -58,13 +57,13 @@
       %int_1 = OpConstant %int 1
          %32 = OpTypeFunction %void %v4float
 %vertex_main_out = OpTypeStruct %v4float
-         %40 = OpTypeFunction %void %vertex_main_out
+         %40 = OpTypeFunction %vertex_main_out
     %float_1 = OpConstant %float 1
 %textureLoad_6273b1 = OpFunction %void None %16
          %19 = OpLabel
-        %res = OpVariable %_ptr_Function_float Function %4
+        %res = OpVariable %_ptr_Function_float Function %8
                OpStore %res %float_0
-         %24 = OpLoad %7 %arg_0
+         %24 = OpLoad %11 %arg_0
          %23 = OpImageFetch %v4float %24 %28 Sample %int_1
          %22 = OpCompositeExtract %float %23 0
          %30 = OpCompositeConstruct %v4float %22 %float_0 %float_0 %float_0
@@ -81,42 +80,41 @@
 %vertex_main_1 = OpFunction %void None %16
          %37 = OpLabel
          %38 = OpFunctionCall %void %textureLoad_6273b1
-         %39 = OpFunctionCall %void %tint_symbol_2 %10
+         %39 = OpFunctionCall %void %tint_symbol_2 %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_5 = OpFunction %void None %40
-%tint_symbol_3 = OpFunctionParameter %vertex_main_out
-         %44 = OpLabel
-         %45 = OpCompositeExtract %v4float %tint_symbol_3 0
-               OpStore %tint_symbol_4 %45
-               OpReturn
+%vertex_main_inner = OpFunction %vertex_main_out None %40
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %vertex_main_1
+         %45 = OpLoad %v4float %tint_symbol_1
+         %46 = OpCompositeConstruct %vertex_main_out %45
+               OpReturnValue %46
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %47 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %49 = OpFunctionCall %void %vertex_main_1
-         %51 = OpLoad %v4float %tint_symbol_1
-         %52 = OpCompositeConstruct %vertex_main_out %51
-         %50 = OpFunctionCall %void %tint_symbol_5 %52
+         %48 = OpLabel
+         %49 = OpFunctionCall %vertex_main_out %vertex_main_inner
+         %50 = OpCompositeExtract %v4float %49 0
+               OpStore %tint_symbol_1_1_1 %50
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main_1 = OpFunction %void None %16
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %textureLoad_6273b1
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %textureLoad_6273b1
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %fragment_main_1
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %fragment_main_1
                OpReturn
                OpFunctionEnd
 %compute_main_1 = OpFunction %void None %16
-         %60 = OpLabel
-         %61 = OpFunctionCall %void %textureLoad_6273b1
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %textureLoad_6273b1
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %63 = OpLabel
-         %64 = OpFunctionCall %void %compute_main_1
+         %62 = OpLabel
+         %63 = OpFunctionCall %void %compute_main_1
                OpReturn
                OpFunctionEnd
diff --git a/test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.spvasm b/test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.spvasm
index 5cda796..14bc9db 100644
--- a/test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.spvasm
+++ b/test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.spvasm
@@ -1,20 +1,20 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 60
+; Bound: 59
 ; Schema: 0
                OpCapability Shader
                OpCapability ImageQuery
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_4
+               OpEntryPoint Vertex %vertex_main "vertex_main" %tint_symbol_1_1_1 %vertex_point_size
                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 %tint_symbol_1_1_1 "tint_symbol_1_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
                OpName %textureNumSamples_a3c8a0 "textureNumSamples_a3c8a0"
                OpName %res "res"
                OpName %tint_symbol_2 "tint_symbol_2"
@@ -22,33 +22,32 @@
                OpName %vertex_main_1 "vertex_main_1"
                OpName %vertex_main_out "vertex_main_out"
                OpMemberName %vertex_main_out 0 "tint_symbol_1_1"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_3 "tint_symbol_3"
+               OpName %vertex_main_inner "vertex_main_inner"
                OpName %vertex_main "vertex_main"
                OpName %fragment_main_1 "fragment_main_1"
                OpName %fragment_main "fragment_main"
                OpName %compute_main_1 "compute_main_1"
                OpName %compute_main "compute_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %tint_symbol_1_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
-               OpDecorate %tint_symbol_4 BuiltIn Position
                OpMemberDecorate %vertex_main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-          %7 = OpTypeImage %float 2D 1 0 1 1 Unknown
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
-    %float_0 = OpConstant %float 0
-         %10 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-%tint_symbol_1 = OpVariable %_ptr_Private_v4float Private %10
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %15 = OpConstantNull %v4float
-%tint_symbol_4 = OpVariable %_ptr_Output_v4float Output %15
+          %5 = OpConstantNull %v4float
+%tint_symbol_1_1_1 = OpVariable %_ptr_Output_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 1 0 1 1 Unknown
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
+    %float_0 = OpConstant %float 0
+         %13 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%tint_symbol_1 = OpVariable %_ptr_Private_v4float Private %13
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -57,13 +56,13 @@
          %24 = OpConstantNull %int
          %27 = OpTypeFunction %void %v4float
 %vertex_main_out = OpTypeStruct %v4float
-         %35 = OpTypeFunction %void %vertex_main_out
+         %35 = OpTypeFunction %vertex_main_out
     %float_1 = OpConstant %float 1
 %textureNumSamples_a3c8a0 = OpFunction %void None %16
          %19 = OpLabel
         %res = OpVariable %_ptr_Function_int Function %24
                OpStore %res %int_0
-         %26 = OpLoad %7 %arg_0
+         %26 = OpLoad %11 %arg_0
          %25 = OpImageQuerySamples %int %26
                OpStore %res %25
                OpReturn
@@ -77,42 +76,41 @@
 %vertex_main_1 = OpFunction %void None %16
          %32 = OpLabel
          %33 = OpFunctionCall %void %textureNumSamples_a3c8a0
-         %34 = OpFunctionCall %void %tint_symbol_2 %10
+         %34 = OpFunctionCall %void %tint_symbol_2 %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_5 = OpFunction %void None %35
-%tint_symbol_3 = OpFunctionParameter %vertex_main_out
-         %39 = OpLabel
-         %40 = OpCompositeExtract %v4float %tint_symbol_3 0
-               OpStore %tint_symbol_4 %40
-               OpReturn
+%vertex_main_inner = OpFunction %vertex_main_out None %35
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %vertex_main_1
+         %40 = OpLoad %v4float %tint_symbol_1
+         %41 = OpCompositeConstruct %vertex_main_out %40
+               OpReturnValue %41
                OpFunctionEnd
 %vertex_main = OpFunction %void None %16
-         %42 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %44 = OpFunctionCall %void %vertex_main_1
-         %46 = OpLoad %v4float %tint_symbol_1
-         %47 = OpCompositeConstruct %vertex_main_out %46
-         %45 = OpFunctionCall %void %tint_symbol_5 %47
+         %43 = OpLabel
+         %44 = OpFunctionCall %vertex_main_out %vertex_main_inner
+         %45 = OpCompositeExtract %v4float %44 0
+               OpStore %tint_symbol_1_1_1 %45
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %fragment_main_1 = OpFunction %void None %16
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %textureNumSamples_a3c8a0
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %textureNumSamples_a3c8a0
                OpReturn
                OpFunctionEnd
 %fragment_main = OpFunction %void None %16
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %fragment_main_1
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %fragment_main_1
                OpReturn
                OpFunctionEnd
 %compute_main_1 = OpFunction %void None %16
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %textureNumSamples_a3c8a0
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %textureNumSamples_a3c8a0
                OpReturn
                OpFunctionEnd
 %compute_main = OpFunction %void None %16
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %compute_main_1
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %compute_main_1
                OpReturn
                OpFunctionEnd
diff --git a/test/ptr_ref/load/local/ptr_workgroup.wgsl.expected.spvasm b/test/ptr_ref/load/local/ptr_workgroup.wgsl.expected.spvasm
index 16569a9..35e8457 100644
--- a/test/ptr_ref/load/local/ptr_workgroup.wgsl.expected.spvasm
+++ b/test/ptr_ref/load/local/ptr_workgroup.wgsl.expected.spvasm
@@ -1,35 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 19
+; Bound: 25
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main"
+               OpEntryPoint GLCompute %main "main" %local_invocation_index_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %i "i"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
 %_ptr_Workgroup_int = OpTypePointer Workgroup %int
           %i = OpVariable %_ptr_Workgroup_int Workgroup
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
-          %7 = OpTypeFunction %void
-         %11 = OpConstantNull %int
+          %7 = OpTypeFunction %void %uint
+         %12 = OpConstantNull %int
      %uint_2 = OpConstant %uint 2
    %uint_264 = OpConstant %uint 264
     %int_123 = OpConstant %int 123
       %int_1 = OpConstant %int 1
-       %main = OpFunction %void None %7
-         %10 = OpLabel
-               OpStore %i %11
+         %20 = OpTypeFunction %void
+ %main_inner = OpFunction %void None %7
+%local_invocation_index = OpFunctionParameter %uint
+         %11 = OpLabel
+               OpStore %i %12
                OpControlBarrier %uint_2 %uint_2 %uint_264
                OpStore %i %int_123
-         %16 = OpLoad %int %i
-         %18 = OpIAdd %int %16 %int_1
+         %17 = OpLoad %int %i
+         %19 = OpIAdd %int %17 %int_1
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %20
+         %22 = OpLabel
+         %24 = OpLoad %uint %local_invocation_index_1
+         %23 = OpFunctionCall %void %main_inner %24
                OpReturn
                OpFunctionEnd
diff --git a/test/samples/compute_boids.wgsl.expected.spvasm b/test/samples/compute_boids.wgsl.expected.spvasm
index 0ff734e..e6305a7 100644
--- a/test/samples/compute_boids.wgsl.expected.spvasm
+++ b/test/samples/compute_boids.wgsl.expected.spvasm
@@ -1,22 +1,23 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 279
+; Bound: 280
 ; Schema: 0
                OpCapability Shader
-         %40 = OpExtInstImport "GLSL.std.450"
+         %37 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vert_main "vert_main" %tint_pointsize %tint_symbol_1 %tint_symbol_2 %tint_symbol %tint_symbol_4
-               OpEntryPoint Fragment %frag_main "frag_main" %tint_symbol_7
-               OpEntryPoint GLCompute %comp_main "comp_main" %tint_symbol_9
+               OpEntryPoint Vertex %vert_main "vert_main" %a_particlePos_1 %a_particleVel_1 %a_pos_1 %value %vertex_point_size
+               OpEntryPoint Fragment %frag_main "frag_main" %value_1
+               OpEntryPoint GLCompute %comp_main "comp_main" %gl_GlobalInvocationID_1
                OpExecutionMode %frag_main OriginUpperLeft
                OpExecutionMode %comp_main LocalSize 1 1 1
-               OpName %tint_pointsize "tint_pointsize"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_7 "tint_symbol_7"
+               OpName %a_particlePos_1 "a_particlePos_1"
+               OpName %a_particleVel_1 "a_particleVel_1"
+               OpName %a_pos_1 "a_pos_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %value_1 "value_1"
+               OpName %gl_GlobalInvocationID_1 "gl_GlobalInvocationID_1"
                OpName %SimParams "SimParams"
                OpMemberName %SimParams 0 "deltaT"
                OpMemberName %SimParams 1 "rule1Distance"
@@ -33,16 +34,17 @@
                OpMemberName %Particle 1 "vel"
                OpName %particlesA "particlesA"
                OpName %particlesB "particlesB"
-               OpName %tint_symbol_9 "tint_symbol_9"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %vert_main "vert_main"
+               OpName %vert_main_inner "vert_main_inner"
+               OpName %a_particlePos "a_particlePos"
+               OpName %a_particleVel "a_particleVel"
+               OpName %a_pos "a_pos"
                OpName %angle "angle"
                OpName %pos "pos"
-               OpName %tint_symbol_8 "tint_symbol_8"
-               OpName %tint_symbol_6 "tint_symbol_6"
+               OpName %vert_main "vert_main"
+               OpName %frag_main_inner "frag_main_inner"
                OpName %frag_main "frag_main"
-               OpName %comp_main "comp_main"
+               OpName %comp_main_inner "comp_main_inner"
+               OpName %gl_GlobalInvocationID "gl_GlobalInvocationID"
                OpName %index "index"
                OpName %vPos "vPos"
                OpName %vVel "vVel"
@@ -54,12 +56,14 @@
                OpName %pos_0 "pos"
                OpName %vel "vel"
                OpName %i "i"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_1 Location 1
-               OpDecorate %tint_symbol_2 Location 2
-               OpDecorate %tint_symbol_4 BuiltIn Position
-               OpDecorate %tint_symbol_7 Location 0
+               OpName %comp_main "comp_main"
+               OpDecorate %a_particlePos_1 Location 0
+               OpDecorate %a_particleVel_1 Location 1
+               OpDecorate %a_pos_1 Location 2
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %value_1 Location 0
+               OpDecorate %gl_GlobalInvocationID_1 BuiltIn GlobalInvocationId
                OpDecorate %SimParams Block
                OpMemberDecorate %SimParams 0 Offset 0
                OpMemberDecorate %SimParams 1 Offset 4
@@ -80,57 +84,56 @@
                OpDecorate %particlesA DescriptorSet 0
                OpDecorate %particlesB Binding 2
                OpDecorate %particlesB DescriptorSet 0
-               OpDecorate %tint_symbol_9 BuiltIn GlobalInvocationId
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v2float = OpTypeVector %float 2
 %_ptr_Input_v2float = OpTypePointer Input %v2float
-%tint_symbol = OpVariable %_ptr_Input_v2float Input
-%tint_symbol_1 = OpVariable %_ptr_Input_v2float Input
-%tint_symbol_2 = OpVariable %_ptr_Input_v2float Input
+%a_particlePos_1 = OpVariable %_ptr_Input_v2float Input
+%a_particleVel_1 = OpVariable %_ptr_Input_v2float Input
+    %a_pos_1 = OpVariable %_ptr_Input_v2float Input
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %13 = OpConstantNull %v4float
-%tint_symbol_4 = OpVariable %_ptr_Output_v4float Output %13
-%tint_symbol_7 = OpVariable %_ptr_Output_v4float Output %13
+         %10 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %10
+%_ptr_Output_float = OpTypePointer Output %float
+         %13 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %13
+    %value_1 = OpVariable %_ptr_Output_v4float Output %10
+       %uint = OpTypeInt 32 0
+     %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%gl_GlobalInvocationID_1 = OpVariable %_ptr_Input_v3uint Input
   %SimParams = OpTypeStruct %float %float %float %float %float %float %float
 %_ptr_Uniform_SimParams = OpTypePointer Uniform %SimParams
      %params = OpVariable %_ptr_Uniform_SimParams Uniform
    %Particle = OpTypeStruct %v2float %v2float
-       %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
 %_arr_Particle_uint_5 = OpTypeArray %Particle %uint_5
   %Particles = OpTypeStruct %_arr_Particle_uint_5
 %_ptr_StorageBuffer_Particles = OpTypePointer StorageBuffer %Particles
  %particlesA = OpVariable %_ptr_StorageBuffer_Particles StorageBuffer
  %particlesB = OpVariable %_ptr_StorageBuffer_Particles StorageBuffer
-     %v3uint = OpTypeVector %uint 3
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol_9 = OpVariable %_ptr_Input_v3uint Input
-       %void = OpTypeVoid
-         %29 = OpTypeFunction %void %v4float
-         %34 = OpTypeFunction %void
-    %float_1 = OpConstant %float 1
-     %uint_0 = OpConstant %uint 0
-%_ptr_Input_float = OpTypePointer Input %float
-     %uint_1 = OpConstant %uint 1
+         %29 = OpTypeFunction %v4float %v2float %v2float %v2float
 %_ptr_Function_float = OpTypePointer Function %float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %75 = OpConstantNull %v2float
+         %63 = OpConstantNull %v2float
     %float_0 = OpConstant %float 0
-         %90 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-%_ptr_Input_uint = OpTypePointer Input %uint
+    %float_1 = OpConstant %float 1
+       %void = OpTypeVoid
+         %71 = OpTypeFunction %void
+         %79 = OpTypeFunction %v4float
+         %82 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+         %86 = OpTypeFunction %void %v3uint
 %_ptr_Function_uint = OpTypePointer Function %uint
-         %98 = OpConstantNull %uint
+         %93 = OpConstantNull %uint
        %bool = OpTypeBool
+     %uint_0 = OpConstant %uint 0
 %_ptr_StorageBuffer_v2float = OpTypePointer StorageBuffer %v2float
-        %113 = OpConstantComposite %v2float %float_0 %float_0
+     %uint_1 = OpConstant %uint 1
+        %110 = OpConstantComposite %v2float %float_0 %float_0
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Function_int = OpTypePointer Function %int
-        %121 = OpConstantNull %int
+        %118 = OpConstantNull %int
 %_ptr_Uniform_float = OpTypePointer Uniform %float
       %int_1 = OpConstant %int 1
      %uint_2 = OpConstant %uint 2
@@ -139,306 +142,309 @@
      %uint_6 = OpConstant %uint 6
 %float_0_100000001 = OpConstant %float 0.100000001
    %float_n1 = OpConstant %float -1
-%tint_symbol_5 = OpFunction %void None %29
-%tint_symbol_3 = OpFunctionParameter %v4float
-         %33 = OpLabel
-               OpStore %tint_symbol_4 %tint_symbol_3
-               OpReturn
-               OpFunctionEnd
-  %vert_main = OpFunction %void None %34
-         %36 = OpLabel
-      %angle = OpVariable %_ptr_Function_float Function %4
-        %pos = OpVariable %_ptr_Function_v2float Function %75
-               OpStore %tint_pointsize %float_1
-         %43 = OpAccessChain %_ptr_Input_float %tint_symbol_1 %uint_0
-         %44 = OpLoad %float %43
-         %46 = OpAccessChain %_ptr_Input_float %tint_symbol_1 %uint_1
-         %47 = OpLoad %float %46
-         %39 = OpExtInst %float %40 Atan2 %44 %47
-         %38 = OpFNegate %float %39
-               OpStore %angle %38
-         %50 = OpAccessChain %_ptr_Input_float %tint_symbol_2 %uint_0
-         %51 = OpLoad %float %50
+%vert_main_inner = OpFunction %v4float None %29
+%a_particlePos = OpFunctionParameter %v2float
+%a_particleVel = OpFunctionParameter %v2float
+      %a_pos = OpFunctionParameter %v2float
+         %34 = OpLabel
+      %angle = OpVariable %_ptr_Function_float Function %13
+        %pos = OpVariable %_ptr_Function_v2float Function %63
+         %38 = OpCompositeExtract %float %a_particleVel 0
+         %39 = OpCompositeExtract %float %a_particleVel 1
+         %36 = OpExtInst %float %37 Atan2 %38 %39
+         %35 = OpFNegate %float %36
+               OpStore %angle %35
+         %42 = OpCompositeExtract %float %a_pos 0
+         %44 = OpLoad %float %angle
+         %43 = OpExtInst %float %37 Cos %44
+         %45 = OpFMul %float %42 %43
+         %46 = OpCompositeExtract %float %a_pos 1
+         %48 = OpLoad %float %angle
+         %47 = OpExtInst %float %37 Sin %48
+         %49 = OpFMul %float %46 %47
+         %50 = OpFSub %float %45 %49
+         %51 = OpCompositeExtract %float %a_pos 0
          %53 = OpLoad %float %angle
-         %52 = OpExtInst %float %40 Cos %53
+         %52 = OpExtInst %float %37 Sin %53
          %54 = OpFMul %float %51 %52
-         %55 = OpAccessChain %_ptr_Input_float %tint_symbol_2 %uint_1
-         %56 = OpLoad %float %55
-         %58 = OpLoad %float %angle
-         %57 = OpExtInst %float %40 Sin %58
-         %59 = OpFMul %float %56 %57
-         %60 = OpFSub %float %54 %59
-         %61 = OpAccessChain %_ptr_Input_float %tint_symbol_2 %uint_0
-         %62 = OpLoad %float %61
-         %64 = OpLoad %float %angle
-         %63 = OpExtInst %float %40 Sin %64
-         %65 = OpFMul %float %62 %63
-         %66 = OpAccessChain %_ptr_Input_float %tint_symbol_2 %uint_1
-         %67 = OpLoad %float %66
-         %69 = OpLoad %float %angle
-         %68 = OpExtInst %float %40 Cos %69
-         %70 = OpFMul %float %67 %68
-         %71 = OpFAdd %float %65 %70
-         %72 = OpCompositeConstruct %v2float %60 %71
-               OpStore %pos %72
-         %77 = OpLoad %v2float %pos
-         %78 = OpLoad %v2float %tint_symbol
-         %79 = OpFAdd %v2float %77 %78
-         %80 = OpCompositeExtract %float %79 0
-         %81 = OpCompositeExtract %float %79 1
-         %83 = OpCompositeConstruct %v4float %80 %81 %float_0 %float_1
-         %76 = OpFunctionCall %void %tint_symbol_5 %83
+         %55 = OpCompositeExtract %float %a_pos 1
+         %57 = OpLoad %float %angle
+         %56 = OpExtInst %float %37 Cos %57
+         %58 = OpFMul %float %55 %56
+         %59 = OpFAdd %float %54 %58
+         %60 = OpCompositeConstruct %v2float %50 %59
+               OpStore %pos %60
+         %64 = OpLoad %v2float %pos
+         %65 = OpFAdd %v2float %64 %a_particlePos
+         %66 = OpCompositeExtract %float %65 0
+         %67 = OpCompositeExtract %float %65 1
+         %70 = OpCompositeConstruct %v4float %66 %67 %float_0 %float_1
+               OpReturnValue %70
+               OpFunctionEnd
+  %vert_main = OpFunction %void None %71
+         %74 = OpLabel
+         %76 = OpLoad %v2float %a_particlePos_1
+         %77 = OpLoad %v2float %a_particleVel_1
+         %78 = OpLoad %v2float %a_pos_1
+         %75 = OpFunctionCall %v4float %vert_main_inner %76 %77 %78
+               OpStore %value %75
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
-%tint_symbol_8 = OpFunction %void None %29
-%tint_symbol_6 = OpFunctionParameter %v4float
-         %86 = OpLabel
-               OpStore %tint_symbol_7 %tint_symbol_6
+%frag_main_inner = OpFunction %v4float None %79
+         %81 = OpLabel
+               OpReturnValue %82
+               OpFunctionEnd
+  %frag_main = OpFunction %void None %71
+         %84 = OpLabel
+         %85 = OpFunctionCall %v4float %frag_main_inner
+               OpStore %value_1 %85
                OpReturn
                OpFunctionEnd
-  %frag_main = OpFunction %void None %34
-         %88 = OpLabel
-         %89 = OpFunctionCall %void %tint_symbol_8 %90
+%comp_main_inner = OpFunction %void None %86
+%gl_GlobalInvocationID = OpFunctionParameter %v3uint
+         %89 = OpLabel
+      %index = OpVariable %_ptr_Function_uint Function %93
+       %vPos = OpVariable %_ptr_Function_v2float Function %63
+       %vVel = OpVariable %_ptr_Function_v2float Function %63
+      %cMass = OpVariable %_ptr_Function_v2float Function %63
+       %cVel = OpVariable %_ptr_Function_v2float Function %63
+     %colVel = OpVariable %_ptr_Function_v2float Function %63
+ %cMassCount = OpVariable %_ptr_Function_int Function %118
+  %cVelCount = OpVariable %_ptr_Function_int Function %118
+      %pos_0 = OpVariable %_ptr_Function_v2float Function %63
+        %vel = OpVariable %_ptr_Function_v2float Function %63
+          %i = OpVariable %_ptr_Function_uint Function %93
+         %90 = OpCompositeExtract %uint %gl_GlobalInvocationID 0
+               OpStore %index %90
+         %94 = OpLoad %uint %index
+         %95 = OpUGreaterThanEqual %bool %94 %uint_5
+               OpSelectionMerge %97 None
+               OpBranchConditional %95 %98 %97
+         %98 = OpLabel
                OpReturn
-               OpFunctionEnd
-  %comp_main = OpFunction %void None %34
-         %92 = OpLabel
-      %index = OpVariable %_ptr_Function_uint Function %98
-       %vPos = OpVariable %_ptr_Function_v2float Function %75
-       %vVel = OpVariable %_ptr_Function_v2float Function %75
-      %cMass = OpVariable %_ptr_Function_v2float Function %75
-       %cVel = OpVariable %_ptr_Function_v2float Function %75
-     %colVel = OpVariable %_ptr_Function_v2float Function %75
- %cMassCount = OpVariable %_ptr_Function_int Function %121
-  %cVelCount = OpVariable %_ptr_Function_int Function %121
-      %pos_0 = OpVariable %_ptr_Function_v2float Function %75
-        %vel = OpVariable %_ptr_Function_v2float Function %75
-          %i = OpVariable %_ptr_Function_uint Function %98
-         %94 = OpAccessChain %_ptr_Input_uint %tint_symbol_9 %uint_0
-         %95 = OpLoad %uint %94
-               OpStore %index %95
-         %99 = OpLoad %uint %index
-        %100 = OpUGreaterThanEqual %bool %99 %uint_5
-               OpSelectionMerge %102 None
-               OpBranchConditional %100 %103 %102
-        %103 = OpLabel
-               OpReturn
-        %102 = OpLabel
-        %104 = OpLoad %uint %index
-        %106 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesA %uint_0 %104 %uint_0
-        %107 = OpLoad %v2float %106
-               OpStore %vPos %107
-        %109 = OpLoad %uint %index
-        %110 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesA %uint_0 %109 %uint_1
-        %111 = OpLoad %v2float %110
-               OpStore %vVel %111
-               OpStore %cMass %113
-               OpStore %cVel %113
-               OpStore %colVel %113
+         %97 = OpLabel
+        %100 = OpLoad %uint %index
+        %102 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesA %uint_0 %100 %uint_0
+        %103 = OpLoad %v2float %102
+               OpStore %vPos %103
+        %105 = OpLoad %uint %index
+        %107 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesA %uint_0 %105 %uint_1
+        %108 = OpLoad %v2float %107
+               OpStore %vVel %108
+               OpStore %cMass %110
+               OpStore %cVel %110
+               OpStore %colVel %110
                OpStore %cMassCount %int_0
                OpStore %cVelCount %int_0
                OpStore %i %uint_0
+               OpBranch %123
+        %123 = OpLabel
+               OpLoopMerge %124 %125 None
                OpBranch %126
         %126 = OpLabel
-               OpLoopMerge %127 %128 None
-               OpBranch %129
-        %129 = OpLabel
-        %131 = OpLoad %uint %i
-        %132 = OpULessThan %bool %131 %uint_5
-        %130 = OpLogicalNot %bool %132
-               OpSelectionMerge %133 None
-               OpBranchConditional %130 %134 %133
-        %134 = OpLabel
-               OpBranch %127
-        %133 = OpLabel
-        %135 = OpLoad %uint %i
-        %136 = OpLoad %uint %index
-        %137 = OpIEqual %bool %135 %136
-               OpSelectionMerge %138 None
-               OpBranchConditional %137 %139 %138
-        %139 = OpLabel
-               OpBranch %128
-        %138 = OpLabel
-        %140 = OpLoad %uint %i
-        %141 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesA %uint_0 %140 %uint_0
-        %142 = OpLoad %v2float %141
-        %143 = OpVectorShuffle %v2float %142 %142 0 1
-               OpStore %pos_0 %143
-        %144 = OpLoad %uint %i
-        %145 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesA %uint_0 %144 %uint_1
-        %146 = OpLoad %v2float %145
-        %147 = OpVectorShuffle %v2float %146 %146 0 1
-               OpStore %vel %147
-        %149 = OpLoad %v2float %pos_0
-        %150 = OpLoad %v2float %vPos
-        %148 = OpExtInst %float %40 Distance %149 %150
-        %152 = OpAccessChain %_ptr_Uniform_float %params %uint_1
-        %153 = OpLoad %float %152
-        %154 = OpFOrdLessThan %bool %148 %153
-               OpSelectionMerge %155 None
-               OpBranchConditional %154 %156 %155
-        %156 = OpLabel
-        %157 = OpLoad %v2float %cMass
-        %158 = OpLoad %v2float %pos_0
-        %159 = OpFAdd %v2float %157 %158
-               OpStore %cMass %159
-        %160 = OpLoad %int %cMassCount
-        %162 = OpIAdd %int %160 %int_1
-               OpStore %cMassCount %162
-               OpBranch %155
-        %155 = OpLabel
-        %164 = OpLoad %v2float %pos_0
-        %165 = OpLoad %v2float %vPos
-        %163 = OpExtInst %float %40 Distance %164 %165
-        %167 = OpAccessChain %_ptr_Uniform_float %params %uint_2
-        %168 = OpLoad %float %167
-        %169 = OpFOrdLessThan %bool %163 %168
-               OpSelectionMerge %170 None
-               OpBranchConditional %169 %171 %170
-        %171 = OpLabel
-        %172 = OpLoad %v2float %colVel
-        %173 = OpLoad %v2float %pos_0
-        %174 = OpLoad %v2float %vPos
-        %175 = OpFSub %v2float %173 %174
-        %176 = OpFSub %v2float %172 %175
-               OpStore %colVel %176
-               OpBranch %170
-        %170 = OpLabel
-        %178 = OpLoad %v2float %pos_0
-        %179 = OpLoad %v2float %vPos
-        %177 = OpExtInst %float %40 Distance %178 %179
-        %181 = OpAccessChain %_ptr_Uniform_float %params %uint_3
-        %182 = OpLoad %float %181
-        %183 = OpFOrdLessThan %bool %177 %182
-               OpSelectionMerge %184 None
-               OpBranchConditional %183 %185 %184
-        %185 = OpLabel
-        %186 = OpLoad %v2float %cVel
-        %187 = OpLoad %v2float %vel
-        %188 = OpFAdd %v2float %186 %187
-               OpStore %cVel %188
-        %189 = OpLoad %int %cVelCount
-        %190 = OpIAdd %int %189 %int_1
-               OpStore %cVelCount %190
-               OpBranch %184
-        %184 = OpLabel
-               OpBranch %128
-        %128 = OpLabel
-        %191 = OpLoad %uint %i
-        %192 = OpIAdd %uint %191 %uint_1
-               OpStore %i %192
-               OpBranch %126
-        %127 = OpLabel
-        %193 = OpLoad %int %cMassCount
-        %194 = OpSGreaterThan %bool %193 %int_0
-               OpSelectionMerge %195 None
-               OpBranchConditional %194 %196 %195
-        %196 = OpLabel
-        %197 = OpLoad %v2float %cMass
-        %199 = OpLoad %int %cMassCount
-        %198 = OpConvertSToF %float %199
-        %201 = OpLoad %int %cMassCount
-        %200 = OpConvertSToF %float %201
-        %202 = OpCompositeConstruct %v2float %198 %200
-        %203 = OpFDiv %v2float %197 %202
-        %204 = OpLoad %v2float %vPos
-        %205 = OpFSub %v2float %203 %204
-               OpStore %cMass %205
-               OpBranch %195
-        %195 = OpLabel
-        %206 = OpLoad %int %cVelCount
-        %207 = OpSGreaterThan %bool %206 %int_0
-               OpSelectionMerge %208 None
-               OpBranchConditional %207 %209 %208
-        %209 = OpLabel
-        %210 = OpLoad %v2float %cVel
-        %212 = OpLoad %int %cVelCount
-        %211 = OpConvertSToF %float %212
-        %214 = OpLoad %int %cVelCount
-        %213 = OpConvertSToF %float %214
-        %215 = OpCompositeConstruct %v2float %211 %213
-        %216 = OpFDiv %v2float %210 %215
-               OpStore %cVel %216
-               OpBranch %208
-        %208 = OpLabel
-        %217 = OpLoad %v2float %vVel
-        %218 = OpLoad %v2float %cMass
-        %220 = OpAccessChain %_ptr_Uniform_float %params %uint_4
-        %221 = OpLoad %float %220
-        %222 = OpVectorTimesScalar %v2float %218 %221
-        %223 = OpFAdd %v2float %217 %222
-        %224 = OpLoad %v2float %colVel
-        %225 = OpAccessChain %_ptr_Uniform_float %params %uint_5
-        %226 = OpLoad %float %225
-        %227 = OpVectorTimesScalar %v2float %224 %226
-        %228 = OpFAdd %v2float %223 %227
-        %229 = OpLoad %v2float %cVel
-        %231 = OpAccessChain %_ptr_Uniform_float %params %uint_6
-        %232 = OpLoad %float %231
-        %233 = OpVectorTimesScalar %v2float %229 %232
-        %234 = OpFAdd %v2float %228 %233
-               OpStore %vVel %234
+        %128 = OpLoad %uint %i
+        %129 = OpULessThan %bool %128 %uint_5
+        %127 = OpLogicalNot %bool %129
+               OpSelectionMerge %130 None
+               OpBranchConditional %127 %131 %130
+        %131 = OpLabel
+               OpBranch %124
+        %130 = OpLabel
+        %132 = OpLoad %uint %i
+        %133 = OpLoad %uint %index
+        %134 = OpIEqual %bool %132 %133
+               OpSelectionMerge %135 None
+               OpBranchConditional %134 %136 %135
+        %136 = OpLabel
+               OpBranch %125
+        %135 = OpLabel
+        %137 = OpLoad %uint %i
+        %138 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesA %uint_0 %137 %uint_0
+        %139 = OpLoad %v2float %138
+        %140 = OpVectorShuffle %v2float %139 %139 0 1
+               OpStore %pos_0 %140
+        %141 = OpLoad %uint %i
+        %142 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesA %uint_0 %141 %uint_1
+        %143 = OpLoad %v2float %142
+        %144 = OpVectorShuffle %v2float %143 %143 0 1
+               OpStore %vel %144
+        %146 = OpLoad %v2float %pos_0
+        %147 = OpLoad %v2float %vPos
+        %145 = OpExtInst %float %37 Distance %146 %147
+        %149 = OpAccessChain %_ptr_Uniform_float %params %uint_1
+        %150 = OpLoad %float %149
+        %151 = OpFOrdLessThan %bool %145 %150
+               OpSelectionMerge %152 None
+               OpBranchConditional %151 %153 %152
+        %153 = OpLabel
+        %154 = OpLoad %v2float %cMass
+        %155 = OpLoad %v2float %pos_0
+        %156 = OpFAdd %v2float %154 %155
+               OpStore %cMass %156
+        %157 = OpLoad %int %cMassCount
+        %159 = OpIAdd %int %157 %int_1
+               OpStore %cMassCount %159
+               OpBranch %152
+        %152 = OpLabel
+        %161 = OpLoad %v2float %pos_0
+        %162 = OpLoad %v2float %vPos
+        %160 = OpExtInst %float %37 Distance %161 %162
+        %164 = OpAccessChain %_ptr_Uniform_float %params %uint_2
+        %165 = OpLoad %float %164
+        %166 = OpFOrdLessThan %bool %160 %165
+               OpSelectionMerge %167 None
+               OpBranchConditional %166 %168 %167
+        %168 = OpLabel
+        %169 = OpLoad %v2float %colVel
+        %170 = OpLoad %v2float %pos_0
+        %171 = OpLoad %v2float %vPos
+        %172 = OpFSub %v2float %170 %171
+        %173 = OpFSub %v2float %169 %172
+               OpStore %colVel %173
+               OpBranch %167
+        %167 = OpLabel
+        %175 = OpLoad %v2float %pos_0
+        %176 = OpLoad %v2float %vPos
+        %174 = OpExtInst %float %37 Distance %175 %176
+        %178 = OpAccessChain %_ptr_Uniform_float %params %uint_3
+        %179 = OpLoad %float %178
+        %180 = OpFOrdLessThan %bool %174 %179
+               OpSelectionMerge %181 None
+               OpBranchConditional %180 %182 %181
+        %182 = OpLabel
+        %183 = OpLoad %v2float %cVel
+        %184 = OpLoad %v2float %vel
+        %185 = OpFAdd %v2float %183 %184
+               OpStore %cVel %185
+        %186 = OpLoad %int %cVelCount
+        %187 = OpIAdd %int %186 %int_1
+               OpStore %cVelCount %187
+               OpBranch %181
+        %181 = OpLabel
+               OpBranch %125
+        %125 = OpLabel
+        %188 = OpLoad %uint %i
+        %189 = OpIAdd %uint %188 %uint_1
+               OpStore %i %189
+               OpBranch %123
+        %124 = OpLabel
+        %190 = OpLoad %int %cMassCount
+        %191 = OpSGreaterThan %bool %190 %int_0
+               OpSelectionMerge %192 None
+               OpBranchConditional %191 %193 %192
+        %193 = OpLabel
+        %194 = OpLoad %v2float %cMass
+        %196 = OpLoad %int %cMassCount
+        %195 = OpConvertSToF %float %196
+        %198 = OpLoad %int %cMassCount
+        %197 = OpConvertSToF %float %198
+        %199 = OpCompositeConstruct %v2float %195 %197
+        %200 = OpFDiv %v2float %194 %199
+        %201 = OpLoad %v2float %vPos
+        %202 = OpFSub %v2float %200 %201
+               OpStore %cMass %202
+               OpBranch %192
+        %192 = OpLabel
+        %203 = OpLoad %int %cVelCount
+        %204 = OpSGreaterThan %bool %203 %int_0
+               OpSelectionMerge %205 None
+               OpBranchConditional %204 %206 %205
+        %206 = OpLabel
+        %207 = OpLoad %v2float %cVel
+        %209 = OpLoad %int %cVelCount
+        %208 = OpConvertSToF %float %209
+        %211 = OpLoad %int %cVelCount
+        %210 = OpConvertSToF %float %211
+        %212 = OpCompositeConstruct %v2float %208 %210
+        %213 = OpFDiv %v2float %207 %212
+               OpStore %cVel %213
+               OpBranch %205
+        %205 = OpLabel
+        %214 = OpLoad %v2float %vVel
+        %215 = OpLoad %v2float %cMass
+        %217 = OpAccessChain %_ptr_Uniform_float %params %uint_4
+        %218 = OpLoad %float %217
+        %219 = OpVectorTimesScalar %v2float %215 %218
+        %220 = OpFAdd %v2float %214 %219
+        %221 = OpLoad %v2float %colVel
+        %222 = OpAccessChain %_ptr_Uniform_float %params %uint_5
+        %223 = OpLoad %float %222
+        %224 = OpVectorTimesScalar %v2float %221 %223
+        %225 = OpFAdd %v2float %220 %224
+        %226 = OpLoad %v2float %cVel
+        %228 = OpAccessChain %_ptr_Uniform_float %params %uint_6
+        %229 = OpLoad %float %228
+        %230 = OpVectorTimesScalar %v2float %226 %229
+        %231 = OpFAdd %v2float %225 %230
+               OpStore %vVel %231
+        %233 = OpLoad %v2float %vVel
+        %232 = OpExtInst %v2float %37 Normalize %233
         %236 = OpLoad %v2float %vVel
-        %235 = OpExtInst %v2float %40 Normalize %236
-        %239 = OpLoad %v2float %vVel
-        %238 = OpExtInst %float %40 Length %239
-        %237 = OpExtInst %float %40 NClamp %238 %float_0 %float_0_100000001
-        %241 = OpVectorTimesScalar %v2float %235 %237
-               OpStore %vVel %241
-        %242 = OpLoad %v2float %vPos
-        %243 = OpLoad %v2float %vVel
-        %244 = OpAccessChain %_ptr_Uniform_float %params %uint_0
-        %245 = OpLoad %float %244
-        %246 = OpVectorTimesScalar %v2float %243 %245
-        %247 = OpFAdd %v2float %242 %246
-               OpStore %vPos %247
-        %248 = OpAccessChain %_ptr_Function_float %vPos %uint_0
-        %249 = OpLoad %float %248
-        %251 = OpFOrdLessThan %bool %249 %float_n1
-               OpSelectionMerge %252 None
-               OpBranchConditional %251 %253 %252
-        %253 = OpLabel
-        %254 = OpAccessChain %_ptr_Function_float %vPos %uint_0
-               OpStore %254 %float_1
-               OpBranch %252
-        %252 = OpLabel
-        %255 = OpAccessChain %_ptr_Function_float %vPos %uint_0
-        %256 = OpLoad %float %255
-        %257 = OpFOrdGreaterThan %bool %256 %float_1
-               OpSelectionMerge %258 None
-               OpBranchConditional %257 %259 %258
-        %259 = OpLabel
-        %260 = OpAccessChain %_ptr_Function_float %vPos %uint_0
-               OpStore %260 %float_n1
-               OpBranch %258
-        %258 = OpLabel
-        %261 = OpAccessChain %_ptr_Function_float %vPos %uint_1
-        %262 = OpLoad %float %261
-        %263 = OpFOrdLessThan %bool %262 %float_n1
-               OpSelectionMerge %264 None
-               OpBranchConditional %263 %265 %264
-        %265 = OpLabel
-        %266 = OpAccessChain %_ptr_Function_float %vPos %uint_1
-               OpStore %266 %float_1
-               OpBranch %264
-        %264 = OpLabel
-        %267 = OpAccessChain %_ptr_Function_float %vPos %uint_1
-        %268 = OpLoad %float %267
-        %269 = OpFOrdGreaterThan %bool %268 %float_1
-               OpSelectionMerge %270 None
-               OpBranchConditional %269 %271 %270
-        %271 = OpLabel
-        %272 = OpAccessChain %_ptr_Function_float %vPos %uint_1
-               OpStore %272 %float_n1
-               OpBranch %270
-        %270 = OpLabel
+        %235 = OpExtInst %float %37 Length %236
+        %234 = OpExtInst %float %37 NClamp %235 %float_0 %float_0_100000001
+        %238 = OpVectorTimesScalar %v2float %232 %234
+               OpStore %vVel %238
+        %239 = OpLoad %v2float %vPos
+        %240 = OpLoad %v2float %vVel
+        %241 = OpAccessChain %_ptr_Uniform_float %params %uint_0
+        %242 = OpLoad %float %241
+        %243 = OpVectorTimesScalar %v2float %240 %242
+        %244 = OpFAdd %v2float %239 %243
+               OpStore %vPos %244
+        %245 = OpAccessChain %_ptr_Function_float %vPos %uint_0
+        %246 = OpLoad %float %245
+        %248 = OpFOrdLessThan %bool %246 %float_n1
+               OpSelectionMerge %249 None
+               OpBranchConditional %248 %250 %249
+        %250 = OpLabel
+        %251 = OpAccessChain %_ptr_Function_float %vPos %uint_0
+               OpStore %251 %float_1
+               OpBranch %249
+        %249 = OpLabel
+        %252 = OpAccessChain %_ptr_Function_float %vPos %uint_0
+        %253 = OpLoad %float %252
+        %254 = OpFOrdGreaterThan %bool %253 %float_1
+               OpSelectionMerge %255 None
+               OpBranchConditional %254 %256 %255
+        %256 = OpLabel
+        %257 = OpAccessChain %_ptr_Function_float %vPos %uint_0
+               OpStore %257 %float_n1
+               OpBranch %255
+        %255 = OpLabel
+        %258 = OpAccessChain %_ptr_Function_float %vPos %uint_1
+        %259 = OpLoad %float %258
+        %260 = OpFOrdLessThan %bool %259 %float_n1
+               OpSelectionMerge %261 None
+               OpBranchConditional %260 %262 %261
+        %262 = OpLabel
+        %263 = OpAccessChain %_ptr_Function_float %vPos %uint_1
+               OpStore %263 %float_1
+               OpBranch %261
+        %261 = OpLabel
+        %264 = OpAccessChain %_ptr_Function_float %vPos %uint_1
+        %265 = OpLoad %float %264
+        %266 = OpFOrdGreaterThan %bool %265 %float_1
+               OpSelectionMerge %267 None
+               OpBranchConditional %266 %268 %267
+        %268 = OpLabel
+        %269 = OpAccessChain %_ptr_Function_float %vPos %uint_1
+               OpStore %269 %float_n1
+               OpBranch %267
+        %267 = OpLabel
+        %270 = OpLoad %uint %index
+        %271 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesB %uint_0 %270 %uint_0
+        %272 = OpLoad %v2float %vPos
+               OpStore %271 %272
         %273 = OpLoad %uint %index
-        %274 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesB %uint_0 %273 %uint_0
-        %275 = OpLoad %v2float %vPos
+        %274 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesB %uint_0 %273 %uint_1
+        %275 = OpLoad %v2float %vVel
                OpStore %274 %275
-        %276 = OpLoad %uint %index
-        %277 = OpAccessChain %_ptr_StorageBuffer_v2float %particlesB %uint_0 %276 %uint_1
-        %278 = OpLoad %v2float %vVel
-               OpStore %277 %278
+               OpReturn
+               OpFunctionEnd
+  %comp_main = OpFunction %void None %71
+        %277 = OpLabel
+        %279 = OpLoad %v3uint %gl_GlobalInvocationID_1
+        %278 = OpFunctionCall %void %comp_main_inner %279
                OpReturn
                OpFunctionEnd
diff --git a/test/samples/cube.wgsl.expected.spvasm b/test/samples/cube.wgsl.expected.spvasm
index 0e22c2b..cbbf88e 100644
--- a/test/samples/cube.wgsl.expected.spvasm
+++ b/test/samples/cube.wgsl.expected.spvasm
@@ -5,33 +5,39 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vtx_main "vtx_main" %tint_pointsize %tint_symbol %tint_symbol_1 %tint_symbol_4 %tint_symbol_5
-               OpEntryPoint Fragment %frag_main "frag_main" %tint_symbol_7 %tint_symbol_9
+               OpEntryPoint Vertex %vtx_main "vtx_main" %cur_position_1 %color_1 %vtxFragColor_1 %Position_1 %vertex_point_size
+               OpEntryPoint Fragment %frag_main "frag_main" %fragColor_1 %value
                OpExecutionMode %frag_main OriginUpperLeft
-               OpName %tint_pointsize "tint_pointsize"
+               OpName %cur_position_1 "cur_position_1"
+               OpName %color_1 "color_1"
+               OpName %vtxFragColor_1 "vtxFragColor_1"
+               OpName %Position_1 "Position_1"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %fragColor_1 "fragColor_1"
+               OpName %value "value"
                OpName %Uniforms "Uniforms"
                OpMemberName %Uniforms 0 "modelViewProjectionMatrix"
                OpName %uniforms "uniforms"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_7 "tint_symbol_7"
-               OpName %tint_symbol_9 "tint_symbol_9"
                OpName %VertexOutput "VertexOutput"
                OpMemberName %VertexOutput 0 "vtxFragColor"
                OpMemberName %VertexOutput 1 "Position"
-               OpName %tint_symbol_6 "tint_symbol_6"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %vtx_main "vtx_main"
                OpName %VertexInput "VertexInput"
                OpMemberName %VertexInput 0 "cur_position"
                OpMemberName %VertexInput 1 "color"
+               OpName %vtx_main_inner "vtx_main_inner"
+               OpName %input "input"
                OpName %output "output"
-               OpName %tint_symbol_10 "tint_symbol_10"
-               OpName %tint_symbol_8 "tint_symbol_8"
+               OpName %vtx_main "vtx_main"
+               OpName %frag_main_inner "frag_main_inner"
+               OpName %fragColor "fragColor"
                OpName %frag_main "frag_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %cur_position_1 Location 0
+               OpDecorate %color_1 Location 1
+               OpDecorate %vtxFragColor_1 Location 0
+               OpDecorate %Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %fragColor_1 Location 0
+               OpDecorate %value Location 0
                OpDecorate %Uniforms Block
                OpMemberDecorate %Uniforms 0 Offset 0
                OpMemberDecorate %Uniforms 0 ColMajor
@@ -39,86 +45,80 @@
                OpDecorate %uniforms NonWritable
                OpDecorate %uniforms Binding 0
                OpDecorate %uniforms DescriptorSet 0
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_1 Location 1
-               OpDecorate %tint_symbol_4 Location 0
-               OpDecorate %tint_symbol_5 BuiltIn Position
-               OpDecorate %tint_symbol_7 Location 0
-               OpDecorate %tint_symbol_9 Location 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
                OpMemberDecorate %VertexInput 0 Offset 0
                OpMemberDecorate %VertexInput 1 Offset 16
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%cur_position_1 = OpVariable %_ptr_Input_v4float Input
+    %color_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %8 = OpConstantNull %v4float
+%vtxFragColor_1 = OpVariable %_ptr_Output_v4float Output %8
+ %Position_1 = OpVariable %_ptr_Output_v4float Output %8
+%_ptr_Output_float = OpTypePointer Output %float
+         %12 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %12
+%fragColor_1 = OpVariable %_ptr_Input_v4float Input
+      %value = OpVariable %_ptr_Output_v4float Output %8
 %mat4v4float = OpTypeMatrix %v4float 4
    %Uniforms = OpTypeStruct %mat4v4float
 %_ptr_Uniform_Uniforms = OpTypePointer Uniform %Uniforms
    %uniforms = OpVariable %_ptr_Uniform_Uniforms Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%tint_symbol_1 = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-         %15 = OpConstantNull %v4float
-%tint_symbol_4 = OpVariable %_ptr_Output_v4float Output %15
-%tint_symbol_5 = OpVariable %_ptr_Output_v4float Output %15
-%tint_symbol_7 = OpVariable %_ptr_Input_v4float Input
-%tint_symbol_9 = OpVariable %_ptr_Output_v4float Output %15
-       %void = OpTypeVoid
 %VertexOutput = OpTypeStruct %v4float %v4float
-         %19 = OpTypeFunction %void %VertexOutput
-         %27 = OpTypeFunction %void
-    %float_1 = OpConstant %float 1
 %VertexInput = OpTypeStruct %v4float %v4float
+         %19 = OpTypeFunction %VertexOutput %VertexInput
 %_ptr_Function_VertexOutput = OpTypePointer Function %VertexOutput
-         %37 = OpConstantNull %VertexOutput
+         %27 = OpConstantNull %VertexOutput
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
      %uint_0 = OpConstant %uint 0
 %_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float
-         %52 = OpTypeFunction %void %v4float
-%tint_symbol_6 = OpFunction %void None %19
-%tint_symbol_3 = OpFunctionParameter %VertexOutput
+       %void = OpTypeVoid
+         %41 = OpTypeFunction %void
+    %float_1 = OpConstant %float 1
+         %52 = OpTypeFunction %v4float %v4float
+%vtx_main_inner = OpFunction %VertexOutput None %19
+      %input = OpFunctionParameter %VertexInput
          %24 = OpLabel
-         %25 = OpCompositeExtract %v4float %tint_symbol_3 0
-               OpStore %tint_symbol_4 %25
-         %26 = OpCompositeExtract %v4float %tint_symbol_3 1
-               OpStore %tint_symbol_5 %26
+     %output = OpVariable %_ptr_Function_VertexOutput Function %27
+         %31 = OpAccessChain %_ptr_Function_v4float %output %uint_1
+         %34 = OpAccessChain %_ptr_Uniform_mat4v4float %uniforms %uint_0
+         %35 = OpLoad %mat4v4float %34
+         %36 = OpCompositeExtract %v4float %input 0
+         %37 = OpMatrixTimesVector %v4float %35 %36
+               OpStore %31 %37
+         %38 = OpAccessChain %_ptr_Function_v4float %output %uint_0
+         %39 = OpCompositeExtract %v4float %input 1
+               OpStore %38 %39
+         %40 = OpLoad %VertexOutput %output
+               OpReturnValue %40
+               OpFunctionEnd
+   %vtx_main = OpFunction %void None %41
+         %44 = OpLabel
+         %46 = OpLoad %v4float %cur_position_1
+         %47 = OpLoad %v4float %color_1
+         %48 = OpCompositeConstruct %VertexInput %46 %47
+         %45 = OpFunctionCall %VertexOutput %vtx_main_inner %48
+         %49 = OpCompositeExtract %v4float %45 0
+               OpStore %vtxFragColor_1 %49
+         %50 = OpCompositeExtract %v4float %45 1
+               OpStore %Position_1 %50
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
-   %vtx_main = OpFunction %void None %27
-         %29 = OpLabel
-     %output = OpVariable %_ptr_Function_VertexOutput Function %37
-               OpStore %tint_pointsize %float_1
-         %32 = OpLoad %v4float %tint_symbol
-         %33 = OpLoad %v4float %tint_symbol_1
-         %34 = OpCompositeConstruct %VertexInput %32 %33
-         %41 = OpAccessChain %_ptr_Function_v4float %output %uint_1
-         %44 = OpAccessChain %_ptr_Uniform_mat4v4float %uniforms %uint_0
-         %45 = OpLoad %mat4v4float %44
-         %46 = OpCompositeExtract %v4float %34 0
-         %47 = OpMatrixTimesVector %v4float %45 %46
-               OpStore %41 %47
-         %48 = OpAccessChain %_ptr_Function_v4float %output %uint_0
-         %49 = OpCompositeExtract %v4float %34 1
-               OpStore %48 %49
-         %51 = OpLoad %VertexOutput %output
-         %50 = OpFunctionCall %void %tint_symbol_6 %51
-               OpReturn
-               OpFunctionEnd
-%tint_symbol_10 = OpFunction %void None %52
-%tint_symbol_8 = OpFunctionParameter %v4float
+%frag_main_inner = OpFunction %v4float None %52
+  %fragColor = OpFunctionParameter %v4float
          %55 = OpLabel
-               OpStore %tint_symbol_9 %tint_symbol_8
-               OpReturn
+               OpReturnValue %fragColor
                OpFunctionEnd
-  %frag_main = OpFunction %void None %27
+  %frag_main = OpFunction %void None %41
          %57 = OpLabel
-         %59 = OpLoad %v4float %tint_symbol_7
-         %58 = OpFunctionCall %void %tint_symbol_10 %59
+         %59 = OpLoad %v4float %fragColor_1
+         %58 = OpFunctionCall %v4float %frag_main_inner %59
+               OpStore %value %58
                OpReturn
                OpFunctionEnd
diff --git a/test/samples/simple.wgsl.expected.spvasm b/test/samples/simple.wgsl.expected.spvasm
index ac34752..f07e733 100644
--- a/test/samples/simple.wgsl.expected.spvasm
+++ b/test/samples/simple.wgsl.expected.spvasm
@@ -1,49 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 26
+; Bound: 25
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %value
                OpExecutionMode %main OriginUpperLeft
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
                OpName %bar "bar"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
-               OpName %main "main"
+               OpName %main_inner "main_inner"
                OpName %a "a"
-               OpDecorate %tint_symbol_1 Location 0
+               OpName %main "main"
+               OpDecorate %value Location 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+      %value = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
           %6 = OpTypeFunction %void
-         %10 = OpTypeFunction %void %v4float
+         %10 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
-         %17 = OpConstantNull %v2float
+         %14 = OpConstantNull %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
 %float_0_400000006 = OpConstant %float 0.400000006
 %float_0_800000012 = OpConstant %float 0.800000012
     %float_1 = OpConstant %float 1
-         %25 = OpConstantComposite %v4float %float_0_400000006 %float_0_400000006 %float_0_800000012 %float_1
+         %21 = OpConstantComposite %v4float %float_0_400000006 %float_0_400000006 %float_0_800000012 %float_1
         %bar = OpFunction %void None %6
           %9 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %10
-%tint_symbol = OpFunctionParameter %v4float
-         %13 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+ %main_inner = OpFunction %v4float None %10
+         %12 = OpLabel
+          %a = OpVariable %_ptr_Function_v2float Function %14
+               OpStore %a %14
+         %17 = OpFunctionCall %void %bar
+               OpReturnValue %21
                OpFunctionEnd
        %main = OpFunction %void None %6
-         %15 = OpLabel
-          %a = OpVariable %_ptr_Function_v2float Function %17
-               OpStore %a %17
-         %20 = OpFunctionCall %void %bar
-         %21 = OpFunctionCall %void %tint_symbol_2 %25
+         %23 = OpLabel
+         %24 = OpFunctionCall %v4float %main_inner
+               OpStore %value %24
                OpReturn
                OpFunctionEnd
diff --git a/test/samples/simple_vertex.spvasm.expected.spvasm b/test/samples/simple_vertex.spvasm.expected.spvasm
index e96f80d..0a7c17b 100644
--- a/test/samples/simple_vertex.spvasm.expected.spvasm
+++ b/test/samples/simple_vertex.spvasm.expected.spvasm
@@ -1,58 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %gl_Position_1 %vertex_point_size
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 BuiltIn Position
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_Position = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
     %float_0 = OpConstant %float 0
          %16 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %17 = OpTypeFunction %void %main_out
+         %17 = OpTypeFunction %main_out
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
                OpStore %gl_Position %16
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %main_out
-         %21 = OpLabel
-         %22 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %22
-               OpReturn
+ %main_inner = OpFunction %main_out None %17
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %main_1
+         %22 = OpLoad %v4float %gl_Position
+         %23 = OpCompositeConstruct %main_out %22
+               OpReturnValue %23
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %main_1
-         %28 = OpLoad %v4float %gl_Position
-         %29 = OpCompositeConstruct %main_out %28
-         %27 = OpFunctionCall %void %tint_symbol_2 %29
+         %25 = OpLabel
+         %26 = OpFunctionCall %main_out %main_inner
+         %27 = OpCompositeExtract %v4float %26 0
+               OpStore %gl_Position_1 %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/samples/triangle.wgsl.expected.spvasm b/test/samples/triangle.wgsl.expected.spvasm
index 7618650..3d2c238 100644
--- a/test/samples/triangle.wgsl.expected.spvasm
+++ b/test/samples/triangle.wgsl.expected.spvasm
@@ -5,83 +5,82 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vtx_main "vtx_main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpEntryPoint Fragment %frag_main "frag_main" %tint_symbol_5
+               OpEntryPoint Vertex %vtx_main "vtx_main" %VertexIndex_1 %value %vertex_point_size
+               OpEntryPoint Fragment %frag_main "frag_main" %value_1
                OpExecutionMode %frag_main OriginUpperLeft
-               OpName %tint_pointsize "tint_pointsize"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %vtx_main "vtx_main"
+               OpName %VertexIndex_1 "VertexIndex_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %value_1 "value_1"
+               OpName %vtx_main_inner "vtx_main_inner"
+               OpName %VertexIndex "VertexIndex"
                OpName %pos "pos"
-               OpName %tint_symbol_6 "tint_symbol_6"
-               OpName %tint_symbol_4 "tint_symbol_4"
+               OpName %vtx_main "vtx_main"
+               OpName %frag_main_inner "frag_main_inner"
                OpName %frag_main "frag_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol BuiltIn VertexIndex
-               OpDecorate %tint_symbol_2 BuiltIn Position
-               OpDecorate %tint_symbol_5 Location 0
+               OpDecorate %VertexIndex_1 BuiltIn VertexIndex
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %value_1 Location 0
                OpDecorate %_arr_v2float_uint_3 ArrayStride 8
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%VertexIndex_1 = OpVariable %_ptr_Input_uint Input
+      %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %11 = OpConstantNull %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %11
-%tint_symbol_5 = OpVariable %_ptr_Output_v4float Output %11
-       %void = OpTypeVoid
-         %13 = OpTypeFunction %void %v4float
-         %18 = OpTypeFunction %void
-    %float_1 = OpConstant %float 1
+          %8 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %8
+%_ptr_Output_float = OpTypePointer Output %float
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
+    %value_1 = OpVariable %_ptr_Output_v4float Output %8
+         %13 = OpTypeFunction %v4float %uint
     %v2float = OpTypeVector %float 2
      %uint_3 = OpConstant %uint 3
 %_arr_v2float_uint_3 = OpTypeArray %v2float %uint_3
     %float_0 = OpConstant %float 0
   %float_0_5 = OpConstant %float 0.5
-         %27 = OpConstantComposite %v2float %float_0 %float_0_5
+         %22 = OpConstantComposite %v2float %float_0 %float_0_5
  %float_n0_5 = OpConstant %float -0.5
-         %29 = OpConstantComposite %v2float %float_n0_5 %float_n0_5
-         %30 = OpConstantComposite %v2float %float_0_5 %float_n0_5
-         %31 = OpConstantComposite %_arr_v2float_uint_3 %27 %29 %30
+         %24 = OpConstantComposite %v2float %float_n0_5 %float_n0_5
+         %25 = OpConstantComposite %v2float %float_0_5 %float_n0_5
+         %26 = OpConstantComposite %_arr_v2float_uint_3 %22 %24 %25
 %_ptr_Function__arr_v2float_uint_3 = OpTypePointer Function %_arr_v2float_uint_3
-         %34 = OpConstantNull %_arr_v2float_uint_3
+         %29 = OpConstantNull %_arr_v2float_uint_3
 %_ptr_Function_v2float = OpTypePointer Function %v2float
-         %49 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
-%tint_symbol_3 = OpFunction %void None %13
-%tint_symbol_1 = OpFunctionParameter %v4float
-         %17 = OpLabel
-               OpStore %tint_symbol_2 %tint_symbol_1
+    %float_1 = OpConstant %float 1
+       %void = OpTypeVoid
+         %37 = OpTypeFunction %void
+         %43 = OpTypeFunction %v4float
+         %46 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
+%vtx_main_inner = OpFunction %v4float None %13
+%VertexIndex = OpFunctionParameter %uint
+         %16 = OpLabel
+        %pos = OpVariable %_ptr_Function__arr_v2float_uint_3 Function %29
+               OpStore %pos %26
+         %31 = OpAccessChain %_ptr_Function_v2float %pos %VertexIndex
+         %32 = OpLoad %v2float %31
+         %33 = OpCompositeExtract %float %32 0
+         %34 = OpCompositeExtract %float %32 1
+         %36 = OpCompositeConstruct %v4float %33 %34 %float_0 %float_1
+               OpReturnValue %36
+               OpFunctionEnd
+   %vtx_main = OpFunction %void None %37
+         %40 = OpLabel
+         %42 = OpLoad %uint %VertexIndex_1
+         %41 = OpFunctionCall %v4float %vtx_main_inner %42
+               OpStore %value %41
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
-   %vtx_main = OpFunction %void None %18
-         %20 = OpLabel
-        %pos = OpVariable %_ptr_Function__arr_v2float_uint_3 Function %34
-               OpStore %tint_pointsize %float_1
-               OpStore %pos %31
-         %36 = OpLoad %uint %tint_symbol
-         %38 = OpAccessChain %_ptr_Function_v2float %pos %36
-         %39 = OpLoad %v2float %38
-         %40 = OpCompositeExtract %float %39 0
-         %41 = OpCompositeExtract %float %39 1
-         %42 = OpCompositeConstruct %v4float %40 %41 %float_0 %float_1
-         %35 = OpFunctionCall %void %tint_symbol_3 %42
-               OpReturn
-               OpFunctionEnd
-%tint_symbol_6 = OpFunction %void None %13
-%tint_symbol_4 = OpFunctionParameter %v4float
+%frag_main_inner = OpFunction %v4float None %43
          %45 = OpLabel
-               OpStore %tint_symbol_5 %tint_symbol_4
-               OpReturn
+               OpReturnValue %46
                OpFunctionEnd
-  %frag_main = OpFunction %void None %18
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %tint_symbol_6 %49
+  %frag_main = OpFunction %void None %37
+         %48 = OpLabel
+         %49 = OpFunctionCall %v4float %frag_main_inner
+               OpStore %value_1 %49
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/compute_input_builtins.wgsl.expected.spvasm b/test/shader_io/compute_input_builtins.wgsl.expected.spvasm
index b47c180..a1dddd0 100644
--- a/test/shader_io/compute_input_builtins.wgsl.expected.spvasm
+++ b/test/shader_io/compute_input_builtins.wgsl.expected.spvasm
@@ -1,43 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 24
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3
+               OpEntryPoint GLCompute %main "main" %local_invocation_id_1 %local_invocation_index_1 %global_invocation_id_1 %workgroup_id_1
                OpExecutionMode %main LocalSize 1 1 1
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
+               OpName %local_invocation_id_1 "local_invocation_id_1"
+               OpName %local_invocation_index_1 "local_invocation_index_1"
+               OpName %global_invocation_id_1 "global_invocation_id_1"
+               OpName %workgroup_id_1 "workgroup_id_1"
+               OpName %main_inner "main_inner"
+               OpName %local_invocation_id "local_invocation_id"
+               OpName %local_invocation_index "local_invocation_index"
+               OpName %global_invocation_id "global_invocation_id"
+               OpName %workgroup_id "workgroup_id"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationId
-               OpDecorate %tint_symbol_1 BuiltIn LocalInvocationIndex
-               OpDecorate %tint_symbol_2 BuiltIn GlobalInvocationId
-               OpDecorate %tint_symbol_3 BuiltIn WorkgroupId
+               OpDecorate %local_invocation_id_1 BuiltIn LocalInvocationId
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+               OpDecorate %global_invocation_id_1 BuiltIn GlobalInvocationId
+               OpDecorate %workgroup_id_1 BuiltIn WorkgroupId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
 %_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
+%local_invocation_id_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol_1 = OpVariable %_ptr_Input_uint Input
-%tint_symbol_2 = OpVariable %_ptr_Input_v3uint Input
-%tint_symbol_3 = OpVariable %_ptr_Input_v3uint Input
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
+%global_invocation_id_1 = OpVariable %_ptr_Input_v3uint Input
+%workgroup_id_1 = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
-          %9 = OpTypeFunction %void
-     %uint_0 = OpConstant %uint 0
-       %main = OpFunction %void None %9
-         %12 = OpLabel
-         %14 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_0
-         %15 = OpLoad %uint %14
-         %16 = OpLoad %uint %tint_symbol_1
-         %17 = OpIAdd %uint %15 %16
-         %18 = OpAccessChain %_ptr_Input_uint %tint_symbol_2 %uint_0
-         %19 = OpLoad %uint %18
-         %20 = OpIAdd %uint %17 %19
-         %21 = OpAccessChain %_ptr_Input_uint %tint_symbol_3 %uint_0
-         %22 = OpLoad %uint %21
-         %23 = OpIAdd %uint %20 %22
+          %9 = OpTypeFunction %void %v3uint %uint %v3uint %v3uint
+         %23 = OpTypeFunction %void
+ %main_inner = OpFunction %void None %9
+%local_invocation_id = OpFunctionParameter %v3uint
+%local_invocation_index = OpFunctionParameter %uint
+%global_invocation_id = OpFunctionParameter %v3uint
+%workgroup_id = OpFunctionParameter %v3uint
+         %16 = OpLabel
+         %17 = OpCompositeExtract %uint %local_invocation_id 0
+         %18 = OpIAdd %uint %17 %local_invocation_index
+         %19 = OpCompositeExtract %uint %global_invocation_id 0
+         %20 = OpIAdd %uint %18 %19
+         %21 = OpCompositeExtract %uint %workgroup_id 0
+         %22 = OpIAdd %uint %20 %21
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %23
+         %25 = OpLabel
+         %27 = OpLoad %v3uint %local_invocation_id_1
+         %28 = OpLoad %uint %local_invocation_index_1
+         %29 = OpLoad %v3uint %global_invocation_id_1
+         %30 = OpLoad %v3uint %workgroup_id_1
+         %26 = OpFunctionCall %void %main_inner %27 %28 %29 %30
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/compute_input_builtins_struct.wgsl.expected.spvasm b/test/shader_io/compute_input_builtins_struct.wgsl.expected.spvasm
index f54703d..d270e75 100644
--- a/test/shader_io/compute_input_builtins_struct.wgsl.expected.spvasm
+++ b/test/shader_io/compute_input_builtins_struct.wgsl.expected.spvasm
@@ -1,26 +1,28 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3
+               OpEntryPoint GLCompute %main "main" %local_invocation_id_1 %local_invocation_index_1 %global_invocation_id_1 %workgroup_id_1
                OpExecutionMode %main LocalSize 1 1 1
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %main "main"
+               OpName %local_invocation_id_1 "local_invocation_id_1"
+               OpName %local_invocation_index_1 "local_invocation_index_1"
+               OpName %global_invocation_id_1 "global_invocation_id_1"
+               OpName %workgroup_id_1 "workgroup_id_1"
                OpName %ComputeInputs "ComputeInputs"
                OpMemberName %ComputeInputs 0 "local_invocation_id"
                OpMemberName %ComputeInputs 1 "local_invocation_index"
                OpMemberName %ComputeInputs 2 "global_invocation_id"
                OpMemberName %ComputeInputs 3 "workgroup_id"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationId
-               OpDecorate %tint_symbol_1 BuiltIn LocalInvocationIndex
-               OpDecorate %tint_symbol_2 BuiltIn GlobalInvocationId
-               OpDecorate %tint_symbol_3 BuiltIn WorkgroupId
+               OpName %main_inner "main_inner"
+               OpName %inputs "inputs"
+               OpName %main "main"
+               OpDecorate %local_invocation_id_1 BuiltIn LocalInvocationId
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+               OpDecorate %global_invocation_id_1 BuiltIn GlobalInvocationId
+               OpDecorate %workgroup_id_1 BuiltIn WorkgroupId
                OpMemberDecorate %ComputeInputs 0 Offset 0
                OpMemberDecorate %ComputeInputs 1 Offset 12
                OpMemberDecorate %ComputeInputs 2 Offset 16
@@ -28,30 +30,37 @@
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
 %_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
+%local_invocation_id_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol_1 = OpVariable %_ptr_Input_uint Input
-%tint_symbol_2 = OpVariable %_ptr_Input_v3uint Input
-%tint_symbol_3 = OpVariable %_ptr_Input_v3uint Input
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
+%global_invocation_id_1 = OpVariable %_ptr_Input_v3uint Input
+%workgroup_id_1 = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
-          %9 = OpTypeFunction %void
 %ComputeInputs = OpTypeStruct %v3uint %uint %v3uint %v3uint
-       %main = OpFunction %void None %9
-         %12 = OpLabel
-         %14 = OpLoad %v3uint %tint_symbol
-         %15 = OpLoad %uint %tint_symbol_1
-         %16 = OpLoad %v3uint %tint_symbol_2
-         %17 = OpLoad %v3uint %tint_symbol_3
-         %18 = OpCompositeConstruct %ComputeInputs %14 %15 %16 %17
-         %19 = OpCompositeExtract %v3uint %18 0
+          %9 = OpTypeFunction %void %ComputeInputs
+         %25 = OpTypeFunction %void
+ %main_inner = OpFunction %void None %9
+     %inputs = OpFunctionParameter %ComputeInputs
+         %14 = OpLabel
+         %15 = OpCompositeExtract %v3uint %inputs 0
+         %16 = OpCompositeExtract %uint %15 0
+         %17 = OpCompositeExtract %uint %inputs 1
+         %18 = OpIAdd %uint %16 %17
+         %19 = OpCompositeExtract %v3uint %inputs 2
          %20 = OpCompositeExtract %uint %19 0
-         %21 = OpCompositeExtract %uint %18 1
-         %22 = OpIAdd %uint %20 %21
-         %23 = OpCompositeExtract %v3uint %18 2
-         %24 = OpCompositeExtract %uint %23 0
-         %25 = OpIAdd %uint %22 %24
-         %26 = OpCompositeExtract %v3uint %18 3
-         %27 = OpCompositeExtract %uint %26 0
-         %28 = OpIAdd %uint %25 %27
+         %21 = OpIAdd %uint %18 %20
+         %22 = OpCompositeExtract %v3uint %inputs 3
+         %23 = OpCompositeExtract %uint %22 0
+         %24 = OpIAdd %uint %21 %23
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %25
+         %27 = OpLabel
+         %29 = OpLoad %v3uint %local_invocation_id_1
+         %30 = OpLoad %uint %local_invocation_index_1
+         %31 = OpLoad %v3uint %global_invocation_id_1
+         %32 = OpLoad %v3uint %workgroup_id_1
+         %33 = OpCompositeConstruct %ComputeInputs %29 %30 %31 %32
+         %28 = OpFunctionCall %void %main_inner %33
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/compute_input_mixed.wgsl.expected.spvasm b/test/shader_io/compute_input_mixed.wgsl.expected.spvasm
index 145635e..a81762d 100644
--- a/test/shader_io/compute_input_mixed.wgsl.expected.spvasm
+++ b/test/shader_io/compute_input_mixed.wgsl.expected.spvasm
@@ -1,55 +1,69 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol %tint_symbol_4 %tint_symbol_2 %tint_symbol_3
+               OpEntryPoint GLCompute %main "main" %local_invocation_id_1 %local_invocation_index_1 %global_invocation_id_1 %workgroup_id_1
                OpExecutionMode %main LocalSize 1 1 1
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %main "main"
+               OpName %local_invocation_id_1 "local_invocation_id_1"
+               OpName %local_invocation_index_1 "local_invocation_index_1"
+               OpName %global_invocation_id_1 "global_invocation_id_1"
+               OpName %workgroup_id_1 "workgroup_id_1"
                OpName %ComputeInputs0 "ComputeInputs0"
                OpMemberName %ComputeInputs0 0 "local_invocation_id"
                OpName %ComputeInputs1 "ComputeInputs1"
                OpMemberName %ComputeInputs1 0 "workgroup_id"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationId
-               OpDecorate %tint_symbol_2 BuiltIn LocalInvocationIndex
-               OpDecorate %tint_symbol_3 BuiltIn GlobalInvocationId
-               OpDecorate %tint_symbol_4 BuiltIn WorkgroupId
+               OpName %main_inner "main_inner"
+               OpName %inputs0 "inputs0"
+               OpName %local_invocation_index "local_invocation_index"
+               OpName %global_invocation_id "global_invocation_id"
+               OpName %inputs1 "inputs1"
+               OpName %main "main"
+               OpDecorate %local_invocation_id_1 BuiltIn LocalInvocationId
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+               OpDecorate %global_invocation_id_1 BuiltIn GlobalInvocationId
+               OpDecorate %workgroup_id_1 BuiltIn WorkgroupId
                OpMemberDecorate %ComputeInputs0 0 Offset 0
                OpMemberDecorate %ComputeInputs1 0 Offset 0
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
 %_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
+%local_invocation_id_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol_2 = OpVariable %_ptr_Input_uint Input
-%tint_symbol_3 = OpVariable %_ptr_Input_v3uint Input
-%tint_symbol_4 = OpVariable %_ptr_Input_v3uint Input
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
+%global_invocation_id_1 = OpVariable %_ptr_Input_v3uint Input
+%workgroup_id_1 = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
-          %9 = OpTypeFunction %void
 %ComputeInputs0 = OpTypeStruct %v3uint
 %ComputeInputs1 = OpTypeStruct %v3uint
-     %uint_0 = OpConstant %uint 0
-       %main = OpFunction %void None %9
-         %12 = OpLabel
-         %14 = OpLoad %v3uint %tint_symbol
-         %15 = OpCompositeConstruct %ComputeInputs0 %14
-         %17 = OpLoad %v3uint %tint_symbol_4
-         %18 = OpCompositeConstruct %ComputeInputs1 %17
-         %19 = OpCompositeExtract %v3uint %15 0
+          %9 = OpTypeFunction %void %ComputeInputs0 %uint %v3uint %ComputeInputs1
+         %27 = OpTypeFunction %void
+ %main_inner = OpFunction %void None %9
+    %inputs0 = OpFunctionParameter %ComputeInputs0
+%local_invocation_index = OpFunctionParameter %uint
+%global_invocation_id = OpFunctionParameter %v3uint
+    %inputs1 = OpFunctionParameter %ComputeInputs1
+         %18 = OpLabel
+         %19 = OpCompositeExtract %v3uint %inputs0 0
          %20 = OpCompositeExtract %uint %19 0
-         %21 = OpLoad %uint %tint_symbol_2
-         %22 = OpIAdd %uint %20 %21
-         %24 = OpAccessChain %_ptr_Input_uint %tint_symbol_3 %uint_0
-         %25 = OpLoad %uint %24
-         %26 = OpIAdd %uint %22 %25
-         %27 = OpCompositeExtract %v3uint %18 0
-         %28 = OpCompositeExtract %uint %27 0
-         %29 = OpIAdd %uint %26 %28
+         %21 = OpIAdd %uint %20 %local_invocation_index
+         %22 = OpCompositeExtract %uint %global_invocation_id 0
+         %23 = OpIAdd %uint %21 %22
+         %24 = OpCompositeExtract %v3uint %inputs1 0
+         %25 = OpCompositeExtract %uint %24 0
+         %26 = OpIAdd %uint %23 %25
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %27
+         %29 = OpLabel
+         %31 = OpLoad %v3uint %local_invocation_id_1
+         %32 = OpCompositeConstruct %ComputeInputs0 %31
+         %33 = OpLoad %uint %local_invocation_index_1
+         %34 = OpLoad %v3uint %global_invocation_id_1
+         %35 = OpLoad %v3uint %workgroup_id_1
+         %36 = OpCompositeConstruct %ComputeInputs1 %35
+         %30 = OpFunctionCall %void %main_inner %32 %33 %34 %36
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/fragment_input_builtins.wgsl.expected.spvasm b/test/shader_io/fragment_input_builtins.wgsl.expected.spvasm
index b6e26bd..daf288b 100644
--- a/test/shader_io/fragment_input_builtins.wgsl.expected.spvasm
+++ b/test/shader_io/fragment_input_builtins.wgsl.expected.spvasm
@@ -1,53 +1,68 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability SampleRateShading
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol %tint_symbol_2 %tint_symbol_3
+               OpEntryPoint Fragment %main "main" %position_1 %front_facing_1 %sample_index_1 %sample_mask_1
                OpExecutionMode %main OriginUpperLeft
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
+               OpName %position_1 "position_1"
+               OpName %front_facing_1 "front_facing_1"
+               OpName %sample_index_1 "sample_index_1"
+               OpName %sample_mask_1 "sample_mask_1"
+               OpName %main_inner "main_inner"
+               OpName %position "position"
+               OpName %front_facing "front_facing"
+               OpName %sample_index "sample_index"
+               OpName %sample_mask "sample_mask"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_1 BuiltIn FrontFacing
-               OpDecorate %tint_symbol_2 BuiltIn SampleId
+               OpDecorate %position_1 BuiltIn FragCoord
+               OpDecorate %front_facing_1 BuiltIn FrontFacing
+               OpDecorate %sample_index_1 BuiltIn SampleId
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol_3 BuiltIn SampleMask
+               OpDecorate %sample_mask_1 BuiltIn SampleMask
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+ %position_1 = OpVariable %_ptr_Input_v4float Input
        %bool = OpTypeBool
 %_ptr_Input_bool = OpTypePointer Input %bool
-%tint_symbol_1 = OpVariable %_ptr_Input_bool Input
+%front_facing_1 = OpVariable %_ptr_Input_bool Input
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol_2 = OpVariable %_ptr_Input_uint Input
+%sample_index_1 = OpVariable %_ptr_Input_uint Input
      %uint_1 = OpConstant %uint 1
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
 %_ptr_Input__arr_uint_uint_1 = OpTypePointer Input %_arr_uint_uint_1
-%tint_symbol_3 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
+%sample_mask_1 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
        %void = OpTypeVoid
-         %15 = OpTypeFunction %void
+         %15 = OpTypeFunction %void %v4float %bool %uint %uint
+         %26 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
-       %main = OpFunction %void None %15
-         %18 = OpLabel
-         %19 = OpLoad %bool %tint_symbol_1
-               OpSelectionMerge %20 None
-               OpBranchConditional %19 %21 %20
-         %21 = OpLabel
-         %22 = OpLoad %v4float %tint_symbol
-         %23 = OpLoad %uint %tint_symbol_2
-         %26 = OpAccessChain %_ptr_Input_uint %tint_symbol_3 %int_0
-         %27 = OpLoad %uint %26
-         %28 = OpIAdd %uint %23 %27
-               OpBranch %20
-         %20 = OpLabel
+ %main_inner = OpFunction %void None %15
+   %position = OpFunctionParameter %v4float
+%front_facing = OpFunctionParameter %bool
+%sample_index = OpFunctionParameter %uint
+%sample_mask = OpFunctionParameter %uint
+         %22 = OpLabel
+               OpSelectionMerge %23 None
+               OpBranchConditional %front_facing %24 %23
+         %24 = OpLabel
+         %25 = OpIAdd %uint %sample_index %sample_mask
+               OpBranch %23
+         %23 = OpLabel
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %26
+         %28 = OpLabel
+         %30 = OpLoad %v4float %position_1
+         %31 = OpLoad %bool %front_facing_1
+         %32 = OpLoad %uint %sample_index_1
+         %35 = OpAccessChain %_ptr_Input_uint %sample_mask_1 %int_0
+         %36 = OpLoad %uint %35
+         %29 = OpFunctionCall %void %main_inner %30 %31 %32 %36
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/fragment_input_builtins_struct.wgsl.expected.spvasm b/test/shader_io/fragment_input_builtins_struct.wgsl.expected.spvasm
index 16ace31..a826ffb 100644
--- a/test/shader_io/fragment_input_builtins_struct.wgsl.expected.spvasm
+++ b/test/shader_io/fragment_input_builtins_struct.wgsl.expected.spvasm
@@ -1,28 +1,30 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability SampleRateShading
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3
+               OpEntryPoint Fragment %main "main" %position_1 %front_facing_1 %sample_index_1 %sample_mask_1
                OpExecutionMode %main OriginUpperLeft
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %main "main"
+               OpName %position_1 "position_1"
+               OpName %front_facing_1 "front_facing_1"
+               OpName %sample_index_1 "sample_index_1"
+               OpName %sample_mask_1 "sample_mask_1"
                OpName %FragmentInputs "FragmentInputs"
                OpMemberName %FragmentInputs 0 "position"
                OpMemberName %FragmentInputs 1 "front_facing"
                OpMemberName %FragmentInputs 2 "sample_index"
                OpMemberName %FragmentInputs 3 "sample_mask"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_1 BuiltIn FrontFacing
-               OpDecorate %tint_symbol_2 BuiltIn SampleId
+               OpName %main_inner "main_inner"
+               OpName %inputs "inputs"
+               OpName %main "main"
+               OpDecorate %position_1 BuiltIn FragCoord
+               OpDecorate %front_facing_1 BuiltIn FrontFacing
+               OpDecorate %sample_index_1 BuiltIn SampleId
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol_3 BuiltIn SampleMask
+               OpDecorate %sample_mask_1 BuiltIn SampleMask
                OpMemberDecorate %FragmentInputs 0 Offset 0
                OpMemberDecorate %FragmentInputs 1 Offset 16
                OpMemberDecorate %FragmentInputs 2 Offset 20
@@ -30,39 +32,46 @@
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+ %position_1 = OpVariable %_ptr_Input_v4float Input
        %bool = OpTypeBool
 %_ptr_Input_bool = OpTypePointer Input %bool
-%tint_symbol_1 = OpVariable %_ptr_Input_bool Input
+%front_facing_1 = OpVariable %_ptr_Input_bool Input
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol_2 = OpVariable %_ptr_Input_uint Input
+%sample_index_1 = OpVariable %_ptr_Input_uint Input
      %uint_1 = OpConstant %uint 1
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
 %_ptr_Input__arr_uint_uint_1 = OpTypePointer Input %_arr_uint_uint_1
-%tint_symbol_3 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
+%sample_mask_1 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
        %void = OpTypeVoid
-         %15 = OpTypeFunction %void
 %FragmentInputs = OpTypeStruct %v4float %bool %uint %uint
+         %15 = OpTypeFunction %void %FragmentInputs
+         %28 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
-       %main = OpFunction %void None %15
-         %18 = OpLabel
-         %20 = OpLoad %v4float %tint_symbol
-         %21 = OpLoad %bool %tint_symbol_1
-         %22 = OpLoad %uint %tint_symbol_2
-         %25 = OpAccessChain %_ptr_Input_uint %tint_symbol_3 %int_0
-         %26 = OpLoad %uint %25
-         %27 = OpCompositeConstruct %FragmentInputs %20 %21 %22 %26
-         %28 = OpCompositeExtract %bool %27 1
-               OpSelectionMerge %29 None
-               OpBranchConditional %28 %30 %29
+ %main_inner = OpFunction %void None %15
+     %inputs = OpFunctionParameter %FragmentInputs
+         %20 = OpLabel
+         %21 = OpCompositeExtract %bool %inputs 1
+               OpSelectionMerge %22 None
+               OpBranchConditional %21 %23 %22
+         %23 = OpLabel
+         %24 = OpCompositeExtract %v4float %inputs 0
+         %25 = OpCompositeExtract %uint %inputs 2
+         %26 = OpCompositeExtract %uint %inputs 3
+         %27 = OpIAdd %uint %25 %26
+               OpBranch %22
+         %22 = OpLabel
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %28
          %30 = OpLabel
-         %31 = OpCompositeExtract %v4float %27 0
-         %32 = OpCompositeExtract %uint %27 2
-         %33 = OpCompositeExtract %uint %27 3
-         %34 = OpIAdd %uint %32 %33
-               OpBranch %29
-         %29 = OpLabel
+         %32 = OpLoad %v4float %position_1
+         %33 = OpLoad %bool %front_facing_1
+         %34 = OpLoad %uint %sample_index_1
+         %37 = OpAccessChain %_ptr_Input_uint %sample_mask_1 %int_0
+         %38 = OpLoad %uint %37
+         %39 = OpCompositeConstruct %FragmentInputs %32 %33 %34 %38
+         %31 = OpFunctionCall %void %main_inner %39
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/fragment_input_locations.wgsl.expected.spvasm b/test/shader_io/fragment_input_locations.wgsl.expected.spvasm
index 0d6f926..abc2d30 100644
--- a/test/shader_io/fragment_input_locations.wgsl.expected.spvasm
+++ b/test/shader_io/fragment_input_locations.wgsl.expected.spvasm
@@ -1,42 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 21
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3
+               OpEntryPoint Fragment %main "main" %loc0_1 %loc1_1 %loc2_1 %loc3_1
                OpExecutionMode %main OriginUpperLeft
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
+               OpName %loc0_1 "loc0_1"
+               OpName %loc1_1 "loc1_1"
+               OpName %loc2_1 "loc2_1"
+               OpName %loc3_1 "loc3_1"
+               OpName %main_inner "main_inner"
+               OpName %loc0 "loc0"
+               OpName %loc1 "loc1"
+               OpName %loc2 "loc2"
+               OpName %loc3 "loc3"
                OpName %main "main"
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol Flat
-               OpDecorate %tint_symbol_1 Location 1
-               OpDecorate %tint_symbol_1 Flat
-               OpDecorate %tint_symbol_2 Location 2
-               OpDecorate %tint_symbol_3 Location 3
+               OpDecorate %loc0_1 Location 0
+               OpDecorate %loc0_1 Flat
+               OpDecorate %loc1_1 Location 1
+               OpDecorate %loc1_1 Flat
+               OpDecorate %loc2_1 Location 2
+               OpDecorate %loc3_1 Location 3
         %int = OpTypeInt 32 1
 %_ptr_Input_int = OpTypePointer Input %int
-%tint_symbol = OpVariable %_ptr_Input_int Input
+     %loc0_1 = OpVariable %_ptr_Input_int Input
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol_1 = OpVariable %_ptr_Input_uint Input
+     %loc1_1 = OpVariable %_ptr_Input_uint Input
       %float = OpTypeFloat 32
 %_ptr_Input_float = OpTypePointer Input %float
-%tint_symbol_2 = OpVariable %_ptr_Input_float Input
+     %loc2_1 = OpVariable %_ptr_Input_float Input
     %v4float = OpTypeVector %float 4
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol_3 = OpVariable %_ptr_Input_v4float Input
+     %loc3_1 = OpVariable %_ptr_Input_v4float Input
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
-       %main = OpFunction %void None %13
-         %16 = OpLabel
-         %17 = OpLoad %int %tint_symbol
-         %18 = OpLoad %uint %tint_symbol_1
-         %19 = OpLoad %float %tint_symbol_2
-         %20 = OpLoad %v4float %tint_symbol_3
+         %13 = OpTypeFunction %void %int %uint %float %v4float
+         %21 = OpTypeFunction %void
+ %main_inner = OpFunction %void None %13
+       %loc0 = OpFunctionParameter %int
+       %loc1 = OpFunctionParameter %uint
+       %loc2 = OpFunctionParameter %float
+       %loc3 = OpFunctionParameter %v4float
+         %20 = OpLabel
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %21
+         %23 = OpLabel
+         %25 = OpLoad %int %loc0_1
+         %26 = OpLoad %uint %loc1_1
+         %27 = OpLoad %float %loc2_1
+         %28 = OpLoad %v4float %loc3_1
+         %24 = OpFunctionCall %void %main_inner %25 %26 %27 %28
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/fragment_input_locations_struct.wgsl.expected.spvasm b/test/shader_io/fragment_input_locations_struct.wgsl.expected.spvasm
index 8f22d6c..491a34f 100644
--- a/test/shader_io/fragment_input_locations_struct.wgsl.expected.spvasm
+++ b/test/shader_io/fragment_input_locations_struct.wgsl.expected.spvasm
@@ -1,57 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 27
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3
+               OpEntryPoint Fragment %main "main" %loc0_1 %loc1_1 %loc2_1 %loc3_1
                OpExecutionMode %main OriginUpperLeft
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %main "main"
+               OpName %loc0_1 "loc0_1"
+               OpName %loc1_1 "loc1_1"
+               OpName %loc2_1 "loc2_1"
+               OpName %loc3_1 "loc3_1"
                OpName %FragmentInputs "FragmentInputs"
                OpMemberName %FragmentInputs 0 "loc0"
                OpMemberName %FragmentInputs 1 "loc1"
                OpMemberName %FragmentInputs 2 "loc2"
                OpMemberName %FragmentInputs 3 "loc3"
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol Flat
-               OpDecorate %tint_symbol_1 Location 1
-               OpDecorate %tint_symbol_1 Flat
-               OpDecorate %tint_symbol_2 Location 2
-               OpDecorate %tint_symbol_3 Location 3
+               OpName %main_inner "main_inner"
+               OpName %inputs "inputs"
+               OpName %main "main"
+               OpDecorate %loc0_1 Location 0
+               OpDecorate %loc0_1 Flat
+               OpDecorate %loc1_1 Location 1
+               OpDecorate %loc1_1 Flat
+               OpDecorate %loc2_1 Location 2
+               OpDecorate %loc3_1 Location 3
                OpMemberDecorate %FragmentInputs 0 Offset 0
                OpMemberDecorate %FragmentInputs 1 Offset 4
                OpMemberDecorate %FragmentInputs 2 Offset 8
                OpMemberDecorate %FragmentInputs 3 Offset 16
         %int = OpTypeInt 32 1
 %_ptr_Input_int = OpTypePointer Input %int
-%tint_symbol = OpVariable %_ptr_Input_int Input
+     %loc0_1 = OpVariable %_ptr_Input_int Input
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol_1 = OpVariable %_ptr_Input_uint Input
+     %loc1_1 = OpVariable %_ptr_Input_uint Input
       %float = OpTypeFloat 32
 %_ptr_Input_float = OpTypePointer Input %float
-%tint_symbol_2 = OpVariable %_ptr_Input_float Input
+     %loc2_1 = OpVariable %_ptr_Input_float Input
     %v4float = OpTypeVector %float 4
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol_3 = OpVariable %_ptr_Input_v4float Input
+     %loc3_1 = OpVariable %_ptr_Input_v4float Input
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
 %FragmentInputs = OpTypeStruct %int %uint %float %v4float
-       %main = OpFunction %void None %13
-         %16 = OpLabel
-         %18 = OpLoad %int %tint_symbol
-         %19 = OpLoad %uint %tint_symbol_1
-         %20 = OpLoad %float %tint_symbol_2
-         %21 = OpLoad %v4float %tint_symbol_3
-         %22 = OpCompositeConstruct %FragmentInputs %18 %19 %20 %21
-         %23 = OpCompositeExtract %int %22 0
-         %24 = OpCompositeExtract %uint %22 1
-         %25 = OpCompositeExtract %float %22 2
-         %26 = OpCompositeExtract %v4float %22 3
+         %13 = OpTypeFunction %void %FragmentInputs
+         %23 = OpTypeFunction %void
+ %main_inner = OpFunction %void None %13
+     %inputs = OpFunctionParameter %FragmentInputs
+         %18 = OpLabel
+         %19 = OpCompositeExtract %int %inputs 0
+         %20 = OpCompositeExtract %uint %inputs 1
+         %21 = OpCompositeExtract %float %inputs 2
+         %22 = OpCompositeExtract %v4float %inputs 3
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %23
+         %25 = OpLabel
+         %27 = OpLoad %int %loc0_1
+         %28 = OpLoad %uint %loc1_1
+         %29 = OpLoad %float %loc2_1
+         %30 = OpLoad %v4float %loc3_1
+         %31 = OpCompositeConstruct %FragmentInputs %27 %28 %29 %30
+         %26 = OpFunctionCall %void %main_inner %31
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/fragment_input_mixed.wgsl.expected.spvasm b/test/shader_io/fragment_input_mixed.wgsl.expected.spvasm
index 2bdd515..d312bcf 100644
--- a/test/shader_io/fragment_input_mixed.wgsl.expected.spvasm
+++ b/test/shader_io/fragment_input_mixed.wgsl.expected.spvasm
@@ -1,39 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 57
 ; Schema: 0
                OpCapability Shader
                OpCapability SampleRateShading
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_6 %tint_symbol_7 %tint_symbol_3 %tint_symbol_5 %tint_symbol_4 %tint_symbol_9
+               OpEntryPoint Fragment %main "main" %position_1 %loc0_1 %front_facing_1 %loc1_1 %sample_index_1 %loc3_1 %sample_mask_1 %loc2_1
                OpExecutionMode %main OriginUpperLeft
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_6 "tint_symbol_6"
-               OpName %tint_symbol_7 "tint_symbol_7"
-               OpName %tint_symbol_9 "tint_symbol_9"
-               OpName %main "main"
+               OpName %position_1 "position_1"
+               OpName %loc0_1 "loc0_1"
+               OpName %front_facing_1 "front_facing_1"
+               OpName %loc1_1 "loc1_1"
+               OpName %sample_index_1 "sample_index_1"
+               OpName %loc3_1 "loc3_1"
+               OpName %sample_mask_1 "sample_mask_1"
+               OpName %loc2_1 "loc2_1"
                OpName %FragmentInputs0 "FragmentInputs0"
                OpMemberName %FragmentInputs0 0 "position"
                OpMemberName %FragmentInputs0 1 "loc0"
                OpName %FragmentInputs1 "FragmentInputs1"
                OpMemberName %FragmentInputs1 0 "loc3"
                OpMemberName %FragmentInputs1 1 "sample_mask"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_1 Flat
-               OpDecorate %tint_symbol_3 BuiltIn FrontFacing
-               OpDecorate %tint_symbol_4 Location 1
-               OpDecorate %tint_symbol_4 Flat
-               OpDecorate %tint_symbol_5 BuiltIn SampleId
-               OpDecorate %tint_symbol_6 Location 3
+               OpName %main_inner "main_inner"
+               OpName %inputs0 "inputs0"
+               OpName %front_facing "front_facing"
+               OpName %loc1 "loc1"
+               OpName %sample_index "sample_index"
+               OpName %inputs1 "inputs1"
+               OpName %loc2 "loc2"
+               OpName %main "main"
+               OpDecorate %position_1 BuiltIn FragCoord
+               OpDecorate %loc0_1 Location 0
+               OpDecorate %loc0_1 Flat
+               OpDecorate %front_facing_1 BuiltIn FrontFacing
+               OpDecorate %loc1_1 Location 1
+               OpDecorate %loc1_1 Flat
+               OpDecorate %sample_index_1 BuiltIn SampleId
+               OpDecorate %loc3_1 Location 3
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol_7 BuiltIn SampleMask
-               OpDecorate %tint_symbol_9 Location 2
+               OpDecorate %sample_mask_1 BuiltIn SampleMask
+               OpDecorate %loc2_1 Location 2
                OpMemberDecorate %FragmentInputs0 0 Offset 0
                OpMemberDecorate %FragmentInputs0 1 Offset 16
                OpMemberDecorate %FragmentInputs1 0 Offset 0
@@ -41,51 +48,63 @@
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+ %position_1 = OpVariable %_ptr_Input_v4float Input
         %int = OpTypeInt 32 1
 %_ptr_Input_int = OpTypePointer Input %int
-%tint_symbol_1 = OpVariable %_ptr_Input_int Input
+     %loc0_1 = OpVariable %_ptr_Input_int Input
        %bool = OpTypeBool
 %_ptr_Input_bool = OpTypePointer Input %bool
-%tint_symbol_3 = OpVariable %_ptr_Input_bool Input
+%front_facing_1 = OpVariable %_ptr_Input_bool Input
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol_4 = OpVariable %_ptr_Input_uint Input
-%tint_symbol_5 = OpVariable %_ptr_Input_uint Input
-%tint_symbol_6 = OpVariable %_ptr_Input_v4float Input
+     %loc1_1 = OpVariable %_ptr_Input_uint Input
+%sample_index_1 = OpVariable %_ptr_Input_uint Input
+     %loc3_1 = OpVariable %_ptr_Input_v4float Input
      %uint_1 = OpConstant %uint 1
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
 %_ptr_Input__arr_uint_uint_1 = OpTypePointer Input %_arr_uint_uint_1
-%tint_symbol_7 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
+%sample_mask_1 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
 %_ptr_Input_float = OpTypePointer Input %float
-%tint_symbol_9 = OpVariable %_ptr_Input_float Input
+     %loc2_1 = OpVariable %_ptr_Input_float Input
        %void = OpTypeVoid
-         %22 = OpTypeFunction %void
 %FragmentInputs0 = OpTypeStruct %v4float %int
 %FragmentInputs1 = OpTypeStruct %v4float %uint
+         %22 = OpTypeFunction %void %FragmentInputs0 %bool %uint %uint %FragmentInputs1 %float
+         %41 = OpTypeFunction %void
       %int_0 = OpConstant %int 0
-       %main = OpFunction %void None %22
-         %25 = OpLabel
-         %27 = OpLoad %v4float %tint_symbol
-         %28 = OpLoad %int %tint_symbol_1
-         %29 = OpCompositeConstruct %FragmentInputs0 %27 %28
-         %31 = OpLoad %v4float %tint_symbol_6
-         %33 = OpAccessChain %_ptr_Input_uint %tint_symbol_7 %int_0
-         %34 = OpLoad %uint %33
-         %35 = OpCompositeConstruct %FragmentInputs1 %31 %34
-         %36 = OpLoad %bool %tint_symbol_3
-               OpSelectionMerge %37 None
-               OpBranchConditional %36 %38 %37
-         %38 = OpLabel
-         %39 = OpCompositeExtract %v4float %29 0
-         %40 = OpLoad %uint %tint_symbol_5
-         %41 = OpCompositeExtract %uint %35 1
-         %42 = OpIAdd %uint %40 %41
-         %43 = OpCompositeExtract %int %29 1
-         %44 = OpLoad %uint %tint_symbol_4
-         %45 = OpLoad %float %tint_symbol_9
-         %46 = OpCompositeExtract %v4float %35 0
-               OpBranch %37
-         %37 = OpLabel
+ %main_inner = OpFunction %void None %22
+    %inputs0 = OpFunctionParameter %FragmentInputs0
+%front_facing = OpFunctionParameter %bool
+       %loc1 = OpFunctionParameter %uint
+%sample_index = OpFunctionParameter %uint
+    %inputs1 = OpFunctionParameter %FragmentInputs1
+       %loc2 = OpFunctionParameter %float
+         %33 = OpLabel
+               OpSelectionMerge %34 None
+               OpBranchConditional %front_facing %35 %34
+         %35 = OpLabel
+         %36 = OpCompositeExtract %v4float %inputs0 0
+         %37 = OpCompositeExtract %uint %inputs1 1
+         %38 = OpIAdd %uint %sample_index %37
+         %39 = OpCompositeExtract %int %inputs0 1
+         %40 = OpCompositeExtract %v4float %inputs1 0
+               OpBranch %34
+         %34 = OpLabel
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %41
+         %43 = OpLabel
+         %45 = OpLoad %v4float %position_1
+         %46 = OpLoad %int %loc0_1
+         %47 = OpCompositeConstruct %FragmentInputs0 %45 %46
+         %48 = OpLoad %bool %front_facing_1
+         %49 = OpLoad %uint %loc1_1
+         %50 = OpLoad %uint %sample_index_1
+         %51 = OpLoad %v4float %loc3_1
+         %53 = OpAccessChain %_ptr_Input_uint %sample_mask_1 %int_0
+         %54 = OpLoad %uint %53
+         %55 = OpCompositeConstruct %FragmentInputs1 %51 %54
+         %56 = OpLoad %float %loc2_1
+         %44 = OpFunctionCall %void %main_inner %47 %48 %49 %50 %55 %56
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/fragment_output_builtins.wgsl.expected.spvasm b/test/shader_io/fragment_output_builtins.wgsl.expected.spvasm
index cf60151..7eb37e0 100644
--- a/test/shader_io/fragment_output_builtins.wgsl.expected.spvasm
+++ b/test/shader_io/fragment_output_builtins.wgsl.expected.spvasm
@@ -1,64 +1,60 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main1 "main1" %tint_symbol_1
-               OpEntryPoint Fragment %main2 "main2" %tint_symbol_4
+               OpEntryPoint Fragment %main1 "main1" %value
+               OpEntryPoint Fragment %main2 "main2" %value_1
                OpExecutionMode %main1 OriginUpperLeft
                OpExecutionMode %main1 DepthReplacing
                OpExecutionMode %main2 OriginUpperLeft
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %value "value"
+               OpName %value_1 "value_1"
+               OpName %main1_inner "main1_inner"
                OpName %main1 "main1"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_3 "tint_symbol_3"
+               OpName %main2_inner "main2_inner"
                OpName %main2 "main2"
-               OpDecorate %tint_symbol_1 BuiltIn FragDepth
+               OpDecorate %value BuiltIn FragDepth
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol_4 BuiltIn SampleMask
+               OpDecorate %value_1 BuiltIn SampleMask
       %float = OpTypeFloat 32
 %_ptr_Output_float = OpTypePointer Output %float
           %4 = OpConstantNull %float
-%tint_symbol_1 = OpVariable %_ptr_Output_float Output %4
+      %value = OpVariable %_ptr_Output_float Output %4
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
 %_ptr_Output__arr_uint_uint_1 = OpTypePointer Output %_arr_uint_uint_1
          %10 = OpConstantNull %_arr_uint_uint_1
-%tint_symbol_4 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %10
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void %float
-         %16 = OpTypeFunction %void
+    %value_1 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %10
+         %11 = OpTypeFunction %float
     %float_1 = OpConstant %float 1
-         %21 = OpTypeFunction %void %uint
+       %void = OpTypeVoid
+         %15 = OpTypeFunction %void
+         %20 = OpTypeFunction %uint
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Output_uint = OpTypePointer Output %uint
-%tint_symbol_2 = OpFunction %void None %11
-%tint_symbol = OpFunctionParameter %float
-         %15 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+%main1_inner = OpFunction %float None %11
+         %13 = OpLabel
+               OpReturnValue %float_1
                OpFunctionEnd
-      %main1 = OpFunction %void None %16
+      %main1 = OpFunction %void None %15
          %18 = OpLabel
-         %19 = OpFunctionCall %void %tint_symbol_2 %float_1
+         %19 = OpFunctionCall %float %main1_inner
+               OpStore %value %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_5 = OpFunction %void None %21
-%tint_symbol_3 = OpFunctionParameter %uint
+%main2_inner = OpFunction %uint None %20
+         %22 = OpLabel
+               OpReturnValue %uint_1
+               OpFunctionEnd
+      %main2 = OpFunction %void None %15
          %24 = OpLabel
-         %28 = OpAccessChain %_ptr_Output_uint %tint_symbol_4 %int_0
-               OpStore %28 %tint_symbol_3
-               OpReturn
-               OpFunctionEnd
-      %main2 = OpFunction %void None %16
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %tint_symbol_5 %uint_1
+         %25 = OpFunctionCall %uint %main2_inner
+         %29 = OpAccessChain %_ptr_Output_uint %value_1 %int_0
+               OpStore %29 %25
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/fragment_output_builtins_struct.wgsl.expected.spvasm b/test/shader_io/fragment_output_builtins_struct.wgsl.expected.spvasm
index 45f416d..b431551 100644
--- a/test/shader_io/fragment_output_builtins_struct.wgsl.expected.spvasm
+++ b/test/shader_io/fragment_output_builtins_struct.wgsl.expected.spvasm
@@ -1,57 +1,55 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %frag_depth_1 %sample_mask_1
                OpExecutionMode %main OriginUpperLeft
                OpExecutionMode %main DepthReplacing
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
+               OpName %frag_depth_1 "frag_depth_1"
+               OpName %sample_mask_1 "sample_mask_1"
                OpName %FragmentOutputs "FragmentOutputs"
                OpMemberName %FragmentOutputs 0 "frag_depth"
                OpMemberName %FragmentOutputs 1 "sample_mask"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 BuiltIn FragDepth
+               OpDecorate %frag_depth_1 BuiltIn FragDepth
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol_2 BuiltIn SampleMask
+               OpDecorate %sample_mask_1 BuiltIn SampleMask
                OpMemberDecorate %FragmentOutputs 0 Offset 0
                OpMemberDecorate %FragmentOutputs 1 Offset 4
       %float = OpTypeFloat 32
 %_ptr_Output_float = OpTypePointer Output %float
           %4 = OpConstantNull %float
-%tint_symbol_1 = OpVariable %_ptr_Output_float Output %4
+%frag_depth_1 = OpVariable %_ptr_Output_float Output %4
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
 %_ptr_Output__arr_uint_uint_1 = OpTypePointer Output %_arr_uint_uint_1
          %10 = OpConstantNull %_arr_uint_uint_1
-%tint_symbol_2 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %10
-       %void = OpTypeVoid
+%sample_mask_1 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %10
 %FragmentOutputs = OpTypeStruct %float %uint
-         %11 = OpTypeFunction %void %FragmentOutputs
+         %11 = OpTypeFunction %FragmentOutputs
+    %float_1 = OpConstant %float 1
+         %16 = OpConstantComposite %FragmentOutputs %float_1 %uint_1
+       %void = OpTypeVoid
+         %17 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Output_uint = OpTypePointer Output %uint
-         %23 = OpTypeFunction %void
-    %float_1 = OpConstant %float 1
-         %28 = OpConstantComposite %FragmentOutputs %float_1 %uint_1
-%tint_symbol_3 = OpFunction %void None %11
-%tint_symbol = OpFunctionParameter %FragmentOutputs
-         %16 = OpLabel
-         %17 = OpCompositeExtract %float %tint_symbol 0
-               OpStore %tint_symbol_1 %17
-         %21 = OpAccessChain %_ptr_Output_uint %tint_symbol_2 %int_0
-         %22 = OpCompositeExtract %uint %tint_symbol 1
-               OpStore %21 %22
-               OpReturn
+ %main_inner = OpFunction %FragmentOutputs None %11
+         %14 = OpLabel
+               OpReturnValue %16
                OpFunctionEnd
-       %main = OpFunction %void None %23
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %tint_symbol_3 %28
+       %main = OpFunction %void None %17
+         %20 = OpLabel
+         %21 = OpFunctionCall %FragmentOutputs %main_inner
+         %22 = OpCompositeExtract %float %21 0
+               OpStore %frag_depth_1 %22
+         %26 = OpAccessChain %_ptr_Output_uint %sample_mask_1 %int_0
+         %27 = OpCompositeExtract %uint %21 1
+               OpStore %26 %27
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/fragment_output_locations.wgsl.expected.spvasm b/test/shader_io/fragment_output_locations.wgsl.expected.spvasm
index ef873b5..8ac79ea 100644
--- a/test/shader_io/fragment_output_locations.wgsl.expected.spvasm
+++ b/test/shader_io/fragment_output_locations.wgsl.expected.spvasm
@@ -1,108 +1,100 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main0 "main0" %tint_symbol_1
-               OpEntryPoint Fragment %main1 "main1" %tint_symbol_4
-               OpEntryPoint Fragment %main2 "main2" %tint_symbol_7
-               OpEntryPoint Fragment %main3 "main3" %tint_symbol_10
+               OpEntryPoint Fragment %main0 "main0" %value
+               OpEntryPoint Fragment %main1 "main1" %value_1
+               OpEntryPoint Fragment %main2 "main2" %value_2
+               OpEntryPoint Fragment %main3 "main3" %value_3
                OpExecutionMode %main0 OriginUpperLeft
                OpExecutionMode %main1 OriginUpperLeft
                OpExecutionMode %main2 OriginUpperLeft
                OpExecutionMode %main3 OriginUpperLeft
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_7 "tint_symbol_7"
-               OpName %tint_symbol_10 "tint_symbol_10"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %value "value"
+               OpName %value_1 "value_1"
+               OpName %value_2 "value_2"
+               OpName %value_3 "value_3"
+               OpName %main0_inner "main0_inner"
                OpName %main0 "main0"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_3 "tint_symbol_3"
+               OpName %main1_inner "main1_inner"
                OpName %main1 "main1"
-               OpName %tint_symbol_8 "tint_symbol_8"
-               OpName %tint_symbol_6 "tint_symbol_6"
+               OpName %main2_inner "main2_inner"
                OpName %main2 "main2"
-               OpName %tint_symbol_11 "tint_symbol_11"
-               OpName %tint_symbol_9 "tint_symbol_9"
+               OpName %main3_inner "main3_inner"
                OpName %main3 "main3"
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_4 Location 1
-               OpDecorate %tint_symbol_7 Location 2
-               OpDecorate %tint_symbol_10 Location 3
+               OpDecorate %value Location 0
+               OpDecorate %value_1 Location 1
+               OpDecorate %value_2 Location 2
+               OpDecorate %value_3 Location 3
         %int = OpTypeInt 32 1
 %_ptr_Output_int = OpTypePointer Output %int
           %4 = OpConstantNull %int
-%tint_symbol_1 = OpVariable %_ptr_Output_int Output %4
+      %value = OpVariable %_ptr_Output_int Output %4
        %uint = OpTypeInt 32 0
 %_ptr_Output_uint = OpTypePointer Output %uint
           %8 = OpConstantNull %uint
-%tint_symbol_4 = OpVariable %_ptr_Output_uint Output %8
+    %value_1 = OpVariable %_ptr_Output_uint Output %8
       %float = OpTypeFloat 32
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
-%tint_symbol_7 = OpVariable %_ptr_Output_float Output %12
+    %value_2 = OpVariable %_ptr_Output_float Output %12
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
          %16 = OpConstantNull %v4float
-%tint_symbol_10 = OpVariable %_ptr_Output_v4float Output %16
-       %void = OpTypeVoid
-         %17 = OpTypeFunction %void %int
-         %22 = OpTypeFunction %void
+    %value_3 = OpVariable %_ptr_Output_v4float Output %16
+         %17 = OpTypeFunction %int
       %int_1 = OpConstant %int 1
-         %27 = OpTypeFunction %void %uint
+       %void = OpTypeVoid
+         %21 = OpTypeFunction %void
+         %26 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
-         %35 = OpTypeFunction %void %float
+         %33 = OpTypeFunction %float
     %float_1 = OpConstant %float 1
-         %43 = OpTypeFunction %void %v4float
+         %40 = OpTypeFunction %v4float
     %float_2 = OpConstant %float 2
     %float_3 = OpConstant %float 3
     %float_4 = OpConstant %float 4
-         %53 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %int
-         %21 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+         %46 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
+%main0_inner = OpFunction %int None %17
+         %19 = OpLabel
+               OpReturnValue %int_1
                OpFunctionEnd
-      %main0 = OpFunction %void None %22
+      %main0 = OpFunction %void None %21
          %24 = OpLabel
-         %25 = OpFunctionCall %void %tint_symbol_2 %int_1
+         %25 = OpFunctionCall %int %main0_inner
+               OpStore %value %25
                OpReturn
                OpFunctionEnd
-%tint_symbol_5 = OpFunction %void None %27
-%tint_symbol_3 = OpFunctionParameter %uint
-         %30 = OpLabel
-               OpStore %tint_symbol_4 %tint_symbol_3
+%main1_inner = OpFunction %uint None %26
+         %28 = OpLabel
+               OpReturnValue %uint_1
+               OpFunctionEnd
+      %main1 = OpFunction %void None %21
+         %31 = OpLabel
+         %32 = OpFunctionCall %uint %main1_inner
+               OpStore %value_1 %32
                OpReturn
                OpFunctionEnd
-      %main1 = OpFunction %void None %22
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %tint_symbol_5 %uint_1
-               OpReturn
+%main2_inner = OpFunction %float None %33
+         %35 = OpLabel
+               OpReturnValue %float_1
                OpFunctionEnd
-%tint_symbol_8 = OpFunction %void None %35
-%tint_symbol_6 = OpFunctionParameter %float
+      %main2 = OpFunction %void None %21
          %38 = OpLabel
-               OpStore %tint_symbol_7 %tint_symbol_6
+         %39 = OpFunctionCall %float %main2_inner
+               OpStore %value_2 %39
                OpReturn
                OpFunctionEnd
-      %main2 = OpFunction %void None %22
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %tint_symbol_8 %float_1
-               OpReturn
+%main3_inner = OpFunction %v4float None %40
+         %42 = OpLabel
+               OpReturnValue %46
                OpFunctionEnd
-%tint_symbol_11 = OpFunction %void None %43
-%tint_symbol_9 = OpFunctionParameter %v4float
-         %46 = OpLabel
-               OpStore %tint_symbol_10 %tint_symbol_9
-               OpReturn
-               OpFunctionEnd
-      %main3 = OpFunction %void None %22
+      %main3 = OpFunction %void None %21
          %48 = OpLabel
-         %49 = OpFunctionCall %void %tint_symbol_11 %53
+         %49 = OpFunctionCall %v4float %main3_inner
+               OpStore %value_3 %49
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/fragment_output_locations_struct.wgsl.expected.spvasm b/test/shader_io/fragment_output_locations_struct.wgsl.expected.spvasm
index 9ad60b7..ee9e16b 100644
--- a/test/shader_io/fragment_output_locations_struct.wgsl.expected.spvasm
+++ b/test/shader_io/fragment_output_locations_struct.wgsl.expected.spvasm
@@ -1,28 +1,27 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4
+               OpEntryPoint Fragment %main "main" %loc0_1 %loc1_1 %loc2_1 %loc3_1
                OpExecutionMode %main OriginUpperLeft
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
+               OpName %loc0_1 "loc0_1"
+               OpName %loc1_1 "loc1_1"
+               OpName %loc2_1 "loc2_1"
+               OpName %loc3_1 "loc3_1"
                OpName %FragmentOutputs "FragmentOutputs"
                OpMemberName %FragmentOutputs 0 "loc0"
                OpMemberName %FragmentOutputs 1 "loc1"
                OpMemberName %FragmentOutputs 2 "loc2"
                OpMemberName %FragmentOutputs 3 "loc3"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_2 Location 1
-               OpDecorate %tint_symbol_3 Location 2
-               OpDecorate %tint_symbol_4 Location 3
+               OpDecorate %loc0_1 Location 0
+               OpDecorate %loc1_1 Location 1
+               OpDecorate %loc2_1 Location 2
+               OpDecorate %loc3_1 Location 3
                OpMemberDecorate %FragmentOutputs 0 Offset 0
                OpMemberDecorate %FragmentOutputs 1 Offset 4
                OpMemberDecorate %FragmentOutputs 2 Offset 8
@@ -30,46 +29,45 @@
         %int = OpTypeInt 32 1
 %_ptr_Output_int = OpTypePointer Output %int
           %4 = OpConstantNull %int
-%tint_symbol_1 = OpVariable %_ptr_Output_int Output %4
+     %loc0_1 = OpVariable %_ptr_Output_int Output %4
        %uint = OpTypeInt 32 0
 %_ptr_Output_uint = OpTypePointer Output %uint
           %8 = OpConstantNull %uint
-%tint_symbol_2 = OpVariable %_ptr_Output_uint Output %8
+     %loc1_1 = OpVariable %_ptr_Output_uint Output %8
       %float = OpTypeFloat 32
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
-%tint_symbol_3 = OpVariable %_ptr_Output_float Output %12
+     %loc2_1 = OpVariable %_ptr_Output_float Output %12
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
          %16 = OpConstantNull %v4float
-%tint_symbol_4 = OpVariable %_ptr_Output_v4float Output %16
-       %void = OpTypeVoid
+     %loc3_1 = OpVariable %_ptr_Output_v4float Output %16
 %FragmentOutputs = OpTypeStruct %int %uint %float %v4float
-         %17 = OpTypeFunction %void %FragmentOutputs
-         %27 = OpTypeFunction %void
+         %17 = OpTypeFunction %FragmentOutputs
       %int_1 = OpConstant %int 1
      %uint_1 = OpConstant %uint 1
     %float_1 = OpConstant %float 1
     %float_2 = OpConstant %float 2
     %float_3 = OpConstant %float 3
     %float_4 = OpConstant %float 4
-         %37 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
-         %38 = OpConstantComposite %FragmentOutputs %int_1 %uint_1 %float_1 %37
-%tint_symbol_5 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %FragmentOutputs
-         %22 = OpLabel
-         %23 = OpCompositeExtract %int %tint_symbol 0
-               OpStore %tint_symbol_1 %23
-         %24 = OpCompositeExtract %uint %tint_symbol 1
-               OpStore %tint_symbol_2 %24
-         %25 = OpCompositeExtract %float %tint_symbol 2
-               OpStore %tint_symbol_3 %25
-         %26 = OpCompositeExtract %v4float %tint_symbol 3
-               OpStore %tint_symbol_4 %26
-               OpReturn
+         %27 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
+         %28 = OpConstantComposite %FragmentOutputs %int_1 %uint_1 %float_1 %27
+       %void = OpTypeVoid
+         %29 = OpTypeFunction %void
+ %main_inner = OpFunction %FragmentOutputs None %17
+         %20 = OpLabel
+               OpReturnValue %28
                OpFunctionEnd
-       %main = OpFunction %void None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %tint_symbol_5 %38
+       %main = OpFunction %void None %29
+         %32 = OpLabel
+         %33 = OpFunctionCall %FragmentOutputs %main_inner
+         %34 = OpCompositeExtract %int %33 0
+               OpStore %loc0_1 %34
+         %35 = OpCompositeExtract %uint %33 1
+               OpStore %loc1_1 %35
+         %36 = OpCompositeExtract %float %33 2
+               OpStore %loc2_1 %36
+         %37 = OpCompositeExtract %v4float %33 3
+               OpStore %loc3_1 %37
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/fragment_output_mixed.wgsl.expected.spvasm b/test/shader_io/fragment_output_mixed.wgsl.expected.spvasm
index 164fdf0..4002fe6 100644
--- a/test/shader_io/fragment_output_mixed.wgsl.expected.spvasm
+++ b/test/shader_io/fragment_output_mixed.wgsl.expected.spvasm
@@ -1,19 +1,19 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4 %tint_symbol_5 %tint_symbol_6
+               OpEntryPoint Fragment %main "main" %loc0_1 %frag_depth_1 %loc1_1 %loc2_1 %sample_mask_1 %loc3_1
                OpExecutionMode %main OriginUpperLeft
                OpExecutionMode %main DepthReplacing
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_6 "tint_symbol_6"
+               OpName %loc0_1 "loc0_1"
+               OpName %frag_depth_1 "frag_depth_1"
+               OpName %loc1_1 "loc1_1"
+               OpName %loc2_1 "loc2_1"
+               OpName %sample_mask_1 "sample_mask_1"
+               OpName %loc3_1 "loc3_1"
                OpName %FragmentOutputs "FragmentOutputs"
                OpMemberName %FragmentOutputs 0 "loc0"
                OpMemberName %FragmentOutputs 1 "frag_depth"
@@ -21,16 +21,15 @@
                OpMemberName %FragmentOutputs 3 "loc2"
                OpMemberName %FragmentOutputs 4 "sample_mask"
                OpMemberName %FragmentOutputs 5 "loc3"
-               OpName %tint_symbol_7 "tint_symbol_7"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_2 BuiltIn FragDepth
-               OpDecorate %tint_symbol_3 Location 1
-               OpDecorate %tint_symbol_4 Location 2
+               OpDecorate %loc0_1 Location 0
+               OpDecorate %frag_depth_1 BuiltIn FragDepth
+               OpDecorate %loc1_1 Location 1
+               OpDecorate %loc2_1 Location 2
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol_5 BuiltIn SampleMask
-               OpDecorate %tint_symbol_6 Location 3
+               OpDecorate %sample_mask_1 BuiltIn SampleMask
+               OpDecorate %loc3_1 Location 3
                OpMemberDecorate %FragmentOutputs 0 Offset 0
                OpMemberDecorate %FragmentOutputs 1 Offset 4
                OpMemberDecorate %FragmentOutputs 2 Offset 8
@@ -40,58 +39,57 @@
         %int = OpTypeInt 32 1
 %_ptr_Output_int = OpTypePointer Output %int
           %4 = OpConstantNull %int
-%tint_symbol_1 = OpVariable %_ptr_Output_int Output %4
+     %loc0_1 = OpVariable %_ptr_Output_int Output %4
       %float = OpTypeFloat 32
 %_ptr_Output_float = OpTypePointer Output %float
           %8 = OpConstantNull %float
-%tint_symbol_2 = OpVariable %_ptr_Output_float Output %8
+%frag_depth_1 = OpVariable %_ptr_Output_float Output %8
        %uint = OpTypeInt 32 0
 %_ptr_Output_uint = OpTypePointer Output %uint
          %12 = OpConstantNull %uint
-%tint_symbol_3 = OpVariable %_ptr_Output_uint Output %12
-%tint_symbol_4 = OpVariable %_ptr_Output_float Output %8
+     %loc1_1 = OpVariable %_ptr_Output_uint Output %12
+     %loc2_1 = OpVariable %_ptr_Output_float Output %8
      %uint_1 = OpConstant %uint 1
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
 %_ptr_Output__arr_uint_uint_1 = OpTypePointer Output %_arr_uint_uint_1
          %18 = OpConstantNull %_arr_uint_uint_1
-%tint_symbol_5 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %18
+%sample_mask_1 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %18
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
          %22 = OpConstantNull %v4float
-%tint_symbol_6 = OpVariable %_ptr_Output_v4float Output %22
-       %void = OpTypeVoid
+     %loc3_1 = OpVariable %_ptr_Output_v4float Output %22
 %FragmentOutputs = OpTypeStruct %int %float %uint %float %uint %v4float
-         %23 = OpTypeFunction %void %FragmentOutputs
-      %int_0 = OpConstant %int 0
-         %37 = OpTypeFunction %void
+         %23 = OpTypeFunction %FragmentOutputs
       %int_1 = OpConstant %int 1
     %float_2 = OpConstant %float 2
     %float_1 = OpConstant %float 1
      %uint_2 = OpConstant %uint 2
     %float_3 = OpConstant %float 3
     %float_4 = OpConstant %float 4
-         %47 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
-         %48 = OpConstantComposite %FragmentOutputs %int_1 %float_2 %uint_1 %float_1 %uint_2 %47
-%tint_symbol_7 = OpFunction %void None %23
-%tint_symbol = OpFunctionParameter %FragmentOutputs
-         %28 = OpLabel
-         %29 = OpCompositeExtract %int %tint_symbol 0
-               OpStore %tint_symbol_1 %29
-         %30 = OpCompositeExtract %float %tint_symbol 1
-               OpStore %tint_symbol_2 %30
-         %31 = OpCompositeExtract %uint %tint_symbol 2
-               OpStore %tint_symbol_3 %31
-         %32 = OpCompositeExtract %float %tint_symbol 3
-               OpStore %tint_symbol_4 %32
-         %34 = OpAccessChain %_ptr_Output_uint %tint_symbol_5 %int_0
-         %35 = OpCompositeExtract %uint %tint_symbol 4
-               OpStore %34 %35
-         %36 = OpCompositeExtract %v4float %tint_symbol 5
-               OpStore %tint_symbol_6 %36
-               OpReturn
+         %33 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
+         %34 = OpConstantComposite %FragmentOutputs %int_1 %float_2 %uint_1 %float_1 %uint_2 %33
+       %void = OpTypeVoid
+         %35 = OpTypeFunction %void
+      %int_0 = OpConstant %int 0
+ %main_inner = OpFunction %FragmentOutputs None %23
+         %26 = OpLabel
+               OpReturnValue %34
                OpFunctionEnd
-       %main = OpFunction %void None %37
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %tint_symbol_7 %48
+       %main = OpFunction %void None %35
+         %38 = OpLabel
+         %39 = OpFunctionCall %FragmentOutputs %main_inner
+         %40 = OpCompositeExtract %int %39 0
+               OpStore %loc0_1 %40
+         %41 = OpCompositeExtract %float %39 1
+               OpStore %frag_depth_1 %41
+         %42 = OpCompositeExtract %uint %39 2
+               OpStore %loc1_1 %42
+         %43 = OpCompositeExtract %float %39 3
+               OpStore %loc2_1 %43
+         %45 = OpAccessChain %_ptr_Output_uint %sample_mask_1 %int_0
+         %46 = OpCompositeExtract %uint %39 4
+               OpStore %45 %46
+         %47 = OpCompositeExtract %v4float %39 5
+               OpStore %loc3_1 %47
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/interpolate_input_parameters.wgsl.expected.spvasm b/test/shader_io/interpolate_input_parameters.wgsl.expected.spvasm
index 5b0348f..9e2378a 100644
--- a/test/shader_io/interpolate_input_parameters.wgsl.expected.spvasm
+++ b/test/shader_io/interpolate_input_parameters.wgsl.expected.spvasm
@@ -1,51 +1,82 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 15
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpCapability SampleRateShading
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main"
+               OpEntryPoint Fragment %main "main" %none_1 %flat_1 %perspective_center_1 %perspective_centroid_1 %perspective_sample_1 %linear_center_1 %linear_centroid_1 %linear_sample_1
                OpExecutionMode %main OriginUpperLeft
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_6 "tint_symbol_6"
-               OpName %tint_symbol_7 "tint_symbol_7"
+               OpName %none_1 "none_1"
+               OpName %flat_1 "flat_1"
+               OpName %perspective_center_1 "perspective_center_1"
+               OpName %perspective_centroid_1 "perspective_centroid_1"
+               OpName %perspective_sample_1 "perspective_sample_1"
+               OpName %linear_center_1 "linear_center_1"
+               OpName %linear_centroid_1 "linear_centroid_1"
+               OpName %linear_sample_1 "linear_sample_1"
+               OpName %main_inner "main_inner"
+               OpName %none "none"
+               OpName %flat "flat"
+               OpName %perspective_center "perspective_center"
+               OpName %perspective_centroid "perspective_centroid"
+               OpName %perspective_sample "perspective_sample"
+               OpName %linear_center "linear_center"
+               OpName %linear_centroid "linear_centroid"
+               OpName %linear_sample "linear_sample"
                OpName %main "main"
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_1 Location 1
-               OpDecorate %tint_symbol_1 Flat
-               OpDecorate %tint_symbol_2 Location 2
-               OpDecorate %tint_symbol_3 Location 3
-               OpDecorate %tint_symbol_3 Centroid
-               OpDecorate %tint_symbol_4 Location 4
-               OpDecorate %tint_symbol_4 Sample
-               OpDecorate %tint_symbol_5 Location 5
-               OpDecorate %tint_symbol_5 NoPerspective
-               OpDecorate %tint_symbol_6 Location 6
-               OpDecorate %tint_symbol_6 NoPerspective
-               OpDecorate %tint_symbol_6 Centroid
-               OpDecorate %tint_symbol_7 Location 7
-               OpDecorate %tint_symbol_7 NoPerspective
-               OpDecorate %tint_symbol_7 Sample
+               OpDecorate %none_1 Location 0
+               OpDecorate %flat_1 Location 1
+               OpDecorate %flat_1 Flat
+               OpDecorate %perspective_center_1 Location 2
+               OpDecorate %perspective_centroid_1 Location 3
+               OpDecorate %perspective_centroid_1 Centroid
+               OpDecorate %perspective_sample_1 Location 4
+               OpDecorate %perspective_sample_1 Sample
+               OpDecorate %linear_center_1 Location 5
+               OpDecorate %linear_center_1 NoPerspective
+               OpDecorate %linear_centroid_1 Location 6
+               OpDecorate %linear_centroid_1 NoPerspective
+               OpDecorate %linear_centroid_1 Centroid
+               OpDecorate %linear_sample_1 Location 7
+               OpDecorate %linear_sample_1 NoPerspective
+               OpDecorate %linear_sample_1 Sample
       %float = OpTypeFloat 32
 %_ptr_Input_float = OpTypePointer Input %float
-%tint_symbol = OpVariable %_ptr_Input_float Input
-%tint_symbol_1 = OpVariable %_ptr_Input_float Input
-%tint_symbol_2 = OpVariable %_ptr_Input_float Input
-%tint_symbol_3 = OpVariable %_ptr_Input_float Input
-%tint_symbol_4 = OpVariable %_ptr_Input_float Input
-%tint_symbol_5 = OpVariable %_ptr_Input_float Input
-%tint_symbol_6 = OpVariable %_ptr_Input_float Input
-%tint_symbol_7 = OpVariable %_ptr_Input_float Input
+     %none_1 = OpVariable %_ptr_Input_float Input
+     %flat_1 = OpVariable %_ptr_Input_float Input
+%perspective_center_1 = OpVariable %_ptr_Input_float Input
+%perspective_centroid_1 = OpVariable %_ptr_Input_float Input
+%perspective_sample_1 = OpVariable %_ptr_Input_float Input
+%linear_center_1 = OpVariable %_ptr_Input_float Input
+%linear_centroid_1 = OpVariable %_ptr_Input_float Input
+%linear_sample_1 = OpVariable %_ptr_Input_float Input
        %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-       %main = OpFunction %void None %11
-         %14 = OpLabel
+         %11 = OpTypeFunction %void %float %float %float %float %float %float %float %float
+         %23 = OpTypeFunction %void
+ %main_inner = OpFunction %void None %11
+       %none = OpFunctionParameter %float
+       %flat = OpFunctionParameter %float
+%perspective_center = OpFunctionParameter %float
+%perspective_centroid = OpFunctionParameter %float
+%perspective_sample = OpFunctionParameter %float
+%linear_center = OpFunctionParameter %float
+%linear_centroid = OpFunctionParameter %float
+%linear_sample = OpFunctionParameter %float
+         %22 = OpLabel
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %23
+         %25 = OpLabel
+         %27 = OpLoad %float %none_1
+         %28 = OpLoad %float %flat_1
+         %29 = OpLoad %float %perspective_center_1
+         %30 = OpLoad %float %perspective_centroid_1
+         %31 = OpLoad %float %perspective_sample_1
+         %32 = OpLoad %float %linear_center_1
+         %33 = OpLoad %float %linear_centroid_1
+         %34 = OpLoad %float %linear_sample_1
+         %26 = OpFunctionCall %void %main_inner %27 %28 %29 %30 %31 %32 %33 %34
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/interpolate_input_struct.wgsl.expected.spvasm b/test/shader_io/interpolate_input_struct.wgsl.expected.spvasm
index 5b0348f..a13e5d6 100644
--- a/test/shader_io/interpolate_input_struct.wgsl.expected.spvasm
+++ b/test/shader_io/interpolate_input_struct.wgsl.expected.spvasm
@@ -1,51 +1,87 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 15
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpCapability SampleRateShading
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main"
+               OpEntryPoint Fragment %main "main" %none_1 %flat_1 %perspective_center_1 %perspective_centroid_1 %perspective_sample_1 %linear_center_1 %linear_centroid_1 %linear_sample_1
                OpExecutionMode %main OriginUpperLeft
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_6 "tint_symbol_6"
-               OpName %tint_symbol_7 "tint_symbol_7"
+               OpName %none_1 "none_1"
+               OpName %flat_1 "flat_1"
+               OpName %perspective_center_1 "perspective_center_1"
+               OpName %perspective_centroid_1 "perspective_centroid_1"
+               OpName %perspective_sample_1 "perspective_sample_1"
+               OpName %linear_center_1 "linear_center_1"
+               OpName %linear_centroid_1 "linear_centroid_1"
+               OpName %linear_sample_1 "linear_sample_1"
+               OpName %In "In"
+               OpMemberName %In 0 "none"
+               OpMemberName %In 1 "flat"
+               OpMemberName %In 2 "perspective_center"
+               OpMemberName %In 3 "perspective_centroid"
+               OpMemberName %In 4 "perspective_sample"
+               OpMemberName %In 5 "linear_center"
+               OpMemberName %In 6 "linear_centroid"
+               OpMemberName %In 7 "linear_sample"
+               OpName %main_inner "main_inner"
+               OpName %in "in"
                OpName %main "main"
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_1 Location 1
-               OpDecorate %tint_symbol_1 Flat
-               OpDecorate %tint_symbol_2 Location 2
-               OpDecorate %tint_symbol_3 Location 3
-               OpDecorate %tint_symbol_3 Centroid
-               OpDecorate %tint_symbol_4 Location 4
-               OpDecorate %tint_symbol_4 Sample
-               OpDecorate %tint_symbol_5 Location 5
-               OpDecorate %tint_symbol_5 NoPerspective
-               OpDecorate %tint_symbol_6 Location 6
-               OpDecorate %tint_symbol_6 NoPerspective
-               OpDecorate %tint_symbol_6 Centroid
-               OpDecorate %tint_symbol_7 Location 7
-               OpDecorate %tint_symbol_7 NoPerspective
-               OpDecorate %tint_symbol_7 Sample
+               OpDecorate %none_1 Location 0
+               OpDecorate %flat_1 Location 1
+               OpDecorate %flat_1 Flat
+               OpDecorate %perspective_center_1 Location 2
+               OpDecorate %perspective_centroid_1 Location 3
+               OpDecorate %perspective_centroid_1 Centroid
+               OpDecorate %perspective_sample_1 Location 4
+               OpDecorate %perspective_sample_1 Sample
+               OpDecorate %linear_center_1 Location 5
+               OpDecorate %linear_center_1 NoPerspective
+               OpDecorate %linear_centroid_1 Location 6
+               OpDecorate %linear_centroid_1 NoPerspective
+               OpDecorate %linear_centroid_1 Centroid
+               OpDecorate %linear_sample_1 Location 7
+               OpDecorate %linear_sample_1 NoPerspective
+               OpDecorate %linear_sample_1 Sample
+               OpMemberDecorate %In 0 Offset 0
+               OpMemberDecorate %In 1 Offset 4
+               OpMemberDecorate %In 2 Offset 8
+               OpMemberDecorate %In 3 Offset 12
+               OpMemberDecorate %In 4 Offset 16
+               OpMemberDecorate %In 5 Offset 20
+               OpMemberDecorate %In 6 Offset 24
+               OpMemberDecorate %In 7 Offset 28
       %float = OpTypeFloat 32
 %_ptr_Input_float = OpTypePointer Input %float
-%tint_symbol = OpVariable %_ptr_Input_float Input
-%tint_symbol_1 = OpVariable %_ptr_Input_float Input
-%tint_symbol_2 = OpVariable %_ptr_Input_float Input
-%tint_symbol_3 = OpVariable %_ptr_Input_float Input
-%tint_symbol_4 = OpVariable %_ptr_Input_float Input
-%tint_symbol_5 = OpVariable %_ptr_Input_float Input
-%tint_symbol_6 = OpVariable %_ptr_Input_float Input
-%tint_symbol_7 = OpVariable %_ptr_Input_float Input
+     %none_1 = OpVariable %_ptr_Input_float Input
+     %flat_1 = OpVariable %_ptr_Input_float Input
+%perspective_center_1 = OpVariable %_ptr_Input_float Input
+%perspective_centroid_1 = OpVariable %_ptr_Input_float Input
+%perspective_sample_1 = OpVariable %_ptr_Input_float Input
+%linear_center_1 = OpVariable %_ptr_Input_float Input
+%linear_centroid_1 = OpVariable %_ptr_Input_float Input
+%linear_sample_1 = OpVariable %_ptr_Input_float Input
        %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-       %main = OpFunction %void None %11
-         %14 = OpLabel
+         %In = OpTypeStruct %float %float %float %float %float %float %float %float
+         %11 = OpTypeFunction %void %In
+         %17 = OpTypeFunction %void
+ %main_inner = OpFunction %void None %11
+         %in = OpFunctionParameter %In
+         %16 = OpLabel
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %17
+         %19 = OpLabel
+         %21 = OpLoad %float %none_1
+         %22 = OpLoad %float %flat_1
+         %23 = OpLoad %float %perspective_center_1
+         %24 = OpLoad %float %perspective_centroid_1
+         %25 = OpLoad %float %perspective_sample_1
+         %26 = OpLoad %float %linear_center_1
+         %27 = OpLoad %float %linear_centroid_1
+         %28 = OpLoad %float %linear_sample_1
+         %29 = OpCompositeConstruct %In %21 %22 %23 %24 %25 %26 %27 %28
+         %20 = OpFunctionCall %void %main_inner %29
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/interpolate_integers.wgsl.expected.spvasm b/test/shader_io/interpolate_integers.wgsl.expected.spvasm
index 7caa7e2..8bb78a1 100644
--- a/test/shader_io/interpolate_integers.wgsl.expected.spvasm
+++ b/test/shader_io/interpolate_integers.wgsl.expected.spvasm
@@ -1,140 +1,138 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 67
+; Bound: 66
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vert_main "vert_main" %tint_pointsize %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4 %tint_symbol_5
-               OpEntryPoint Fragment %frag_main "frag_main" %tint_symbol_7 %tint_symbol_8 %tint_symbol_9 %tint_symbol_10 %tint_symbol_11 %tint_symbol_14
+               OpEntryPoint Vertex %vert_main "vert_main" %i_1 %u_1 %vi_1 %vu_1 %pos_1 %vertex_point_size
+               OpEntryPoint Fragment %frag_main "frag_main" %i_2 %u_2 %vi_2 %vu_2 %pos_2 %value
                OpExecutionMode %frag_main OriginUpperLeft
-               OpName %tint_pointsize "tint_pointsize"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_7 "tint_symbol_7"
-               OpName %tint_symbol_8 "tint_symbol_8"
-               OpName %tint_symbol_9 "tint_symbol_9"
-               OpName %tint_symbol_10 "tint_symbol_10"
-               OpName %tint_symbol_11 "tint_symbol_11"
-               OpName %tint_symbol_14 "tint_symbol_14"
+               OpName %i_1 "i_1"
+               OpName %u_1 "u_1"
+               OpName %vi_1 "vi_1"
+               OpName %vu_1 "vu_1"
+               OpName %pos_1 "pos_1"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %i_2 "i_2"
+               OpName %u_2 "u_2"
+               OpName %vi_2 "vi_2"
+               OpName %vu_2 "vu_2"
+               OpName %pos_2 "pos_2"
+               OpName %value "value"
                OpName %Interface "Interface"
                OpMemberName %Interface 0 "i"
                OpMemberName %Interface 1 "u"
                OpMemberName %Interface 2 "vi"
                OpMemberName %Interface 3 "vu"
                OpMemberName %Interface 4 "pos"
-               OpName %tint_symbol_6 "tint_symbol_6"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vert_main_inner "vert_main_inner"
                OpName %vert_main "vert_main"
-               OpName %tint_symbol_15 "tint_symbol_15"
-               OpName %tint_symbol_13 "tint_symbol_13"
+               OpName %frag_main_inner "frag_main_inner"
+               OpName %inputs "inputs"
                OpName %frag_main "frag_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_1 Flat
-               OpDecorate %tint_symbol_2 Location 1
-               OpDecorate %tint_symbol_2 Flat
-               OpDecorate %tint_symbol_3 Location 2
-               OpDecorate %tint_symbol_3 Flat
-               OpDecorate %tint_symbol_4 Location 3
-               OpDecorate %tint_symbol_4 Flat
-               OpDecorate %tint_symbol_5 BuiltIn Position
-               OpDecorate %tint_symbol_7 Location 0
-               OpDecorate %tint_symbol_7 Flat
-               OpDecorate %tint_symbol_8 Location 1
-               OpDecorate %tint_symbol_8 Flat
-               OpDecorate %tint_symbol_9 Location 2
-               OpDecorate %tint_symbol_9 Flat
-               OpDecorate %tint_symbol_10 Location 3
-               OpDecorate %tint_symbol_10 Flat
-               OpDecorate %tint_symbol_11 BuiltIn FragCoord
-               OpDecorate %tint_symbol_14 Location 0
+               OpDecorate %i_1 Location 0
+               OpDecorate %i_1 Flat
+               OpDecorate %u_1 Location 1
+               OpDecorate %u_1 Flat
+               OpDecorate %vi_1 Location 2
+               OpDecorate %vi_1 Flat
+               OpDecorate %vu_1 Location 3
+               OpDecorate %vu_1 Flat
+               OpDecorate %pos_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %i_2 Location 0
+               OpDecorate %i_2 Flat
+               OpDecorate %u_2 Location 1
+               OpDecorate %u_2 Flat
+               OpDecorate %vi_2 Location 2
+               OpDecorate %vi_2 Flat
+               OpDecorate %vu_2 Location 3
+               OpDecorate %vu_2 Flat
+               OpDecorate %pos_2 BuiltIn FragCoord
+               OpDecorate %value Location 0
                OpMemberDecorate %Interface 0 Offset 0
                OpMemberDecorate %Interface 1 Offset 4
                OpMemberDecorate %Interface 2 Offset 16
                OpMemberDecorate %Interface 3 Offset 32
                OpMemberDecorate %Interface 4 Offset 48
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
         %int = OpTypeInt 32 1
 %_ptr_Output_int = OpTypePointer Output %int
-          %8 = OpConstantNull %int
-%tint_symbol_1 = OpVariable %_ptr_Output_int Output %8
+          %4 = OpConstantNull %int
+        %i_1 = OpVariable %_ptr_Output_int Output %4
        %uint = OpTypeInt 32 0
 %_ptr_Output_uint = OpTypePointer Output %uint
-         %12 = OpConstantNull %uint
-%tint_symbol_2 = OpVariable %_ptr_Output_uint Output %12
+          %8 = OpConstantNull %uint
+        %u_1 = OpVariable %_ptr_Output_uint Output %8
       %v4int = OpTypeVector %int 4
 %_ptr_Output_v4int = OpTypePointer Output %v4int
-         %16 = OpConstantNull %v4int
-%tint_symbol_3 = OpVariable %_ptr_Output_v4int Output %16
+         %12 = OpConstantNull %v4int
+       %vi_1 = OpVariable %_ptr_Output_v4int Output %12
      %v4uint = OpTypeVector %uint 4
 %_ptr_Output_v4uint = OpTypePointer Output %v4uint
-         %20 = OpConstantNull %v4uint
-%tint_symbol_4 = OpVariable %_ptr_Output_v4uint Output %20
+         %16 = OpConstantNull %v4uint
+       %vu_1 = OpVariable %_ptr_Output_v4uint Output %16
+      %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %24 = OpConstantNull %v4float
-%tint_symbol_5 = OpVariable %_ptr_Output_v4float Output %24
+         %21 = OpConstantNull %v4float
+      %pos_1 = OpVariable %_ptr_Output_v4float Output %21
+%_ptr_Output_float = OpTypePointer Output %float
+         %24 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %24
 %_ptr_Input_int = OpTypePointer Input %int
-%tint_symbol_7 = OpVariable %_ptr_Input_int Input
+        %i_2 = OpVariable %_ptr_Input_int Input
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol_8 = OpVariable %_ptr_Input_uint Input
+        %u_2 = OpVariable %_ptr_Input_uint Input
 %_ptr_Input_v4int = OpTypePointer Input %v4int
-%tint_symbol_9 = OpVariable %_ptr_Input_v4int Input
+       %vi_2 = OpVariable %_ptr_Input_v4int Input
 %_ptr_Input_v4uint = OpTypePointer Input %v4uint
-%tint_symbol_10 = OpVariable %_ptr_Input_v4uint Input
+       %vu_2 = OpVariable %_ptr_Input_v4uint Input
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol_11 = OpVariable %_ptr_Input_v4float Input
-%tint_symbol_14 = OpVariable %_ptr_Output_int Output %8
-       %void = OpTypeVoid
+      %pos_2 = OpVariable %_ptr_Input_v4float Input
+      %value = OpVariable %_ptr_Output_int Output %4
   %Interface = OpTypeStruct %int %uint %v4int %v4uint %v4float
-         %36 = OpTypeFunction %void %Interface
-         %47 = OpTypeFunction %void
+         %36 = OpTypeFunction %Interface
+         %40 = OpConstantNull %Interface
+       %void = OpTypeVoid
+         %41 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
-         %52 = OpConstantNull %Interface
-         %53 = OpTypeFunction %void %int
-%tint_symbol_6 = OpFunction %void None %36
-%tint_symbol = OpFunctionParameter %Interface
-         %41 = OpLabel
-         %42 = OpCompositeExtract %int %tint_symbol 0
-               OpStore %tint_symbol_1 %42
-         %43 = OpCompositeExtract %uint %tint_symbol 1
-               OpStore %tint_symbol_2 %43
-         %44 = OpCompositeExtract %v4int %tint_symbol 2
-               OpStore %tint_symbol_3 %44
-         %45 = OpCompositeExtract %v4uint %tint_symbol 3
-               OpStore %tint_symbol_4 %45
-         %46 = OpCompositeExtract %v4float %tint_symbol 4
-               OpStore %tint_symbol_5 %46
+         %52 = OpTypeFunction %int %Interface
+%vert_main_inner = OpFunction %Interface None %36
+         %39 = OpLabel
+               OpReturnValue %40
+               OpFunctionEnd
+  %vert_main = OpFunction %void None %41
+         %44 = OpLabel
+         %45 = OpFunctionCall %Interface %vert_main_inner
+         %46 = OpCompositeExtract %int %45 0
+               OpStore %i_1 %46
+         %47 = OpCompositeExtract %uint %45 1
+               OpStore %u_1 %47
+         %48 = OpCompositeExtract %v4int %45 2
+               OpStore %vi_1 %48
+         %49 = OpCompositeExtract %v4uint %45 3
+               OpStore %vu_1 %49
+         %50 = OpCompositeExtract %v4float %45 4
+               OpStore %pos_1 %50
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
-  %vert_main = OpFunction %void None %47
-         %49 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %51 = OpFunctionCall %void %tint_symbol_6 %52
-               OpReturn
+%frag_main_inner = OpFunction %int None %52
+     %inputs = OpFunctionParameter %Interface
+         %55 = OpLabel
+         %56 = OpCompositeExtract %int %inputs 0
+               OpReturnValue %56
                OpFunctionEnd
-%tint_symbol_15 = OpFunction %void None %53
-%tint_symbol_13 = OpFunctionParameter %int
-         %56 = OpLabel
-               OpStore %tint_symbol_14 %tint_symbol_13
-               OpReturn
-               OpFunctionEnd
-  %frag_main = OpFunction %void None %47
+  %frag_main = OpFunction %void None %41
          %58 = OpLabel
-         %59 = OpLoad %int %tint_symbol_7
-         %60 = OpLoad %uint %tint_symbol_8
-         %61 = OpLoad %v4int %tint_symbol_9
-         %62 = OpLoad %v4uint %tint_symbol_10
-         %63 = OpLoad %v4float %tint_symbol_11
-         %64 = OpCompositeConstruct %Interface %59 %60 %61 %62 %63
-         %66 = OpCompositeExtract %int %64 0
-         %65 = OpFunctionCall %void %tint_symbol_15 %66
+         %60 = OpLoad %int %i_2
+         %61 = OpLoad %uint %u_2
+         %62 = OpLoad %v4int %vi_2
+         %63 = OpLoad %v4uint %vu_2
+         %64 = OpLoad %v4float %pos_2
+         %65 = OpCompositeConstruct %Interface %60 %61 %62 %63 %64
+         %59 = OpFunctionCall %int %frag_main_inner %65
+               OpStore %value %59
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/interpolate_return_struct.wgsl.expected.spvasm b/test/shader_io/interpolate_return_struct.wgsl.expected.spvasm
index ccf9580..91b4436 100644
--- a/test/shader_io/interpolate_return_struct.wgsl.expected.spvasm
+++ b/test/shader_io/interpolate_return_struct.wgsl.expected.spvasm
@@ -1,22 +1,22 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 37
 ; Schema: 0
                OpCapability Shader
                OpCapability SampleRateShading
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4 %tint_symbol_5 %tint_symbol_6 %tint_symbol_7 %tint_symbol_8 %tint_symbol_9
-               OpName %tint_pointsize "tint_pointsize"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_6 "tint_symbol_6"
-               OpName %tint_symbol_7 "tint_symbol_7"
-               OpName %tint_symbol_8 "tint_symbol_8"
-               OpName %tint_symbol_9 "tint_symbol_9"
+               OpEntryPoint Vertex %main "main" %pos_1 %none_1 %flat_1 %perspective_center_1 %perspective_centroid_1 %perspective_sample_1 %linear_center_1 %linear_centroid_1 %linear_sample_1 %vertex_point_size
+               OpName %pos_1 "pos_1"
+               OpName %none_1 "none_1"
+               OpName %flat_1 "flat_1"
+               OpName %perspective_center_1 "perspective_center_1"
+               OpName %perspective_centroid_1 "perspective_centroid_1"
+               OpName %perspective_sample_1 "perspective_sample_1"
+               OpName %linear_center_1 "linear_center_1"
+               OpName %linear_centroid_1 "linear_centroid_1"
+               OpName %linear_sample_1 "linear_sample_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %Out "Out"
                OpMemberName %Out 0 "pos"
                OpMemberName %Out 1 "none"
@@ -27,27 +27,26 @@
                OpMemberName %Out 6 "linear_center"
                OpMemberName %Out 7 "linear_centroid"
                OpMemberName %Out 8 "linear_sample"
-               OpName %tint_symbol_10 "tint_symbol_10"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 BuiltIn Position
-               OpDecorate %tint_symbol_2 Location 0
-               OpDecorate %tint_symbol_3 Location 1
-               OpDecorate %tint_symbol_3 Flat
-               OpDecorate %tint_symbol_4 Location 2
-               OpDecorate %tint_symbol_5 Location 3
-               OpDecorate %tint_symbol_5 Centroid
-               OpDecorate %tint_symbol_6 Location 4
-               OpDecorate %tint_symbol_6 Sample
-               OpDecorate %tint_symbol_7 Location 5
-               OpDecorate %tint_symbol_7 NoPerspective
-               OpDecorate %tint_symbol_8 Location 6
-               OpDecorate %tint_symbol_8 NoPerspective
-               OpDecorate %tint_symbol_8 Centroid
-               OpDecorate %tint_symbol_9 Location 7
-               OpDecorate %tint_symbol_9 NoPerspective
-               OpDecorate %tint_symbol_9 Sample
+               OpDecorate %pos_1 BuiltIn Position
+               OpDecorate %none_1 Location 0
+               OpDecorate %flat_1 Location 1
+               OpDecorate %flat_1 Flat
+               OpDecorate %perspective_center_1 Location 2
+               OpDecorate %perspective_centroid_1 Location 3
+               OpDecorate %perspective_centroid_1 Centroid
+               OpDecorate %perspective_sample_1 Location 4
+               OpDecorate %perspective_sample_1 Sample
+               OpDecorate %linear_center_1 Location 5
+               OpDecorate %linear_center_1 NoPerspective
+               OpDecorate %linear_centroid_1 Location 6
+               OpDecorate %linear_centroid_1 NoPerspective
+               OpDecorate %linear_centroid_1 Centroid
+               OpDecorate %linear_sample_1 Location 7
+               OpDecorate %linear_sample_1 NoPerspective
+               OpDecorate %linear_sample_1 Sample
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %Out 0 Offset 0
                OpMemberDecorate %Out 1 Offset 16
                OpMemberDecorate %Out 2 Offset 20
@@ -58,53 +57,52 @@
                OpMemberDecorate %Out 7 Offset 40
                OpMemberDecorate %Out 8 Offset 44
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
-%tint_symbol_2 = OpVariable %_ptr_Output_float Output %4
-%tint_symbol_3 = OpVariable %_ptr_Output_float Output %4
-%tint_symbol_4 = OpVariable %_ptr_Output_float Output %4
-%tint_symbol_5 = OpVariable %_ptr_Output_float Output %4
-%tint_symbol_6 = OpVariable %_ptr_Output_float Output %4
-%tint_symbol_7 = OpVariable %_ptr_Output_float Output %4
-%tint_symbol_8 = OpVariable %_ptr_Output_float Output %4
-%tint_symbol_9 = OpVariable %_ptr_Output_float Output %4
-       %void = OpTypeVoid
+          %5 = OpConstantNull %v4float
+      %pos_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+     %none_1 = OpVariable %_ptr_Output_float Output %8
+     %flat_1 = OpVariable %_ptr_Output_float Output %8
+%perspective_center_1 = OpVariable %_ptr_Output_float Output %8
+%perspective_centroid_1 = OpVariable %_ptr_Output_float Output %8
+%perspective_sample_1 = OpVariable %_ptr_Output_float Output %8
+%linear_center_1 = OpVariable %_ptr_Output_float Output %8
+%linear_centroid_1 = OpVariable %_ptr_Output_float Output %8
+%linear_sample_1 = OpVariable %_ptr_Output_float Output %8
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %Out = OpTypeStruct %v4float %float %float %float %float %float %float %float %float
-         %17 = OpTypeFunction %void %Out
-         %32 = OpTypeFunction %void
+         %17 = OpTypeFunction %Out
+         %21 = OpConstantNull %Out
+       %void = OpTypeVoid
+         %22 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
-         %37 = OpConstantNull %Out
-%tint_symbol_10 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %Out
-         %22 = OpLabel
-         %23 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %23
-         %24 = OpCompositeExtract %float %tint_symbol 1
-               OpStore %tint_symbol_2 %24
-         %25 = OpCompositeExtract %float %tint_symbol 2
-               OpStore %tint_symbol_3 %25
-         %26 = OpCompositeExtract %float %tint_symbol 3
-               OpStore %tint_symbol_4 %26
-         %27 = OpCompositeExtract %float %tint_symbol 4
-               OpStore %tint_symbol_5 %27
-         %28 = OpCompositeExtract %float %tint_symbol 5
-               OpStore %tint_symbol_6 %28
-         %29 = OpCompositeExtract %float %tint_symbol 6
-               OpStore %tint_symbol_7 %29
-         %30 = OpCompositeExtract %float %tint_symbol 7
-               OpStore %tint_symbol_8 %30
-         %31 = OpCompositeExtract %float %tint_symbol 8
-               OpStore %tint_symbol_9 %31
-               OpReturn
+ %main_inner = OpFunction %Out None %17
+         %20 = OpLabel
+               OpReturnValue %21
                OpFunctionEnd
-       %main = OpFunction %void None %32
-         %34 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %36 = OpFunctionCall %void %tint_symbol_10 %37
+       %main = OpFunction %void None %22
+         %25 = OpLabel
+         %26 = OpFunctionCall %Out %main_inner
+         %27 = OpCompositeExtract %v4float %26 0
+               OpStore %pos_1 %27
+         %28 = OpCompositeExtract %float %26 1
+               OpStore %none_1 %28
+         %29 = OpCompositeExtract %float %26 2
+               OpStore %flat_1 %29
+         %30 = OpCompositeExtract %float %26 3
+               OpStore %perspective_center_1 %30
+         %31 = OpCompositeExtract %float %26 4
+               OpStore %perspective_centroid_1 %31
+         %32 = OpCompositeExtract %float %26 5
+               OpStore %perspective_sample_1 %32
+         %33 = OpCompositeExtract %float %26 6
+               OpStore %linear_center_1 %33
+         %34 = OpCompositeExtract %float %26 7
+               OpStore %linear_centroid_1 %34
+         %35 = OpCompositeExtract %float %26 8
+               OpStore %linear_sample_1 %35
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/invariant.wgsl.expected.spvasm b/test/shader_io/invariant.wgsl.expected.spvasm
index 7759407..ac51936 100644
--- a/test/shader_io/invariant.wgsl.expected.spvasm
+++ b/test/shader_io/invariant.wgsl.expected.spvasm
@@ -1,40 +1,38 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 19
+; Bound: 18
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1
-               OpName %tint_pointsize "tint_pointsize"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpEntryPoint Vertex %main "main" %value %vertex_point_size
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 BuiltIn Position
-               OpDecorate %tint_symbol_1 Invariant
+               OpDecorate %value BuiltIn Position
+               OpDecorate %value Invariant
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+          %9 = OpTypeFunction %v4float
        %void = OpTypeVoid
-          %9 = OpTypeFunction %void %v4float
-         %14 = OpTypeFunction %void
+         %12 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
-%tint_symbol_2 = OpFunction %void None %9
-%tint_symbol = OpFunctionParameter %v4float
-         %13 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+ %main_inner = OpFunction %v4float None %9
+         %11 = OpLabel
+               OpReturnValue %5
                OpFunctionEnd
-       %main = OpFunction %void None %14
-         %16 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %18 = OpFunctionCall %void %tint_symbol_2 %8
+       %main = OpFunction %void None %12
+         %15 = OpLabel
+         %16 = OpFunctionCall %v4float %main_inner
+               OpStore %value %16
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/invariant_struct_member.wgsl.expected.spvasm b/test/shader_io/invariant_struct_member.wgsl.expected.spvasm
index b062a96..f23cb97 100644
--- a/test/shader_io/invariant_struct_member.wgsl.expected.spvasm
+++ b/test/shader_io/invariant_struct_member.wgsl.expected.spvasm
@@ -1,46 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 22
+; Bound: 21
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1
-               OpName %tint_pointsize "tint_pointsize"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpEntryPoint Vertex %main "main" %pos_1 %vertex_point_size
+               OpName %pos_1 "pos_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %Out "Out"
                OpMemberName %Out 0 "pos"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 BuiltIn Position
-               OpDecorate %tint_symbol_1 Invariant
+               OpDecorate %pos_1 BuiltIn Position
+               OpDecorate %pos_1 Invariant
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %Out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
-       %void = OpTypeVoid
+          %5 = OpConstantNull %v4float
+      %pos_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
         %Out = OpTypeStruct %v4float
-          %9 = OpTypeFunction %void %Out
-         %16 = OpTypeFunction %void
+          %9 = OpTypeFunction %Out
+         %13 = OpConstantNull %Out
+       %void = OpTypeVoid
+         %14 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
-         %21 = OpConstantNull %Out
-%tint_symbol_2 = OpFunction %void None %9
-%tint_symbol = OpFunctionParameter %Out
-         %14 = OpLabel
-         %15 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %15
-               OpReturn
+ %main_inner = OpFunction %Out None %9
+         %12 = OpLabel
+               OpReturnValue %13
                OpFunctionEnd
-       %main = OpFunction %void None %16
-         %18 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %20 = OpFunctionCall %void %tint_symbol_2 %21
+       %main = OpFunction %void None %14
+         %17 = OpLabel
+         %18 = OpFunctionCall %Out %main_inner
+         %19 = OpCompositeExtract %v4float %18 0
+               OpStore %pos_1 %19
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/shared_struct_different_stages.wgsl.expected.spvasm b/test/shader_io/shared_struct_different_stages.wgsl.expected.spvasm
index 9c505c1..7c933c8 100644
--- a/test/shader_io/shared_struct_different_stages.wgsl.expected.spvasm
+++ b/test/shader_io/shared_struct_different_stages.wgsl.expected.spvasm
@@ -1,85 +1,92 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vert_main "vert_main" %tint_pointsize %tint_symbol_1 %tint_symbol_2 %tint_symbol_3
-               OpEntryPoint Fragment %frag_main "frag_main" %tint_symbol_5 %tint_symbol_6 %tint_symbol_7
+               OpEntryPoint Vertex %vert_main "vert_main" %col1_1 %col2_1 %pos_1 %vertex_point_size
+               OpEntryPoint Fragment %frag_main "frag_main" %col1_2 %col2_2 %pos_2
                OpExecutionMode %frag_main OriginUpperLeft
-               OpName %tint_pointsize "tint_pointsize"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_6 "tint_symbol_6"
-               OpName %tint_symbol_7 "tint_symbol_7"
+               OpName %col1_1 "col1_1"
+               OpName %col2_1 "col2_1"
+               OpName %pos_1 "pos_1"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %col1_2 "col1_2"
+               OpName %col2_2 "col2_2"
+               OpName %pos_2 "pos_2"
                OpName %Interface "Interface"
                OpMemberName %Interface 0 "col1"
                OpMemberName %Interface 1 "col2"
                OpMemberName %Interface 2 "pos"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vert_main_inner "vert_main_inner"
                OpName %vert_main "vert_main"
+               OpName %frag_main_inner "frag_main_inner"
+               OpName %colors "colors"
                OpName %frag_main "frag_main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 Location 1
-               OpDecorate %tint_symbol_2 Location 2
-               OpDecorate %tint_symbol_3 BuiltIn Position
-               OpDecorate %tint_symbol_5 Location 1
-               OpDecorate %tint_symbol_6 Location 2
-               OpDecorate %tint_symbol_7 BuiltIn FragCoord
+               OpDecorate %col1_1 Location 1
+               OpDecorate %col2_1 Location 2
+               OpDecorate %pos_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %col1_2 Location 1
+               OpDecorate %col2_2 Location 2
+               OpDecorate %pos_2 BuiltIn FragCoord
                OpMemberDecorate %Interface 0 Offset 0
                OpMemberDecorate %Interface 1 Offset 4
                OpMemberDecorate %Interface 2 Offset 16
       %float = OpTypeFloat 32
 %_ptr_Output_float = OpTypePointer Output %float
           %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-%tint_symbol_1 = OpVariable %_ptr_Output_float Output %4
-%tint_symbol_2 = OpVariable %_ptr_Output_float Output %4
+     %col1_1 = OpVariable %_ptr_Output_float Output %4
+     %col2_1 = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %10 = OpConstantNull %v4float
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %10
+          %9 = OpConstantNull %v4float
+      %pos_1 = OpVariable %_ptr_Output_v4float Output %9
+%vertex_point_size = OpVariable %_ptr_Output_float Output %4
 %_ptr_Input_float = OpTypePointer Input %float
-%tint_symbol_5 = OpVariable %_ptr_Input_float Input
-%tint_symbol_6 = OpVariable %_ptr_Input_float Input
+     %col1_2 = OpVariable %_ptr_Input_float Input
+     %col2_2 = OpVariable %_ptr_Input_float Input
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol_7 = OpVariable %_ptr_Input_v4float Input
-       %void = OpTypeVoid
+      %pos_2 = OpVariable %_ptr_Input_v4float Input
   %Interface = OpTypeStruct %float %float %v4float
-         %16 = OpTypeFunction %void %Interface
-         %25 = OpTypeFunction %void
-    %float_1 = OpConstant %float 1
+         %16 = OpTypeFunction %Interface
 %float_0_400000006 = OpConstant %float 0.400000006
 %float_0_600000024 = OpConstant %float 0.600000024
-         %32 = OpConstantComposite %Interface %float_0_400000006 %float_0_600000024 %10
-%tint_symbol_4 = OpFunction %void None %16
-%tint_symbol = OpFunctionParameter %Interface
-         %21 = OpLabel
-         %22 = OpCompositeExtract %float %tint_symbol 0
-               OpStore %tint_symbol_1 %22
-         %23 = OpCompositeExtract %float %tint_symbol 1
-               OpStore %tint_symbol_2 %23
-         %24 = OpCompositeExtract %v4float %tint_symbol 2
-               OpStore %tint_symbol_3 %24
+         %22 = OpConstantComposite %Interface %float_0_400000006 %float_0_600000024 %9
+       %void = OpTypeVoid
+         %23 = OpTypeFunction %void
+    %float_1 = OpConstant %float 1
+         %32 = OpTypeFunction %void %Interface
+%vert_main_inner = OpFunction %Interface None %16
+         %19 = OpLabel
+               OpReturnValue %22
+               OpFunctionEnd
+  %vert_main = OpFunction %void None %23
+         %26 = OpLabel
+         %27 = OpFunctionCall %Interface %vert_main_inner
+         %28 = OpCompositeExtract %float %27 0
+               OpStore %col1_1 %28
+         %29 = OpCompositeExtract %float %27 1
+               OpStore %col2_1 %29
+         %30 = OpCompositeExtract %v4float %27 2
+               OpStore %pos_1 %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
-  %vert_main = OpFunction %void None %25
-         %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %tint_symbol_4 %32
+%frag_main_inner = OpFunction %void None %32
+     %colors = OpFunctionParameter %Interface
+         %35 = OpLabel
+         %36 = OpCompositeExtract %float %colors 0
+         %37 = OpCompositeExtract %float %colors 1
                OpReturn
                OpFunctionEnd
-  %frag_main = OpFunction %void None %25
-         %34 = OpLabel
-         %35 = OpLoad %float %tint_symbol_5
-         %36 = OpLoad %float %tint_symbol_6
-         %37 = OpLoad %v4float %tint_symbol_7
-         %38 = OpCompositeConstruct %Interface %35 %36 %37
-         %39 = OpCompositeExtract %float %38 0
-         %40 = OpCompositeExtract %float %38 1
+  %frag_main = OpFunction %void None %23
+         %39 = OpLabel
+         %41 = OpLoad %float %col1_2
+         %42 = OpLoad %float %col2_2
+         %43 = OpLoad %v4float %pos_2
+         %44 = OpCompositeConstruct %Interface %41 %42 %43
+         %40 = OpFunctionCall %void %frag_main_inner %44
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/shared_struct_helper_function.wgsl.expected.spvasm b/test/shader_io/shared_struct_helper_function.wgsl.expected.spvasm
index 29b96cd..9928b83 100644
--- a/test/shader_io/shared_struct_helper_function.wgsl.expected.spvasm
+++ b/test/shader_io/shared_struct_helper_function.wgsl.expected.spvasm
@@ -1,96 +1,95 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vert_main1 "vert_main1" %tint_pointsize %tint_symbol_1 %tint_symbol_2
-               OpEntryPoint Vertex %vert_main2 "vert_main2" %tint_pointsize %tint_symbol_5 %tint_symbol_6
-               OpName %tint_pointsize "tint_pointsize"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_6 "tint_symbol_6"
+               OpEntryPoint Vertex %vert_main1 "vert_main1" %pos_1 %loc0_1 %vertex_point_size
+               OpEntryPoint Vertex %vert_main2 "vert_main2" %pos_2 %loc0_2 %vertex_point_size_1
+               OpName %pos_1 "pos_1"
+               OpName %loc0_1 "loc0_1"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %pos_2 "pos_2"
+               OpName %loc0_2 "loc0_2"
+               OpName %vertex_point_size_1 "vertex_point_size_1"
                OpName %VertexOutput "VertexOutput"
                OpMemberName %VertexOutput 0 "pos"
                OpMemberName %VertexOutput 1 "loc0"
                OpName %foo "foo"
                OpName %x "x"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol "tint_symbol"
+               OpName %vert_main1_inner "vert_main1_inner"
                OpName %vert_main1 "vert_main1"
-               OpName %tint_symbol_7 "tint_symbol_7"
-               OpName %tint_symbol_4 "tint_symbol_4"
+               OpName %vert_main2_inner "vert_main2_inner"
                OpName %vert_main2 "vert_main2"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 BuiltIn Position
-               OpDecorate %tint_symbol_2 Location 0
-               OpDecorate %tint_symbol_2 Flat
-               OpDecorate %tint_symbol_5 BuiltIn Position
-               OpDecorate %tint_symbol_6 Location 0
-               OpDecorate %tint_symbol_6 Flat
+               OpDecorate %pos_1 BuiltIn Position
+               OpDecorate %loc0_1 Location 0
+               OpDecorate %loc0_1 Flat
+               OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %pos_2 BuiltIn Position
+               OpDecorate %loc0_2 Location 0
+               OpDecorate %loc0_2 Flat
+               OpDecorate %vertex_point_size_1 BuiltIn PointSize
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+      %pos_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
 %_ptr_Output_int = OpTypePointer Output %int
-         %12 = OpConstantNull %int
-%tint_symbol_2 = OpVariable %_ptr_Output_int Output %12
-%tint_symbol_5 = OpVariable %_ptr_Output_v4float Output %8
-%tint_symbol_6 = OpVariable %_ptr_Output_int Output %12
+          %9 = OpConstantNull %int
+     %loc0_1 = OpVariable %_ptr_Output_int Output %9
+%_ptr_Output_float = OpTypePointer Output %float
+         %12 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %12
+      %pos_2 = OpVariable %_ptr_Output_v4float Output %5
+     %loc0_2 = OpVariable %_ptr_Output_int Output %9
+%vertex_point_size_1 = OpVariable %_ptr_Output_float Output %12
 %VertexOutput = OpTypeStruct %v4float %int
-         %15 = OpTypeFunction %VertexOutput %float
+         %16 = OpTypeFunction %VertexOutput %float
     %float_1 = OpConstant %float 1
      %int_42 = OpConstant %int 42
-       %void = OpTypeVoid
-         %24 = OpTypeFunction %void %VertexOutput
-         %31 = OpTypeFunction %void
+         %25 = OpTypeFunction %VertexOutput
   %float_0_5 = OpConstant %float 0.5
+       %void = OpTypeVoid
+         %30 = OpTypeFunction %void
  %float_0_25 = OpConstant %float 0.25
-        %foo = OpFunction %VertexOutput None %15
+        %foo = OpFunction %VertexOutput None %16
           %x = OpFunctionParameter %float
-         %19 = OpLabel
-         %21 = OpCompositeConstruct %v4float %x %x %x %float_1
-         %23 = OpCompositeConstruct %VertexOutput %21 %int_42
-               OpReturnValue %23
+         %20 = OpLabel
+         %22 = OpCompositeConstruct %v4float %x %x %x %float_1
+         %24 = OpCompositeConstruct %VertexOutput %22 %int_42
+               OpReturnValue %24
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %24
-%tint_symbol = OpFunctionParameter %VertexOutput
-         %28 = OpLabel
-         %29 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %29
-         %30 = OpCompositeExtract %int %tint_symbol 1
-               OpStore %tint_symbol_2 %30
-               OpReturn
+%vert_main1_inner = OpFunction %VertexOutput None %25
+         %27 = OpLabel
+         %28 = OpFunctionCall %VertexOutput %foo %float_0_5
+               OpReturnValue %28
                OpFunctionEnd
- %vert_main1 = OpFunction %void None %31
+ %vert_main1 = OpFunction %void None %30
          %33 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %35 = OpFunctionCall %VertexOutput %foo %float_0_5
-         %34 = OpFunctionCall %void %tint_symbol_3 %35
+         %34 = OpFunctionCall %VertexOutput %vert_main1_inner
+         %35 = OpCompositeExtract %v4float %34 0
+               OpStore %pos_1 %35
+         %36 = OpCompositeExtract %int %34 1
+               OpStore %loc0_1 %36
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
-%tint_symbol_7 = OpFunction %void None %24
-%tint_symbol_4 = OpFunctionParameter %VertexOutput
-         %39 = OpLabel
-         %40 = OpCompositeExtract %v4float %tint_symbol_4 0
-               OpStore %tint_symbol_5 %40
-         %41 = OpCompositeExtract %int %tint_symbol_4 1
-               OpStore %tint_symbol_6 %41
-               OpReturn
+%vert_main2_inner = OpFunction %VertexOutput None %25
+         %38 = OpLabel
+         %39 = OpFunctionCall %VertexOutput %foo %float_0_25
+               OpReturnValue %39
                OpFunctionEnd
- %vert_main2 = OpFunction %void None %31
-         %43 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %45 = OpFunctionCall %VertexOutput %foo %float_0_25
-         %44 = OpFunctionCall %void %tint_symbol_7 %45
+ %vert_main2 = OpFunction %void None %30
+         %42 = OpLabel
+         %43 = OpFunctionCall %VertexOutput %vert_main2_inner
+         %44 = OpCompositeExtract %v4float %43 0
+               OpStore %pos_2 %44
+         %45 = OpCompositeExtract %int %43 1
+               OpStore %loc0_2 %45
+               OpStore %vertex_point_size_1 %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/shared_struct_storage_buffer.wgsl.expected.spvasm b/test/shader_io/shared_struct_storage_buffer.wgsl.expected.spvasm
index 2bffafa..5f96817 100644
--- a/test/shader_io/shared_struct_storage_buffer.wgsl.expected.spvasm
+++ b/test/shader_io/shared_struct_storage_buffer.wgsl.expected.spvasm
@@ -1,21 +1,27 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 24
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %frag_main "frag_main" %tint_symbol %tint_symbol_1 %tint_symbol_2
+               OpEntryPoint Fragment %frag_main "frag_main" %f_1 %u_1 %v_1
                OpExecutionMode %frag_main OriginUpperLeft
+               OpName %f_1 "f_1"
+               OpName %u_1 "u_1"
+               OpName %v_1 "v_1"
                OpName %S "S"
                OpMemberName %S 0 "f"
                OpMemberName %S 1 "u"
                OpMemberName %S 2 "v"
                OpName %output "output"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
+               OpName %frag_main_inner "frag_main_inner"
+               OpName %input "input"
                OpName %frag_main "frag_main"
+               OpDecorate %f_1 Location 0
+               OpDecorate %u_1 Location 1
+               OpDecorate %u_1 Flat
+               OpDecorate %v_1 BuiltIn FragCoord
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpMemberDecorate %S 1 Offset 4
@@ -23,33 +29,36 @@
                OpDecorate %output NonReadable
                OpDecorate %output DescriptorSet 0
                OpDecorate %output Binding 0
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_1 Location 1
-               OpDecorate %tint_symbol_1 Flat
-               OpDecorate %tint_symbol_2 BuiltIn FragCoord
       %float = OpTypeFloat 32
+%_ptr_Input_float = OpTypePointer Input %float
+        %f_1 = OpVariable %_ptr_Input_float Input
        %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+        %u_1 = OpVariable %_ptr_Input_uint Input
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+        %v_1 = OpVariable %_ptr_Input_v4float Input
           %S = OpTypeStruct %float %uint %v4float
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
      %output = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_float = OpTypePointer Input %float
-%tint_symbol = OpVariable %_ptr_Input_float Input
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol_1 = OpVariable %_ptr_Input_uint Input
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol_2 = OpVariable %_ptr_Input_v4float Input
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void
-  %frag_main = OpFunction %void None %13
-         %16 = OpLabel
-         %17 = OpLoad %float %tint_symbol
-         %18 = OpLoad %uint %tint_symbol_1
-         %19 = OpLoad %v4float %tint_symbol_2
-         %20 = OpCompositeConstruct %S %17 %18 %19
-         %21 = OpCompositeExtract %float %20 0
-         %22 = OpCompositeExtract %uint %20 1
-         %23 = OpCompositeExtract %v4float %20 2
-               OpStore %output %20
+         %13 = OpTypeFunction %void %S
+         %21 = OpTypeFunction %void
+%frag_main_inner = OpFunction %void None %13
+      %input = OpFunctionParameter %S
+         %17 = OpLabel
+         %18 = OpCompositeExtract %float %input 0
+         %19 = OpCompositeExtract %uint %input 1
+         %20 = OpCompositeExtract %v4float %input 2
+               OpStore %output %input
+               OpReturn
+               OpFunctionEnd
+  %frag_main = OpFunction %void None %21
+         %23 = OpLabel
+         %25 = OpLoad %float %f_1
+         %26 = OpLoad %uint %u_1
+         %27 = OpLoad %v4float %v_1
+         %28 = OpCompositeConstruct %S %25 %26 %27
+         %24 = OpFunctionCall %void %frag_main_inner %28
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/vertex_input_builtins.wgsl.expected.spvasm b/test/shader_io/vertex_input_builtins.wgsl.expected.spvasm
index 198293c..07afe52 100644
--- a/test/shader_io/vertex_input_builtins.wgsl.expected.spvasm
+++ b/test/shader_io/vertex_input_builtins.wgsl.expected.spvasm
@@ -1,50 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 26
+; Bound: 27
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_1 %tint_symbol_3
-               OpName %tint_pointsize "tint_pointsize"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_2 "tint_symbol_2"
+               OpEntryPoint Vertex %main "main" %vertex_index_1 %instance_index_1 %value %vertex_point_size
+               OpName %vertex_index_1 "vertex_index_1"
+               OpName %instance_index_1 "instance_index_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %main_inner "main_inner"
+               OpName %vertex_index "vertex_index"
+               OpName %instance_index "instance_index"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol BuiltIn VertexIndex
-               OpDecorate %tint_symbol_1 BuiltIn InstanceIndex
-               OpDecorate %tint_symbol_3 BuiltIn Position
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+               OpDecorate %vertex_index_1 BuiltIn VertexIndex
+               OpDecorate %instance_index_1 BuiltIn InstanceIndex
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
-%tint_symbol_1 = OpVariable %_ptr_Input_uint Input
+%vertex_index_1 = OpVariable %_ptr_Input_uint Input
+%instance_index_1 = OpVariable %_ptr_Input_uint Input
+      %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %12
+          %9 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %9
+%_ptr_Output_float = OpTypePointer Output %float
+         %12 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %12
+         %13 = OpTypeFunction %v4float %uint %uint
        %void = OpTypeVoid
-         %13 = OpTypeFunction %void %v4float
-         %18 = OpTypeFunction %void
+         %19 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
-%tint_symbol_4 = OpFunction %void None %13
-%tint_symbol_2 = OpFunctionParameter %v4float
+ %main_inner = OpFunction %v4float None %13
+%vertex_index = OpFunctionParameter %uint
+%instance_index = OpFunctionParameter %uint
          %17 = OpLabel
-               OpStore %tint_symbol_3 %tint_symbol_2
-               OpReturn
+         %18 = OpIAdd %uint %vertex_index %instance_index
+               OpReturnValue %9
                OpFunctionEnd
-       %main = OpFunction %void None %18
-         %20 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %22 = OpLoad %uint %tint_symbol
-         %23 = OpLoad %uint %tint_symbol_1
-         %24 = OpIAdd %uint %22 %23
-         %25 = OpFunctionCall %void %tint_symbol_4 %12
+       %main = OpFunction %void None %19
+         %22 = OpLabel
+         %24 = OpLoad %uint %vertex_index_1
+         %25 = OpLoad %uint %instance_index_1
+         %23 = OpFunctionCall %v4float %main_inner %24 %25
+               OpStore %value %23
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/vertex_input_builtins_struct.wgsl.expected.spvasm b/test/shader_io/vertex_input_builtins_struct.wgsl.expected.spvasm
index b2af529..07a7179 100644
--- a/test/shader_io/vertex_input_builtins_struct.wgsl.expected.spvasm
+++ b/test/shader_io/vertex_input_builtins_struct.wgsl.expected.spvasm
@@ -5,55 +5,55 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_1 %tint_symbol_4
-               OpName %tint_pointsize "tint_pointsize"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %main "main"
+               OpEntryPoint Vertex %main "main" %vertex_index_1 %instance_index_1 %value %vertex_point_size
+               OpName %vertex_index_1 "vertex_index_1"
+               OpName %instance_index_1 "instance_index_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %VertexInputs "VertexInputs"
                OpMemberName %VertexInputs 0 "vertex_index"
                OpMemberName %VertexInputs 1 "instance_index"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol BuiltIn VertexIndex
-               OpDecorate %tint_symbol_1 BuiltIn InstanceIndex
-               OpDecorate %tint_symbol_4 BuiltIn Position
+               OpName %main_inner "main_inner"
+               OpName %inputs "inputs"
+               OpName %main "main"
+               OpDecorate %vertex_index_1 BuiltIn VertexIndex
+               OpDecorate %instance_index_1 BuiltIn InstanceIndex
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %VertexInputs 0 Offset 0
                OpMemberDecorate %VertexInputs 1 Offset 4
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
-%tint_symbol_1 = OpVariable %_ptr_Input_uint Input
+%vertex_index_1 = OpVariable %_ptr_Input_uint Input
+%instance_index_1 = OpVariable %_ptr_Input_uint Input
+      %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %12 = OpConstantNull %v4float
-%tint_symbol_4 = OpVariable %_ptr_Output_v4float Output %12
-       %void = OpTypeVoid
-         %13 = OpTypeFunction %void %v4float
-         %18 = OpTypeFunction %void
-    %float_1 = OpConstant %float 1
+          %9 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %9
+%_ptr_Output_float = OpTypePointer Output %float
+         %12 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %12
 %VertexInputs = OpTypeStruct %uint %uint
-%tint_symbol_5 = OpFunction %void None %13
-%tint_symbol_3 = OpFunctionParameter %v4float
+         %13 = OpTypeFunction %v4float %VertexInputs
+       %void = OpTypeVoid
+         %21 = OpTypeFunction %void
+    %float_1 = OpConstant %float 1
+ %main_inner = OpFunction %v4float None %13
+     %inputs = OpFunctionParameter %VertexInputs
          %17 = OpLabel
-               OpStore %tint_symbol_4 %tint_symbol_3
-               OpReturn
+         %18 = OpCompositeExtract %uint %inputs 0
+         %19 = OpCompositeExtract %uint %inputs 1
+         %20 = OpIAdd %uint %18 %19
+               OpReturnValue %9
                OpFunctionEnd
-       %main = OpFunction %void None %18
-         %20 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %23 = OpLoad %uint %tint_symbol
-         %24 = OpLoad %uint %tint_symbol_1
-         %25 = OpCompositeConstruct %VertexInputs %23 %24
-         %26 = OpCompositeExtract %uint %25 0
-         %27 = OpCompositeExtract %uint %25 1
-         %28 = OpIAdd %uint %26 %27
-         %29 = OpFunctionCall %void %tint_symbol_5 %12
+       %main = OpFunction %void None %21
+         %24 = OpLabel
+         %26 = OpLoad %uint %vertex_index_1
+         %27 = OpLoad %uint %instance_index_1
+         %28 = OpCompositeConstruct %VertexInputs %26 %27
+         %25 = OpFunctionCall %v4float %main_inner %28
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/vertex_input_locations.wgsl.expected.spvasm b/test/shader_io/vertex_input_locations.wgsl.expected.spvasm
index 9a0c93b..d4d8553 100644
--- a/test/shader_io/vertex_input_locations.wgsl.expected.spvasm
+++ b/test/shader_io/vertex_input_locations.wgsl.expected.spvasm
@@ -1,61 +1,67 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 36
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_5
-               OpName %tint_pointsize "tint_pointsize"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_6 "tint_symbol_6"
-               OpName %tint_symbol_4 "tint_symbol_4"
+               OpEntryPoint Vertex %main "main" %loc0_1 %loc1_1 %loc2_1 %loc3_1 %value %vertex_point_size
+               OpName %loc0_1 "loc0_1"
+               OpName %loc1_1 "loc1_1"
+               OpName %loc2_1 "loc2_1"
+               OpName %loc3_1 "loc3_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %main_inner "main_inner"
+               OpName %loc0 "loc0"
+               OpName %loc1 "loc1"
+               OpName %loc2 "loc2"
+               OpName %loc3 "loc3"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_1 Location 1
-               OpDecorate %tint_symbol_2 Location 2
-               OpDecorate %tint_symbol_3 Location 3
-               OpDecorate %tint_symbol_5 BuiltIn Position
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+               OpDecorate %loc0_1 Location 0
+               OpDecorate %loc1_1 Location 1
+               OpDecorate %loc2_1 Location 2
+               OpDecorate %loc3_1 Location 3
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
         %int = OpTypeInt 32 1
 %_ptr_Input_int = OpTypePointer Input %int
-%tint_symbol = OpVariable %_ptr_Input_int Input
+     %loc0_1 = OpVariable %_ptr_Input_int Input
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol_1 = OpVariable %_ptr_Input_uint Input
+     %loc1_1 = OpVariable %_ptr_Input_uint Input
+      %float = OpTypeFloat 32
 %_ptr_Input_float = OpTypePointer Input %float
-%tint_symbol_2 = OpVariable %_ptr_Input_float Input
+     %loc2_1 = OpVariable %_ptr_Input_float Input
     %v4float = OpTypeVector %float 4
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol_3 = OpVariable %_ptr_Input_v4float Input
+     %loc3_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %18 = OpConstantNull %v4float
-%tint_symbol_5 = OpVariable %_ptr_Output_v4float Output %18
+         %15 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %15
+%_ptr_Output_float = OpTypePointer Output %float
+         %18 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %18
+         %19 = OpTypeFunction %v4float %int %uint %float %v4float
        %void = OpTypeVoid
-         %19 = OpTypeFunction %void %v4float
-         %24 = OpTypeFunction %void
+         %26 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
-%tint_symbol_6 = OpFunction %void None %19
-%tint_symbol_4 = OpFunctionParameter %v4float
-         %23 = OpLabel
-               OpStore %tint_symbol_5 %tint_symbol_4
-               OpReturn
+ %main_inner = OpFunction %v4float None %19
+       %loc0 = OpFunctionParameter %int
+       %loc1 = OpFunctionParameter %uint
+       %loc2 = OpFunctionParameter %float
+       %loc3 = OpFunctionParameter %v4float
+         %25 = OpLabel
+               OpReturnValue %15
                OpFunctionEnd
-       %main = OpFunction %void None %24
-         %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpLoad %int %tint_symbol
-         %29 = OpLoad %uint %tint_symbol_1
-         %30 = OpLoad %float %tint_symbol_2
-         %31 = OpLoad %v4float %tint_symbol_3
-         %32 = OpFunctionCall %void %tint_symbol_6 %18
+       %main = OpFunction %void None %26
+         %29 = OpLabel
+         %31 = OpLoad %int %loc0_1
+         %32 = OpLoad %uint %loc1_1
+         %33 = OpLoad %float %loc2_1
+         %34 = OpLoad %v4float %loc3_1
+         %30 = OpFunctionCall %v4float %main_inner %31 %32 %33 %34
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/vertex_input_locations_struct.wgsl.expected.spvasm b/test/shader_io/vertex_input_locations_struct.wgsl.expected.spvasm
index 3766af8..924ce71 100644
--- a/test/shader_io/vertex_input_locations_struct.wgsl.expected.spvasm
+++ b/test/shader_io/vertex_input_locations_struct.wgsl.expected.spvasm
@@ -5,72 +5,72 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_6
-               OpName %tint_pointsize "tint_pointsize"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_6 "tint_symbol_6"
-               OpName %tint_symbol_7 "tint_symbol_7"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %main "main"
+               OpEntryPoint Vertex %main "main" %loc0_1 %loc1_1 %loc2_1 %loc3_1 %value %vertex_point_size
+               OpName %loc0_1 "loc0_1"
+               OpName %loc1_1 "loc1_1"
+               OpName %loc2_1 "loc2_1"
+               OpName %loc3_1 "loc3_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %VertexInputs "VertexInputs"
                OpMemberName %VertexInputs 0 "loc0"
                OpMemberName %VertexInputs 1 "loc1"
                OpMemberName %VertexInputs 2 "loc2"
                OpMemberName %VertexInputs 3 "loc3"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_1 Location 1
-               OpDecorate %tint_symbol_2 Location 2
-               OpDecorate %tint_symbol_3 Location 3
-               OpDecorate %tint_symbol_6 BuiltIn Position
+               OpName %main_inner "main_inner"
+               OpName %inputs "inputs"
+               OpName %main "main"
+               OpDecorate %loc0_1 Location 0
+               OpDecorate %loc1_1 Location 1
+               OpDecorate %loc2_1 Location 2
+               OpDecorate %loc3_1 Location 3
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %VertexInputs 0 Offset 0
                OpMemberDecorate %VertexInputs 1 Offset 4
                OpMemberDecorate %VertexInputs 2 Offset 8
                OpMemberDecorate %VertexInputs 3 Offset 16
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
         %int = OpTypeInt 32 1
 %_ptr_Input_int = OpTypePointer Input %int
-%tint_symbol = OpVariable %_ptr_Input_int Input
+     %loc0_1 = OpVariable %_ptr_Input_int Input
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol_1 = OpVariable %_ptr_Input_uint Input
+     %loc1_1 = OpVariable %_ptr_Input_uint Input
+      %float = OpTypeFloat 32
 %_ptr_Input_float = OpTypePointer Input %float
-%tint_symbol_2 = OpVariable %_ptr_Input_float Input
+     %loc2_1 = OpVariable %_ptr_Input_float Input
     %v4float = OpTypeVector %float 4
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol_3 = OpVariable %_ptr_Input_v4float Input
+     %loc3_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %18 = OpConstantNull %v4float
-%tint_symbol_6 = OpVariable %_ptr_Output_v4float Output %18
-       %void = OpTypeVoid
-         %19 = OpTypeFunction %void %v4float
-         %24 = OpTypeFunction %void
-    %float_1 = OpConstant %float 1
+         %15 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %15
+%_ptr_Output_float = OpTypePointer Output %float
+         %18 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %18
 %VertexInputs = OpTypeStruct %int %uint %float %v4float
-%tint_symbol_7 = OpFunction %void None %19
-%tint_symbol_5 = OpFunctionParameter %v4float
+         %19 = OpTypeFunction %v4float %VertexInputs
+       %void = OpTypeVoid
+         %28 = OpTypeFunction %void
+    %float_1 = OpConstant %float 1
+ %main_inner = OpFunction %v4float None %19
+     %inputs = OpFunctionParameter %VertexInputs
          %23 = OpLabel
-               OpStore %tint_symbol_6 %tint_symbol_5
-               OpReturn
+         %24 = OpCompositeExtract %int %inputs 0
+         %25 = OpCompositeExtract %uint %inputs 1
+         %26 = OpCompositeExtract %float %inputs 2
+         %27 = OpCompositeExtract %v4float %inputs 3
+               OpReturnValue %15
                OpFunctionEnd
-       %main = OpFunction %void None %24
-         %26 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpLoad %int %tint_symbol
-         %30 = OpLoad %uint %tint_symbol_1
-         %31 = OpLoad %float %tint_symbol_2
-         %32 = OpLoad %v4float %tint_symbol_3
-         %33 = OpCompositeConstruct %VertexInputs %29 %30 %31 %32
-         %34 = OpCompositeExtract %int %33 0
-         %35 = OpCompositeExtract %uint %33 1
-         %36 = OpCompositeExtract %float %33 2
-         %37 = OpCompositeExtract %v4float %33 3
-         %38 = OpFunctionCall %void %tint_symbol_7 %18
+       %main = OpFunction %void None %28
+         %31 = OpLabel
+         %33 = OpLoad %int %loc0_1
+         %34 = OpLoad %uint %loc1_1
+         %35 = OpLoad %float %loc2_1
+         %36 = OpLoad %v4float %loc3_1
+         %37 = OpCompositeConstruct %VertexInputs %33 %34 %35 %36
+         %32 = OpFunctionCall %v4float %main_inner %37
+               OpStore %value %32
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/vertex_input_mixed.wgsl.expected.spvasm b/test/shader_io/vertex_input_mixed.wgsl.expected.spvasm
index f930879..e59b852 100644
--- a/test/shader_io/vertex_input_mixed.wgsl.expected.spvasm
+++ b/test/shader_io/vertex_input_mixed.wgsl.expected.spvasm
@@ -1,88 +1,94 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_1 %tint_symbol_5 %tint_symbol_6 %tint_symbol_4 %tint_symbol_3 %tint_symbol_9
-               OpName %tint_pointsize "tint_pointsize"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_6 "tint_symbol_6"
-               OpName %tint_symbol_9 "tint_symbol_9"
-               OpName %tint_symbol_10 "tint_symbol_10"
-               OpName %tint_symbol_8 "tint_symbol_8"
-               OpName %main "main"
+               OpEntryPoint Vertex %main "main" %vertex_index_1 %loc0_1 %loc1_1 %instance_index_1 %loc2_1 %loc3_1 %value %vertex_point_size
+               OpName %vertex_index_1 "vertex_index_1"
+               OpName %loc0_1 "loc0_1"
+               OpName %loc1_1 "loc1_1"
+               OpName %instance_index_1 "instance_index_1"
+               OpName %loc2_1 "loc2_1"
+               OpName %loc3_1 "loc3_1"
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %VertexInputs0 "VertexInputs0"
                OpMemberName %VertexInputs0 0 "vertex_index"
                OpMemberName %VertexInputs0 1 "loc0"
                OpName %VertexInputs1 "VertexInputs1"
                OpMemberName %VertexInputs1 0 "loc2"
                OpMemberName %VertexInputs1 1 "loc3"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol BuiltIn VertexIndex
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_3 Location 1
-               OpDecorate %tint_symbol_4 BuiltIn InstanceIndex
-               OpDecorate %tint_symbol_5 Location 2
-               OpDecorate %tint_symbol_6 Location 3
-               OpDecorate %tint_symbol_9 BuiltIn Position
+               OpName %main_inner "main_inner"
+               OpName %inputs0 "inputs0"
+               OpName %loc1 "loc1"
+               OpName %instance_index "instance_index"
+               OpName %inputs1 "inputs1"
+               OpName %main "main"
+               OpDecorate %vertex_index_1 BuiltIn VertexIndex
+               OpDecorate %loc0_1 Location 0
+               OpDecorate %loc1_1 Location 1
+               OpDecorate %instance_index_1 BuiltIn InstanceIndex
+               OpDecorate %loc2_1 Location 2
+               OpDecorate %loc3_1 Location 3
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %VertexInputs0 0 Offset 0
                OpMemberDecorate %VertexInputs0 1 Offset 4
                OpMemberDecorate %VertexInputs1 0 Offset 0
                OpMemberDecorate %VertexInputs1 1 Offset 16
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%vertex_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
 %_ptr_Input_int = OpTypePointer Input %int
-%tint_symbol_1 = OpVariable %_ptr_Input_int Input
-%tint_symbol_3 = OpVariable %_ptr_Input_uint Input
-%tint_symbol_4 = OpVariable %_ptr_Input_uint Input
+     %loc0_1 = OpVariable %_ptr_Input_int Input
+     %loc1_1 = OpVariable %_ptr_Input_uint Input
+%instance_index_1 = OpVariable %_ptr_Input_uint Input
+      %float = OpTypeFloat 32
 %_ptr_Input_float = OpTypePointer Input %float
-%tint_symbol_5 = OpVariable %_ptr_Input_float Input
+     %loc2_1 = OpVariable %_ptr_Input_float Input
     %v4float = OpTypeVector %float 4
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol_6 = OpVariable %_ptr_Input_v4float Input
+     %loc3_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %20 = OpConstantNull %v4float
-%tint_symbol_9 = OpVariable %_ptr_Output_v4float Output %20
-       %void = OpTypeVoid
-         %21 = OpTypeFunction %void %v4float
-         %26 = OpTypeFunction %void
-    %float_1 = OpConstant %float 1
+         %17 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %17
+%_ptr_Output_float = OpTypePointer Output %float
+         %20 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %20
 %VertexInputs0 = OpTypeStruct %uint %int
 %VertexInputs1 = OpTypeStruct %float %v4float
-%tint_symbol_10 = OpFunction %void None %21
-%tint_symbol_8 = OpFunctionParameter %v4float
-         %25 = OpLabel
-               OpStore %tint_symbol_9 %tint_symbol_8
-               OpReturn
+         %21 = OpTypeFunction %v4float %VertexInputs0 %uint %uint %VertexInputs1
+       %void = OpTypeVoid
+         %35 = OpTypeFunction %void
+    %float_1 = OpConstant %float 1
+ %main_inner = OpFunction %v4float None %21
+    %inputs0 = OpFunctionParameter %VertexInputs0
+       %loc1 = OpFunctionParameter %uint
+%instance_index = OpFunctionParameter %uint
+    %inputs1 = OpFunctionParameter %VertexInputs1
+         %29 = OpLabel
+         %30 = OpCompositeExtract %uint %inputs0 0
+         %31 = OpIAdd %uint %30 %instance_index
+         %32 = OpCompositeExtract %int %inputs0 1
+         %33 = OpCompositeExtract %float %inputs1 0
+         %34 = OpCompositeExtract %v4float %inputs1 1
+               OpReturnValue %17
                OpFunctionEnd
-       %main = OpFunction %void None %26
-         %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpLoad %uint %tint_symbol
-         %32 = OpLoad %int %tint_symbol_1
-         %33 = OpCompositeConstruct %VertexInputs0 %31 %32
-         %35 = OpLoad %float %tint_symbol_5
-         %36 = OpLoad %v4float %tint_symbol_6
-         %37 = OpCompositeConstruct %VertexInputs1 %35 %36
-         %38 = OpCompositeExtract %uint %33 0
-         %39 = OpLoad %uint %tint_symbol_4
-         %40 = OpIAdd %uint %38 %39
-         %41 = OpCompositeExtract %int %33 1
-         %42 = OpLoad %uint %tint_symbol_3
-         %43 = OpCompositeExtract %float %37 0
-         %44 = OpCompositeExtract %v4float %37 1
-         %45 = OpFunctionCall %void %tint_symbol_10 %20
+       %main = OpFunction %void None %35
+         %38 = OpLabel
+         %40 = OpLoad %uint %vertex_index_1
+         %41 = OpLoad %int %loc0_1
+         %42 = OpCompositeConstruct %VertexInputs0 %40 %41
+         %43 = OpLoad %uint %loc1_1
+         %44 = OpLoad %uint %instance_index_1
+         %45 = OpLoad %float %loc2_1
+         %46 = OpLoad %v4float %loc3_1
+         %47 = OpCompositeConstruct %VertexInputs1 %45 %46
+         %39 = OpFunctionCall %v4float %main_inner %42 %43 %44 %47
+               OpStore %value %39
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/vertex_output_builtins.wgsl.expected.spvasm b/test/shader_io/vertex_output_builtins.wgsl.expected.spvasm
index c92e684..3b4aebe 100644
--- a/test/shader_io/vertex_output_builtins.wgsl.expected.spvasm
+++ b/test/shader_io/vertex_output_builtins.wgsl.expected.spvasm
@@ -1,43 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 23
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1
-               OpName %tint_pointsize "tint_pointsize"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpEntryPoint Vertex %main "main" %value %vertex_point_size
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 BuiltIn Position
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
-       %void = OpTypeVoid
-          %9 = OpTypeFunction %void %v4float
-         %14 = OpTypeFunction %void
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+          %9 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
     %float_2 = OpConstant %float 2
     %float_3 = OpConstant %float 3
     %float_4 = OpConstant %float 4
-         %22 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
-%tint_symbol_2 = OpFunction %void None %9
-%tint_symbol = OpFunctionParameter %v4float
-         %13 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+         %16 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
+       %void = OpTypeVoid
+         %17 = OpTypeFunction %void
+ %main_inner = OpFunction %v4float None %9
+         %11 = OpLabel
+               OpReturnValue %16
                OpFunctionEnd
-       %main = OpFunction %void None %14
-         %16 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %18 = OpFunctionCall %void %tint_symbol_2 %22
+       %main = OpFunction %void None %17
+         %20 = OpLabel
+         %21 = OpFunctionCall %v4float %main_inner
+               OpStore %value %21
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/vertex_output_builtins_struct.wgsl.expected.spvasm b/test/shader_io/vertex_output_builtins_struct.wgsl.expected.spvasm
index ae99bdc..0f3a987 100644
--- a/test/shader_io/vertex_output_builtins_struct.wgsl.expected.spvasm
+++ b/test/shader_io/vertex_output_builtins_struct.wgsl.expected.spvasm
@@ -1,49 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 26
+; Bound: 25
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1
-               OpName %tint_pointsize "tint_pointsize"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpEntryPoint Vertex %main "main" %position_1 %vertex_point_size
+               OpName %position_1 "position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %VertexOutputs "VertexOutputs"
                OpMemberName %VertexOutputs 0 "position"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 BuiltIn Position
+               OpDecorate %position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %VertexOutputs 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-          %8 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
-       %void = OpTypeVoid
+          %5 = OpConstantNull %v4float
+ %position_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
 %VertexOutputs = OpTypeStruct %v4float
-          %9 = OpTypeFunction %void %VertexOutputs
-         %16 = OpTypeFunction %void
+          %9 = OpTypeFunction %VertexOutputs
     %float_1 = OpConstant %float 1
     %float_2 = OpConstant %float 2
     %float_3 = OpConstant %float 3
     %float_4 = OpConstant %float 4
-         %24 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
-         %25 = OpConstantComposite %VertexOutputs %24
-%tint_symbol_2 = OpFunction %void None %9
-%tint_symbol = OpFunctionParameter %VertexOutputs
-         %14 = OpLabel
-         %15 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %15
-               OpReturn
+         %17 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
+         %18 = OpConstantComposite %VertexOutputs %17
+       %void = OpTypeVoid
+         %19 = OpTypeFunction %void
+ %main_inner = OpFunction %VertexOutputs None %9
+         %12 = OpLabel
+               OpReturnValue %18
                OpFunctionEnd
-       %main = OpFunction %void None %16
-         %18 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %20 = OpFunctionCall %void %tint_symbol_2 %25
+       %main = OpFunction %void None %19
+         %22 = OpLabel
+         %23 = OpFunctionCall %VertexOutputs %main_inner
+         %24 = OpCompositeExtract %v4float %23 0
+               OpStore %position_1 %24
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/shader_io/vertex_output_locations_struct.wgsl.expected.spvasm b/test/shader_io/vertex_output_locations_struct.wgsl.expected.spvasm
index bb0fbce..e3bbf30 100644
--- a/test/shader_io/vertex_output_locations_struct.wgsl.expected.spvasm
+++ b/test/shader_io/vertex_output_locations_struct.wgsl.expected.spvasm
@@ -1,87 +1,85 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4 %tint_symbol_5
-               OpName %tint_pointsize "tint_pointsize"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_5 "tint_symbol_5"
+               OpEntryPoint Vertex %main "main" %loc0_1 %loc1_1 %loc2_1 %loc3_1 %position_1 %vertex_point_size
+               OpName %loc0_1 "loc0_1"
+               OpName %loc1_1 "loc1_1"
+               OpName %loc2_1 "loc2_1"
+               OpName %loc3_1 "loc3_1"
+               OpName %position_1 "position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %VertexOutputs "VertexOutputs"
                OpMemberName %VertexOutputs 0 "loc0"
                OpMemberName %VertexOutputs 1 "loc1"
                OpMemberName %VertexOutputs 2 "loc2"
                OpMemberName %VertexOutputs 3 "loc3"
                OpMemberName %VertexOutputs 4 "position"
-               OpName %tint_symbol_6 "tint_symbol_6"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_1 Flat
-               OpDecorate %tint_symbol_2 Location 1
-               OpDecorate %tint_symbol_2 Flat
-               OpDecorate %tint_symbol_3 Location 2
-               OpDecorate %tint_symbol_4 Location 3
-               OpDecorate %tint_symbol_5 BuiltIn Position
+               OpDecorate %loc0_1 Location 0
+               OpDecorate %loc0_1 Flat
+               OpDecorate %loc1_1 Location 1
+               OpDecorate %loc1_1 Flat
+               OpDecorate %loc2_1 Location 2
+               OpDecorate %loc3_1 Location 3
+               OpDecorate %position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %VertexOutputs 0 Offset 0
                OpMemberDecorate %VertexOutputs 1 Offset 4
                OpMemberDecorate %VertexOutputs 2 Offset 8
                OpMemberDecorate %VertexOutputs 3 Offset 16
                OpMemberDecorate %VertexOutputs 4 Offset 32
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
         %int = OpTypeInt 32 1
 %_ptr_Output_int = OpTypePointer Output %int
-          %8 = OpConstantNull %int
-%tint_symbol_1 = OpVariable %_ptr_Output_int Output %8
+          %4 = OpConstantNull %int
+     %loc0_1 = OpVariable %_ptr_Output_int Output %4
        %uint = OpTypeInt 32 0
 %_ptr_Output_uint = OpTypePointer Output %uint
-         %12 = OpConstantNull %uint
-%tint_symbol_2 = OpVariable %_ptr_Output_uint Output %12
-%tint_symbol_3 = OpVariable %_ptr_Output_float Output %4
+          %8 = OpConstantNull %uint
+     %loc1_1 = OpVariable %_ptr_Output_uint Output %8
+      %float = OpTypeFloat 32
+%_ptr_Output_float = OpTypePointer Output %float
+         %12 = OpConstantNull %float
+     %loc2_1 = OpVariable %_ptr_Output_float Output %12
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-         %17 = OpConstantNull %v4float
-%tint_symbol_4 = OpVariable %_ptr_Output_v4float Output %17
-%tint_symbol_5 = OpVariable %_ptr_Output_v4float Output %17
-       %void = OpTypeVoid
+         %16 = OpConstantNull %v4float
+     %loc3_1 = OpVariable %_ptr_Output_v4float Output %16
+ %position_1 = OpVariable %_ptr_Output_v4float Output %16
+%vertex_point_size = OpVariable %_ptr_Output_float Output %12
 %VertexOutputs = OpTypeStruct %int %uint %float %v4float %v4float
-         %19 = OpTypeFunction %void %VertexOutputs
-         %30 = OpTypeFunction %void
-    %float_1 = OpConstant %float 1
+         %19 = OpTypeFunction %VertexOutputs
       %int_1 = OpConstant %int 1
      %uint_1 = OpConstant %uint 1
+    %float_1 = OpConstant %float 1
     %float_2 = OpConstant %float 2
     %float_3 = OpConstant %float 3
     %float_4 = OpConstant %float 4
-         %40 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
-         %41 = OpConstantComposite %VertexOutputs %int_1 %uint_1 %float_1 %40 %17
-%tint_symbol_6 = OpFunction %void None %19
-%tint_symbol = OpFunctionParameter %VertexOutputs
-         %24 = OpLabel
-         %25 = OpCompositeExtract %int %tint_symbol 0
-               OpStore %tint_symbol_1 %25
-         %26 = OpCompositeExtract %uint %tint_symbol 1
-               OpStore %tint_symbol_2 %26
-         %27 = OpCompositeExtract %float %tint_symbol 2
-               OpStore %tint_symbol_3 %27
-         %28 = OpCompositeExtract %v4float %tint_symbol 3
-               OpStore %tint_symbol_4 %28
-         %29 = OpCompositeExtract %v4float %tint_symbol 4
-               OpStore %tint_symbol_5 %29
-               OpReturn
+         %29 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
+         %30 = OpConstantComposite %VertexOutputs %int_1 %uint_1 %float_1 %29 %16
+       %void = OpTypeVoid
+         %31 = OpTypeFunction %void
+ %main_inner = OpFunction %VertexOutputs None %19
+         %22 = OpLabel
+               OpReturnValue %30
                OpFunctionEnd
-       %main = OpFunction %void None %30
-         %32 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %34 = OpFunctionCall %void %tint_symbol_6 %41
+       %main = OpFunction %void None %31
+         %34 = OpLabel
+         %35 = OpFunctionCall %VertexOutputs %main_inner
+         %36 = OpCompositeExtract %int %35 0
+               OpStore %loc0_1 %36
+         %37 = OpCompositeExtract %uint %35 1
+               OpStore %loc1_1 %37
+         %38 = OpCompositeExtract %float %35 2
+               OpStore %loc2_1 %38
+         %39 = OpCompositeExtract %v4float %35 3
+               OpStore %loc3_1 %39
+         %40 = OpCompositeExtract %v4float %35 4
+               OpStore %position_1 %40
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_0.spvasm.expected.spvasm b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_0.spvasm.expected.spvasm
index 9e443ff..0ed0565 100644
--- a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_0.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_0.spvasm.expected.spvasm
@@ -1,34 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 16
+; Bound: 21
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_1_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %x_1_param_1 BuiltIn LocalInvocationIndex
        %uint = OpTypeInt 32 0
-%_ptr_Private_uint = OpTypePointer Private %uint
-          %4 = OpConstantNull %uint
-        %x_1 = OpVariable %_ptr_Private_uint Private %4
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_uint Input
+%_ptr_Private_uint = OpTypePointer Private %uint
+          %6 = OpConstantNull %uint
+        %x_1 = OpVariable %_ptr_Private_uint Private %6
        %void = OpTypeVoid
           %7 = OpTypeFunction %void
+         %12 = OpTypeFunction %void %uint
      %main_1 = OpFunction %void None %7
          %10 = OpLabel
          %11 = OpLoad %uint %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %12
+  %x_1_param = OpFunctionParameter %uint
+         %15 = OpLabel
+               OpStore %x_1 %x_1_param
+         %16 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %7
-         %13 = OpLabel
-         %14 = OpLoad %uint %tint_symbol
-               OpStore %x_1 %14
-         %15 = OpFunctionCall %void %main_1
+         %18 = OpLabel
+         %20 = OpLoad %uint %x_1_param_1
+         %19 = OpFunctionCall %void %main_inner %20
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_1.spvasm.expected.spvasm b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_1.spvasm.expected.spvasm
index 230fe6a..1509a4b 100644
--- a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_1.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_1.spvasm.expected.spvasm
@@ -1,36 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 18
+; Bound: 23
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_1_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-        %x_1 = OpVariable %_ptr_Private_int Private %4
+               OpDecorate %x_1_param_1 BuiltIn LocalInvocationIndex
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_uint Input
+        %int = OpTypeInt 32 1
+%_ptr_Private_int = OpTypePointer Private %int
+          %7 = OpConstantNull %int
+        %x_1 = OpVariable %_ptr_Private_int Private %7
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
+         %13 = OpTypeFunction %void %uint
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
          %12 = OpLoad %int %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %13
+  %x_1_param = OpFunctionParameter %uint
+         %16 = OpLabel
+         %17 = OpBitcast %int %x_1_param
+               OpStore %x_1 %17
+         %18 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %8
-         %14 = OpLabel
-         %16 = OpLoad %uint %tint_symbol
-         %15 = OpBitcast %int %16
-               OpStore %x_1 %15
-         %17 = OpFunctionCall %void %main_1
+         %20 = OpLabel
+         %22 = OpLoad %uint %x_1_param_1
+         %21 = OpFunctionCall %void %main_inner %22
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_2.spvasm.expected.spvasm b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_2.spvasm.expected.spvasm
index 9e60c0e..6e238d4 100644
--- a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_2.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_2.spvasm.expected.spvasm
@@ -1,35 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 17
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_1_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationId
+               OpDecorate %x_1_param_1 BuiltIn LocalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-%_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_1 = OpVariable %_ptr_Private_v3uint Private %5
 %_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_v3uint Input
+%_ptr_Private_v3uint = OpTypePointer Private %v3uint
+          %7 = OpConstantNull %v3uint
+        %x_1 = OpVariable %_ptr_Private_v3uint Private %7
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
+         %13 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
          %12 = OpLoad %v3uint %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %13
+  %x_1_param = OpFunctionParameter %v3uint
+         %16 = OpLabel
+               OpStore %x_1 %x_1_param
+         %17 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %8
-         %14 = OpLabel
-         %15 = OpLoad %v3uint %tint_symbol
-               OpStore %x_1 %15
-         %16 = OpFunctionCall %void %main_1
+         %19 = OpLabel
+         %21 = OpLoad %v3uint %x_1_param_1
+         %20 = OpFunctionCall %void %main_inner %21
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_3.spvasm.expected.spvasm b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_3.spvasm.expected.spvasm
index d489e17..581ee7c 100644
--- a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_3.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_3.spvasm.expected.spvasm
@@ -1,38 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 20
+; Bound: 25
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_1_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationId
-        %int = OpTypeInt 32 1
-      %v3int = OpTypeVector %int 3
-%_ptr_Private_v3int = OpTypePointer Private %v3int
-          %5 = OpConstantNull %v3int
-        %x_1 = OpVariable %_ptr_Private_v3int Private %5
+               OpDecorate %x_1_param_1 BuiltIn LocalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
 %_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_v3uint Input
+        %int = OpTypeInt 32 1
+      %v3int = OpTypeVector %int 3
+%_ptr_Private_v3int = OpTypePointer Private %v3int
+          %9 = OpConstantNull %v3int
+        %x_1 = OpVariable %_ptr_Private_v3int Private %9
        %void = OpTypeVoid
          %10 = OpTypeFunction %void
+         %15 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %10
          %13 = OpLabel
          %14 = OpLoad %v3int %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %15
+  %x_1_param = OpFunctionParameter %v3uint
+         %18 = OpLabel
+         %19 = OpBitcast %v3int %x_1_param
+               OpStore %x_1 %19
+         %20 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %10
-         %16 = OpLabel
-         %18 = OpLoad %v3uint %tint_symbol
-         %17 = OpBitcast %v3int %18
-               OpStore %x_1 %17
-         %19 = OpFunctionCall %void %main_1
+         %22 = OpLabel
+         %24 = OpLoad %v3uint %x_1_param_1
+         %23 = OpFunctionCall %void %main_inner %24
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_4.spvasm.expected.spvasm b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_4.spvasm.expected.spvasm
index aedb68e..08c464f 100644
--- a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_4.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_4.spvasm.expected.spvasm
@@ -1,35 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 17
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_1_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
+               OpDecorate %x_1_param_1 BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-%_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_1 = OpVariable %_ptr_Private_v3uint Private %5
 %_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_v3uint Input
+%_ptr_Private_v3uint = OpTypePointer Private %v3uint
+          %7 = OpConstantNull %v3uint
+        %x_1 = OpVariable %_ptr_Private_v3uint Private %7
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
+         %13 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
          %12 = OpLoad %v3uint %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %13
+  %x_1_param = OpFunctionParameter %v3uint
+         %16 = OpLabel
+               OpStore %x_1 %x_1_param
+         %17 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %8
-         %14 = OpLabel
-         %15 = OpLoad %v3uint %tint_symbol
-               OpStore %x_1 %15
-         %16 = OpFunctionCall %void %main_1
+         %19 = OpLabel
+         %21 = OpLoad %v3uint %x_1_param_1
+         %20 = OpFunctionCall %void %main_inner %21
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_5.spvasm.expected.spvasm b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_5.spvasm.expected.spvasm
index 333a5bc..1e65d56 100644
--- a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_5.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_5.spvasm.expected.spvasm
@@ -1,38 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 20
+; Bound: 25
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_1_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
-        %int = OpTypeInt 32 1
-      %v3int = OpTypeVector %int 3
-%_ptr_Private_v3int = OpTypePointer Private %v3int
-          %5 = OpConstantNull %v3int
-        %x_1 = OpVariable %_ptr_Private_v3int Private %5
+               OpDecorate %x_1_param_1 BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
 %_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_v3uint Input
+        %int = OpTypeInt 32 1
+      %v3int = OpTypeVector %int 3
+%_ptr_Private_v3int = OpTypePointer Private %v3int
+          %9 = OpConstantNull %v3int
+        %x_1 = OpVariable %_ptr_Private_v3int Private %9
        %void = OpTypeVoid
          %10 = OpTypeFunction %void
+         %15 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %10
          %13 = OpLabel
          %14 = OpLoad %v3int %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %15
+  %x_1_param = OpFunctionParameter %v3uint
+         %18 = OpLabel
+         %19 = OpBitcast %v3int %x_1_param
+               OpStore %x_1 %19
+         %20 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %10
-         %16 = OpLabel
-         %18 = OpLoad %v3uint %tint_symbol
-         %17 = OpBitcast %v3int %18
-               OpStore %x_1 %17
-         %19 = OpFunctionCall %void %main_1
+         %22 = OpLabel
+         %24 = OpLoad %v3uint %x_1_param_1
+         %23 = OpFunctionCall %void %main_inner %24
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.spvasm b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.spvasm
index 8cb0f37..cb25298 100644
--- a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.spvasm
@@ -1,35 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 17
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_1_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn WorkgroupId
+               OpDecorate %x_1_param_1 BuiltIn WorkgroupId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-%_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_1 = OpVariable %_ptr_Private_v3uint Private %5
 %_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_v3uint Input
+%_ptr_Private_v3uint = OpTypePointer Private %v3uint
+          %7 = OpConstantNull %v3uint
+        %x_1 = OpVariable %_ptr_Private_v3uint Private %7
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
+         %13 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
          %12 = OpLoad %v3uint %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %13
+  %x_1_param = OpFunctionParameter %v3uint
+         %16 = OpLabel
+               OpStore %x_1 %x_1_param
+         %17 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %8
-         %14 = OpLabel
-         %15 = OpLoad %v3uint %tint_symbol
-               OpStore %x_1 %15
-         %16 = OpFunctionCall %void %main_1
+         %19 = OpLabel
+         %21 = OpLoad %v3uint %x_1_param_1
+         %20 = OpFunctionCall %void %main_inner %21
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_7.spvasm.expected.spvasm b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_7.spvasm.expected.spvasm
index fbeffa5..406850a 100644
--- a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_7.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_7.spvasm.expected.spvasm
@@ -1,38 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 20
+; Bound: 25
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_1_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn WorkgroupId
-        %int = OpTypeInt 32 1
-      %v3int = OpTypeVector %int 3
-%_ptr_Private_v3int = OpTypePointer Private %v3int
-          %5 = OpConstantNull %v3int
-        %x_1 = OpVariable %_ptr_Private_v3int Private %5
+               OpDecorate %x_1_param_1 BuiltIn WorkgroupId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
 %_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_v3uint Input
+        %int = OpTypeInt 32 1
+      %v3int = OpTypeVector %int 3
+%_ptr_Private_v3int = OpTypePointer Private %v3int
+          %9 = OpConstantNull %v3int
+        %x_1 = OpVariable %_ptr_Private_v3int Private %9
        %void = OpTypeVoid
          %10 = OpTypeFunction %void
+         %15 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %10
          %13 = OpLabel
          %14 = OpLoad %v3int %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %15
+  %x_1_param = OpFunctionParameter %v3uint
+         %18 = OpLabel
+         %19 = OpBitcast %v3int %x_1_param
+               OpStore %x_1 %19
+         %20 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %10
-         %16 = OpLabel
-         %18 = OpLoad %v3uint %tint_symbol
-         %17 = OpBitcast %v3int %18
-               OpStore %x_1 %17
-         %19 = OpFunctionCall %void %main_1
+         %22 = OpLabel
+         %24 = OpLoad %v3uint %x_1_param_1
+         %23 = OpFunctionCall %void %main_inner %24
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_0.spvasm.expected.spvasm b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_0.spvasm.expected.spvasm
index 9e443ff..0ed0565 100644
--- a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_0.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_0.spvasm.expected.spvasm
@@ -1,34 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 16
+; Bound: 21
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_1_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %x_1_param_1 BuiltIn LocalInvocationIndex
        %uint = OpTypeInt 32 0
-%_ptr_Private_uint = OpTypePointer Private %uint
-          %4 = OpConstantNull %uint
-        %x_1 = OpVariable %_ptr_Private_uint Private %4
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_uint Input
+%_ptr_Private_uint = OpTypePointer Private %uint
+          %6 = OpConstantNull %uint
+        %x_1 = OpVariable %_ptr_Private_uint Private %6
        %void = OpTypeVoid
           %7 = OpTypeFunction %void
+         %12 = OpTypeFunction %void %uint
      %main_1 = OpFunction %void None %7
          %10 = OpLabel
          %11 = OpLoad %uint %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %12
+  %x_1_param = OpFunctionParameter %uint
+         %15 = OpLabel
+               OpStore %x_1 %x_1_param
+         %16 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %7
-         %13 = OpLabel
-         %14 = OpLoad %uint %tint_symbol
-               OpStore %x_1 %14
-         %15 = OpFunctionCall %void %main_1
+         %18 = OpLabel
+         %20 = OpLoad %uint %x_1_param_1
+         %19 = OpFunctionCall %void %main_inner %20
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_1.spvasm.expected.spvasm b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_1.spvasm.expected.spvasm
index 230fe6a..1509a4b 100644
--- a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_1.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_1.spvasm.expected.spvasm
@@ -1,36 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 18
+; Bound: 23
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_1_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-        %x_1 = OpVariable %_ptr_Private_int Private %4
+               OpDecorate %x_1_param_1 BuiltIn LocalInvocationIndex
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_uint Input
+        %int = OpTypeInt 32 1
+%_ptr_Private_int = OpTypePointer Private %int
+          %7 = OpConstantNull %int
+        %x_1 = OpVariable %_ptr_Private_int Private %7
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
+         %13 = OpTypeFunction %void %uint
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
          %12 = OpLoad %int %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %13
+  %x_1_param = OpFunctionParameter %uint
+         %16 = OpLabel
+         %17 = OpBitcast %int %x_1_param
+               OpStore %x_1 %17
+         %18 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %8
-         %14 = OpLabel
-         %16 = OpLoad %uint %tint_symbol
-         %15 = OpBitcast %int %16
-               OpStore %x_1 %15
-         %17 = OpFunctionCall %void %main_1
+         %20 = OpLabel
+         %22 = OpLoad %uint %x_1_param_1
+         %21 = OpFunctionCall %void %main_inner %22
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_2.spvasm.expected.spvasm b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_2.spvasm.expected.spvasm
index 9e60c0e..6e238d4 100644
--- a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_2.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_2.spvasm.expected.spvasm
@@ -1,35 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 17
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_1_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationId
+               OpDecorate %x_1_param_1 BuiltIn LocalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-%_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_1 = OpVariable %_ptr_Private_v3uint Private %5
 %_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_v3uint Input
+%_ptr_Private_v3uint = OpTypePointer Private %v3uint
+          %7 = OpConstantNull %v3uint
+        %x_1 = OpVariable %_ptr_Private_v3uint Private %7
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
+         %13 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
          %12 = OpLoad %v3uint %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %13
+  %x_1_param = OpFunctionParameter %v3uint
+         %16 = OpLabel
+               OpStore %x_1 %x_1_param
+         %17 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %8
-         %14 = OpLabel
-         %15 = OpLoad %v3uint %tint_symbol
-               OpStore %x_1 %15
-         %16 = OpFunctionCall %void %main_1
+         %19 = OpLabel
+         %21 = OpLoad %v3uint %x_1_param_1
+         %20 = OpFunctionCall %void %main_inner %21
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_3.spvasm.expected.spvasm b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_3.spvasm.expected.spvasm
index d489e17..581ee7c 100644
--- a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_3.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_3.spvasm.expected.spvasm
@@ -1,38 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 20
+; Bound: 25
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_1_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationId
-        %int = OpTypeInt 32 1
-      %v3int = OpTypeVector %int 3
-%_ptr_Private_v3int = OpTypePointer Private %v3int
-          %5 = OpConstantNull %v3int
-        %x_1 = OpVariable %_ptr_Private_v3int Private %5
+               OpDecorate %x_1_param_1 BuiltIn LocalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
 %_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_v3uint Input
+        %int = OpTypeInt 32 1
+      %v3int = OpTypeVector %int 3
+%_ptr_Private_v3int = OpTypePointer Private %v3int
+          %9 = OpConstantNull %v3int
+        %x_1 = OpVariable %_ptr_Private_v3int Private %9
        %void = OpTypeVoid
          %10 = OpTypeFunction %void
+         %15 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %10
          %13 = OpLabel
          %14 = OpLoad %v3int %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %15
+  %x_1_param = OpFunctionParameter %v3uint
+         %18 = OpLabel
+         %19 = OpBitcast %v3int %x_1_param
+               OpStore %x_1 %19
+         %20 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %10
-         %16 = OpLabel
-         %18 = OpLoad %v3uint %tint_symbol
-         %17 = OpBitcast %v3int %18
-               OpStore %x_1 %17
-         %19 = OpFunctionCall %void %main_1
+         %22 = OpLabel
+         %24 = OpLoad %v3uint %x_1_param_1
+         %23 = OpFunctionCall %void %main_inner %24
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_4.spvasm.expected.spvasm b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_4.spvasm.expected.spvasm
index aedb68e..08c464f 100644
--- a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_4.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_4.spvasm.expected.spvasm
@@ -1,35 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 17
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_1_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
+               OpDecorate %x_1_param_1 BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-%_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_1 = OpVariable %_ptr_Private_v3uint Private %5
 %_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_v3uint Input
+%_ptr_Private_v3uint = OpTypePointer Private %v3uint
+          %7 = OpConstantNull %v3uint
+        %x_1 = OpVariable %_ptr_Private_v3uint Private %7
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
+         %13 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
          %12 = OpLoad %v3uint %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %13
+  %x_1_param = OpFunctionParameter %v3uint
+         %16 = OpLabel
+               OpStore %x_1 %x_1_param
+         %17 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %8
-         %14 = OpLabel
-         %15 = OpLoad %v3uint %tint_symbol
-               OpStore %x_1 %15
-         %16 = OpFunctionCall %void %main_1
+         %19 = OpLabel
+         %21 = OpLoad %v3uint %x_1_param_1
+         %20 = OpFunctionCall %void %main_inner %21
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_5.spvasm.expected.spvasm b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_5.spvasm.expected.spvasm
index 333a5bc..1e65d56 100644
--- a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_5.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_5.spvasm.expected.spvasm
@@ -1,38 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 20
+; Bound: 25
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_1_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
-        %int = OpTypeInt 32 1
-      %v3int = OpTypeVector %int 3
-%_ptr_Private_v3int = OpTypePointer Private %v3int
-          %5 = OpConstantNull %v3int
-        %x_1 = OpVariable %_ptr_Private_v3int Private %5
+               OpDecorate %x_1_param_1 BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
 %_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_v3uint Input
+        %int = OpTypeInt 32 1
+      %v3int = OpTypeVector %int 3
+%_ptr_Private_v3int = OpTypePointer Private %v3int
+          %9 = OpConstantNull %v3int
+        %x_1 = OpVariable %_ptr_Private_v3int Private %9
        %void = OpTypeVoid
          %10 = OpTypeFunction %void
+         %15 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %10
          %13 = OpLabel
          %14 = OpLoad %v3int %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %15
+  %x_1_param = OpFunctionParameter %v3uint
+         %18 = OpLabel
+         %19 = OpBitcast %v3int %x_1_param
+               OpStore %x_1 %19
+         %20 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %10
-         %16 = OpLabel
-         %18 = OpLoad %v3uint %tint_symbol
-         %17 = OpBitcast %v3int %18
-               OpStore %x_1 %17
-         %19 = OpFunctionCall %void %main_1
+         %22 = OpLabel
+         %24 = OpLoad %v3uint %x_1_param_1
+         %23 = OpFunctionCall %void %main_inner %24
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_6.spvasm.expected.spvasm b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_6.spvasm.expected.spvasm
index 8cb0f37..cb25298 100644
--- a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_6.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_6.spvasm.expected.spvasm
@@ -1,35 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 17
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_1_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn WorkgroupId
+               OpDecorate %x_1_param_1 BuiltIn WorkgroupId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-%_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_1 = OpVariable %_ptr_Private_v3uint Private %5
 %_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_v3uint Input
+%_ptr_Private_v3uint = OpTypePointer Private %v3uint
+          %7 = OpConstantNull %v3uint
+        %x_1 = OpVariable %_ptr_Private_v3uint Private %7
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
+         %13 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
          %12 = OpLoad %v3uint %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %13
+  %x_1_param = OpFunctionParameter %v3uint
+         %16 = OpLabel
+               OpStore %x_1 %x_1_param
+         %17 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %8
-         %14 = OpLabel
-         %15 = OpLoad %v3uint %tint_symbol
-               OpStore %x_1 %15
-         %16 = OpFunctionCall %void %main_1
+         %19 = OpLabel
+         %21 = OpLoad %v3uint %x_1_param_1
+         %20 = OpFunctionCall %void %main_inner %21
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_7.spvasm.expected.spvasm b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_7.spvasm.expected.spvasm
index fbeffa5..406850a 100644
--- a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_7.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_7.spvasm.expected.spvasm
@@ -1,38 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 20
+; Bound: 25
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_1_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn WorkgroupId
-        %int = OpTypeInt 32 1
-      %v3int = OpTypeVector %int 3
-%_ptr_Private_v3int = OpTypePointer Private %v3int
-          %5 = OpConstantNull %v3int
-        %x_1 = OpVariable %_ptr_Private_v3int Private %5
+               OpDecorate %x_1_param_1 BuiltIn WorkgroupId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
 %_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_v3uint Input
+        %int = OpTypeInt 32 1
+      %v3int = OpTypeVector %int 3
+%_ptr_Private_v3int = OpTypePointer Private %v3int
+          %9 = OpConstantNull %v3int
+        %x_1 = OpVariable %_ptr_Private_v3int Private %9
        %void = OpTypeVoid
          %10 = OpTypeFunction %void
+         %15 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %10
          %13 = OpLabel
          %14 = OpLoad %v3int %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %15
+  %x_1_param = OpFunctionParameter %v3uint
+         %18 = OpLabel
+         %19 = OpBitcast %v3int %x_1_param
+               OpStore %x_1 %19
+         %20 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %10
-         %16 = OpLabel
-         %18 = OpLoad %v3uint %tint_symbol
-         %17 = OpBitcast %v3int %18
-               OpStore %x_1 %17
-         %19 = OpFunctionCall %void %main_1
+         %22 = OpLabel
+         %24 = OpLoad %v3uint %x_1_param_1
+         %23 = OpFunctionCall %void %main_inner %24
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_0.spvasm.expected.spvasm b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_0.spvasm.expected.spvasm
index 9e443ff..0ed0565 100644
--- a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_0.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_0.spvasm.expected.spvasm
@@ -1,34 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 16
+; Bound: 21
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_1_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %x_1_param_1 BuiltIn LocalInvocationIndex
        %uint = OpTypeInt 32 0
-%_ptr_Private_uint = OpTypePointer Private %uint
-          %4 = OpConstantNull %uint
-        %x_1 = OpVariable %_ptr_Private_uint Private %4
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_uint Input
+%_ptr_Private_uint = OpTypePointer Private %uint
+          %6 = OpConstantNull %uint
+        %x_1 = OpVariable %_ptr_Private_uint Private %6
        %void = OpTypeVoid
           %7 = OpTypeFunction %void
+         %12 = OpTypeFunction %void %uint
      %main_1 = OpFunction %void None %7
          %10 = OpLabel
          %11 = OpLoad %uint %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %12
+  %x_1_param = OpFunctionParameter %uint
+         %15 = OpLabel
+               OpStore %x_1 %x_1_param
+         %16 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %7
-         %13 = OpLabel
-         %14 = OpLoad %uint %tint_symbol
-               OpStore %x_1 %14
-         %15 = OpFunctionCall %void %main_1
+         %18 = OpLabel
+         %20 = OpLoad %uint %x_1_param_1
+         %19 = OpFunctionCall %void %main_inner %20
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_1.spvasm.expected.spvasm b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_1.spvasm.expected.spvasm
index 230fe6a..1509a4b 100644
--- a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_1.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_1.spvasm.expected.spvasm
@@ -1,36 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 18
+; Bound: 23
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_1_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-        %x_1 = OpVariable %_ptr_Private_int Private %4
+               OpDecorate %x_1_param_1 BuiltIn LocalInvocationIndex
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_uint Input
+        %int = OpTypeInt 32 1
+%_ptr_Private_int = OpTypePointer Private %int
+          %7 = OpConstantNull %int
+        %x_1 = OpVariable %_ptr_Private_int Private %7
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
+         %13 = OpTypeFunction %void %uint
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
          %12 = OpLoad %int %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %13
+  %x_1_param = OpFunctionParameter %uint
+         %16 = OpLabel
+         %17 = OpBitcast %int %x_1_param
+               OpStore %x_1 %17
+         %18 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %8
-         %14 = OpLabel
-         %16 = OpLoad %uint %tint_symbol
-         %15 = OpBitcast %int %16
-               OpStore %x_1 %15
-         %17 = OpFunctionCall %void %main_1
+         %20 = OpLabel
+         %22 = OpLoad %uint %x_1_param_1
+         %21 = OpFunctionCall %void %main_inner %22
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_2.spvasm.expected.spvasm b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_2.spvasm.expected.spvasm
index 9e60c0e..6e238d4 100644
--- a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_2.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_2.spvasm.expected.spvasm
@@ -1,35 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 17
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_1_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationId
+               OpDecorate %x_1_param_1 BuiltIn LocalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-%_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_1 = OpVariable %_ptr_Private_v3uint Private %5
 %_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_v3uint Input
+%_ptr_Private_v3uint = OpTypePointer Private %v3uint
+          %7 = OpConstantNull %v3uint
+        %x_1 = OpVariable %_ptr_Private_v3uint Private %7
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
+         %13 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
          %12 = OpLoad %v3uint %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %13
+  %x_1_param = OpFunctionParameter %v3uint
+         %16 = OpLabel
+               OpStore %x_1 %x_1_param
+         %17 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %8
-         %14 = OpLabel
-         %15 = OpLoad %v3uint %tint_symbol
-               OpStore %x_1 %15
-         %16 = OpFunctionCall %void %main_1
+         %19 = OpLabel
+         %21 = OpLoad %v3uint %x_1_param_1
+         %20 = OpFunctionCall %void %main_inner %21
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_3.spvasm.expected.spvasm b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_3.spvasm.expected.spvasm
index d489e17..581ee7c 100644
--- a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_3.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_3.spvasm.expected.spvasm
@@ -1,38 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 20
+; Bound: 25
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_1_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationId
-        %int = OpTypeInt 32 1
-      %v3int = OpTypeVector %int 3
-%_ptr_Private_v3int = OpTypePointer Private %v3int
-          %5 = OpConstantNull %v3int
-        %x_1 = OpVariable %_ptr_Private_v3int Private %5
+               OpDecorate %x_1_param_1 BuiltIn LocalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
 %_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_v3uint Input
+        %int = OpTypeInt 32 1
+      %v3int = OpTypeVector %int 3
+%_ptr_Private_v3int = OpTypePointer Private %v3int
+          %9 = OpConstantNull %v3int
+        %x_1 = OpVariable %_ptr_Private_v3int Private %9
        %void = OpTypeVoid
          %10 = OpTypeFunction %void
+         %15 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %10
          %13 = OpLabel
          %14 = OpLoad %v3int %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %15
+  %x_1_param = OpFunctionParameter %v3uint
+         %18 = OpLabel
+         %19 = OpBitcast %v3int %x_1_param
+               OpStore %x_1 %19
+         %20 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %10
-         %16 = OpLabel
-         %18 = OpLoad %v3uint %tint_symbol
-         %17 = OpBitcast %v3int %18
-               OpStore %x_1 %17
-         %19 = OpFunctionCall %void %main_1
+         %22 = OpLabel
+         %24 = OpLoad %v3uint %x_1_param_1
+         %23 = OpFunctionCall %void %main_inner %24
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_4.spvasm.expected.spvasm b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_4.spvasm.expected.spvasm
index aedb68e..08c464f 100644
--- a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_4.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_4.spvasm.expected.spvasm
@@ -1,35 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 17
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_1_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
+               OpDecorate %x_1_param_1 BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-%_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_1 = OpVariable %_ptr_Private_v3uint Private %5
 %_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_v3uint Input
+%_ptr_Private_v3uint = OpTypePointer Private %v3uint
+          %7 = OpConstantNull %v3uint
+        %x_1 = OpVariable %_ptr_Private_v3uint Private %7
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
+         %13 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
          %12 = OpLoad %v3uint %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %13
+  %x_1_param = OpFunctionParameter %v3uint
+         %16 = OpLabel
+               OpStore %x_1 %x_1_param
+         %17 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %8
-         %14 = OpLabel
-         %15 = OpLoad %v3uint %tint_symbol
-               OpStore %x_1 %15
-         %16 = OpFunctionCall %void %main_1
+         %19 = OpLabel
+         %21 = OpLoad %v3uint %x_1_param_1
+         %20 = OpFunctionCall %void %main_inner %21
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_5.spvasm.expected.spvasm b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_5.spvasm.expected.spvasm
index 333a5bc..1e65d56 100644
--- a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_5.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_5.spvasm.expected.spvasm
@@ -1,38 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 20
+; Bound: 25
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_1_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
-        %int = OpTypeInt 32 1
-      %v3int = OpTypeVector %int 3
-%_ptr_Private_v3int = OpTypePointer Private %v3int
-          %5 = OpConstantNull %v3int
-        %x_1 = OpVariable %_ptr_Private_v3int Private %5
+               OpDecorate %x_1_param_1 BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
 %_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_v3uint Input
+        %int = OpTypeInt 32 1
+      %v3int = OpTypeVector %int 3
+%_ptr_Private_v3int = OpTypePointer Private %v3int
+          %9 = OpConstantNull %v3int
+        %x_1 = OpVariable %_ptr_Private_v3int Private %9
        %void = OpTypeVoid
          %10 = OpTypeFunction %void
+         %15 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %10
          %13 = OpLabel
          %14 = OpLoad %v3int %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %15
+  %x_1_param = OpFunctionParameter %v3uint
+         %18 = OpLabel
+         %19 = OpBitcast %v3int %x_1_param
+               OpStore %x_1 %19
+         %20 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %10
-         %16 = OpLabel
-         %18 = OpLoad %v3uint %tint_symbol
-         %17 = OpBitcast %v3int %18
-               OpStore %x_1 %17
-         %19 = OpFunctionCall %void %main_1
+         %22 = OpLabel
+         %24 = OpLoad %v3uint %x_1_param_1
+         %23 = OpFunctionCall %void %main_inner %24
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_6.spvasm.expected.spvasm b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_6.spvasm.expected.spvasm
index 8cb0f37..cb25298 100644
--- a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_6.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_6.spvasm.expected.spvasm
@@ -1,35 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 17
+; Bound: 22
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_1_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn WorkgroupId
+               OpDecorate %x_1_param_1 BuiltIn WorkgroupId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
-%_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_1 = OpVariable %_ptr_Private_v3uint Private %5
 %_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_v3uint Input
+%_ptr_Private_v3uint = OpTypePointer Private %v3uint
+          %7 = OpConstantNull %v3uint
+        %x_1 = OpVariable %_ptr_Private_v3uint Private %7
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
+         %13 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
          %12 = OpLoad %v3uint %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %13
+  %x_1_param = OpFunctionParameter %v3uint
+         %16 = OpLabel
+               OpStore %x_1 %x_1_param
+         %17 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %8
-         %14 = OpLabel
-         %15 = OpLoad %v3uint %tint_symbol
-               OpStore %x_1 %15
-         %16 = OpFunctionCall %void %main_1
+         %19 = OpLabel
+         %21 = OpLoad %v3uint %x_1_param_1
+         %20 = OpFunctionCall %void %main_inner %21
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_7.spvasm.expected.spvasm b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_7.spvasm.expected.spvasm
index fbeffa5..406850a 100644
--- a/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_7.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_7.spvasm.expected.spvasm
@@ -1,38 +1,47 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 20
+; Bound: 25
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_1_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn WorkgroupId
-        %int = OpTypeInt 32 1
-      %v3int = OpTypeVector %int 3
-%_ptr_Private_v3int = OpTypePointer Private %v3int
-          %5 = OpConstantNull %v3int
-        %x_1 = OpVariable %_ptr_Private_v3int Private %5
+               OpDecorate %x_1_param_1 BuiltIn WorkgroupId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
 %_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_v3uint Input
+        %int = OpTypeInt 32 1
+      %v3int = OpTypeVector %int 3
+%_ptr_Private_v3int = OpTypePointer Private %v3int
+          %9 = OpConstantNull %v3int
+        %x_1 = OpVariable %_ptr_Private_v3int Private %9
        %void = OpTypeVoid
          %10 = OpTypeFunction %void
+         %15 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %10
          %13 = OpLabel
          %14 = OpLoad %v3int %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %15
+  %x_1_param = OpFunctionParameter %v3uint
+         %18 = OpLabel
+         %19 = OpBitcast %v3int %x_1_param
+               OpStore %x_1 %19
+         %20 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %10
-         %16 = OpLabel
-         %18 = OpLoad %v3uint %tint_symbol
-         %17 = OpBitcast %v3int %18
-               OpStore %x_1 %17
-         %19 = OpFunctionCall %void %main_1
+         %22 = OpLabel
+         %24 = OpLoad %v3uint %x_1_param_1
+         %23 = OpFunctionCall %void %main_inner %24
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_ReadReplaced_Vertex.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_ReadReplaced_Vertex.spvasm.expected.spvasm
index 8ad0a08..ed72268 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_ReadReplaced_Vertex.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_ReadReplaced_Vertex.spvasm.expected.spvasm
@@ -1,59 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_2_1_1 %vertex_point_size
+               OpName %x_2_1_1 "x_2_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_2 "x_2"
                OpName %x_900 "x_900"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_2_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 BuiltIn Position
+               OpDecorate %x_2_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Private_float = OpTypePointer Private %float
-      %x_900 = OpVariable %_ptr_Private_float Private %4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+    %x_2_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+        %x_2 = OpVariable %_ptr_Private_v4float Private %5
+%_ptr_Private_float = OpTypePointer Private %float
+      %x_900 = OpVariable %_ptr_Private_float Private %8
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %18 = OpTypeFunction %void %main_out
+         %18 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
                OpStore %x_900 %float_1
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %main_out
-         %22 = OpLabel
-         %23 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %23
-               OpReturn
+ %main_inner = OpFunction %main_out None %18
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %main_1
+         %23 = OpLoad %v4float %x_2
+         %24 = OpCompositeConstruct %main_out %23
+               OpReturnValue %24
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %main_1
-         %28 = OpLoad %v4float %x_2
-         %29 = OpCompositeConstruct %main_out %28
-         %27 = OpFunctionCall %void %tint_symbol_2 %29
+         %26 = OpLabel
+         %27 = OpFunctionCall %main_out %main_inner
+         %28 = OpCompositeExtract %v4float %27 0
+               OpStore %x_2_1_1 %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_Write1_IsErased.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_Write1_IsErased.spvasm.expected.spvasm
index 8c45878..7ca42ed 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_Write1_IsErased.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_Write1_IsErased.spvasm.expected.spvasm
@@ -1,55 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 28
+; Bound: 27
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_2_1_1 %vertex_point_size
+               OpName %x_2_1_1 "x_2_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_2 "x_2"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_2_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 BuiltIn Position
+               OpDecorate %x_2_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+    %x_2_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+        %x_2 = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %15 = OpTypeFunction %void %main_out
+         %15 = OpTypeFunction %main_out
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %15
-%tint_symbol = OpFunctionParameter %main_out
-         %19 = OpLabel
-         %20 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %20
-               OpReturn
+ %main_inner = OpFunction %main_out None %15
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %main_1
+         %20 = OpLoad %v4float %x_2
+         %21 = OpCompositeConstruct %main_out %20
+               OpReturnValue %21
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %main_1
-         %26 = OpLoad %v4float %x_2
-         %27 = OpCompositeConstruct %main_out %26
-         %25 = OpFunctionCall %void %tint_symbol_2 %27
+         %23 = OpLabel
+         %24 = OpFunctionCall %main_out %main_inner
+         %25 = OpCompositeExtract %v4float %24 0
+               OpStore %x_2_1_1 %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.spvasm
index 8c45878..7ca42ed 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.spvasm
@@ -1,55 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 28
+; Bound: 27
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_2_1_1 %vertex_point_size
+               OpName %x_2_1_1 "x_2_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_2 "x_2"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_2_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 BuiltIn Position
+               OpDecorate %x_2_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+    %x_2_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+        %x_2 = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %15 = OpTypeFunction %void %main_out
+         %15 = OpTypeFunction %main_out
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %15
-%tint_symbol = OpFunctionParameter %main_out
-         %19 = OpLabel
-         %20 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %20
-               OpReturn
+ %main_inner = OpFunction %main_out None %15
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %main_1
+         %20 = OpLoad %v4float %x_2
+         %21 = OpCompositeConstruct %main_out %20
+               OpReturnValue %21
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %main_1
-         %26 = OpLoad %v4float %x_2
-         %27 = OpCompositeConstruct %main_out %26
-         %25 = OpFunctionCall %void %tint_symbol_2 %27
+         %23 = OpLabel
+         %24 = OpFunctionCall %main_out %main_inner
+         %25 = OpCompositeExtract %v4float %24 0
+               OpStore %x_2_1_1 %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_WriteViaCopyObjectPriorAccess_Erased.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_WriteViaCopyObjectPriorAccess_Erased.spvasm.expected.spvasm
index 8c45878..7ca42ed 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_WriteViaCopyObjectPriorAccess_Erased.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_WriteViaCopyObjectPriorAccess_Erased.spvasm.expected.spvasm
@@ -1,55 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 28
+; Bound: 27
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_2_1_1 %vertex_point_size
+               OpName %x_2_1_1 "x_2_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_2 "x_2"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_2_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 BuiltIn Position
+               OpDecorate %x_2_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+    %x_2_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+        %x_2 = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %15 = OpTypeFunction %void %main_out
+         %15 = OpTypeFunction %main_out
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %15
-%tint_symbol = OpFunctionParameter %main_out
-         %19 = OpLabel
-         %20 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %20
-               OpReturn
+ %main_inner = OpFunction %main_out None %15
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %main_1
+         %20 = OpLoad %v4float %x_2
+         %21 = OpCompositeConstruct %main_out %20
+               OpReturnValue %21
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %main_1
-         %26 = OpLoad %v4float %x_2
-         %27 = OpCompositeConstruct %main_out %26
-         %25 = OpFunctionCall %void %tint_symbol_2 %27
+         %23 = OpLabel
+         %24 = OpFunctionCall %main_out %main_inner
+         %25 = OpCompositeExtract %v4float %24 0
+               OpStore %x_2_1_1 %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_ReadReplaced.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_ReadReplaced.spvasm.expected.spvasm
index 7bed4b7..c042ca8 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_ReadReplaced.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_ReadReplaced.spvasm.expected.spvasm
@@ -1,59 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %gl_Position_1 %vertex_point_size
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_900 "x_900"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 BuiltIn Position
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-%_ptr_Private_float = OpTypePointer Private %float
-      %x_900 = OpVariable %_ptr_Private_float Private %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-         %10 = OpConstantNull %v4float
-%gl_Position = OpVariable %_ptr_Private_v4float Private %10
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %10
+          %5 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_float = OpTypePointer Private %float
+      %x_900 = OpVariable %_ptr_Private_float Private %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_Position = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %18 = OpTypeFunction %void %main_out
+         %18 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
                OpStore %x_900 %float_1
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %main_out
-         %22 = OpLabel
-         %23 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %23
-               OpReturn
+ %main_inner = OpFunction %main_out None %18
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %main_1
+         %23 = OpLoad %v4float %gl_Position
+         %24 = OpCompositeConstruct %main_out %23
+               OpReturnValue %24
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %25 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %main_1
-         %28 = OpLoad %v4float %gl_Position
-         %29 = OpCompositeConstruct %main_out %28
-         %27 = OpFunctionCall %void %tint_symbol_2 %29
+         %26 = OpLabel
+         %27 = OpFunctionCall %main_out %main_inner
+         %28 = OpCompositeExtract %v4float %27 0
+               OpStore %gl_Position_1 %28
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Write1_IsErased.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Write1_IsErased.spvasm.expected.spvasm
index 26910ee..d928dee 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Write1_IsErased.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Write1_IsErased.spvasm.expected.spvasm
@@ -1,55 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 28
+; Bound: 27
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %gl_Position_1 %vertex_point_size
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 BuiltIn Position
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_Position = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %15 = OpTypeFunction %void %main_out
+         %15 = OpTypeFunction %main_out
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %15
-%tint_symbol = OpFunctionParameter %main_out
-         %19 = OpLabel
-         %20 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %20
-               OpReturn
+ %main_inner = OpFunction %main_out None %15
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %main_1
+         %20 = OpLoad %v4float %gl_Position
+         %21 = OpCompositeConstruct %main_out %20
+               OpReturnValue %21
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %main_1
-         %26 = OpLoad %v4float %gl_Position
-         %27 = OpCompositeConstruct %main_out %26
-         %25 = OpFunctionCall %void %tint_symbol_2 %27
+         %23 = OpLabel
+         %24 = OpFunctionCall %main_out %main_inner
+         %25 = OpCompositeExtract %v4float %24 0
+               OpStore %gl_Position_1 %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.spvasm
index 26910ee..d928dee 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.spvasm
@@ -1,55 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 28
+; Bound: 27
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %gl_Position_1 %vertex_point_size
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 BuiltIn Position
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_Position = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %15 = OpTypeFunction %void %main_out
+         %15 = OpTypeFunction %main_out
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %15
-%tint_symbol = OpFunctionParameter %main_out
-         %19 = OpLabel
-         %20 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %20
-               OpReturn
+ %main_inner = OpFunction %main_out None %15
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %main_1
+         %20 = OpLoad %v4float %gl_Position
+         %21 = OpCompositeConstruct %main_out %20
+               OpReturnValue %21
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %main_1
-         %26 = OpLoad %v4float %gl_Position
-         %27 = OpCompositeConstruct %main_out %26
-         %25 = OpFunctionCall %void %tint_symbol_2 %27
+         %23 = OpLabel
+         %24 = OpFunctionCall %main_out %main_inner
+         %25 = OpCompositeExtract %v4float %24 0
+               OpStore %gl_Position_1 %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position.spvasm.expected.spvasm
index 26910ee..d928dee 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position.spvasm.expected.spvasm
@@ -1,55 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 28
+; Bound: 27
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %gl_Position_1 %vertex_point_size
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 BuiltIn Position
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_Position = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %15 = OpTypeFunction %void %main_out
+         %15 = OpTypeFunction %main_out
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %15
-%tint_symbol = OpFunctionParameter %main_out
-         %19 = OpLabel
-         %20 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %20
-               OpReturn
+ %main_inner = OpFunction %main_out None %15
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %main_1
+         %20 = OpLoad %v4float %gl_Position
+         %21 = OpCompositeConstruct %main_out %20
+               OpReturnValue %21
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %main_1
-         %26 = OpLoad %v4float %gl_Position
-         %27 = OpCompositeConstruct %main_out %26
-         %25 = OpFunctionCall %void %tint_symbol_2 %27
+         %23 = OpLabel
+         %24 = OpFunctionCall %main_out %main_inner
+         %25 = OpCompositeExtract %v4float %24 0
+               OpStore %gl_Position_1 %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position_Initializer.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position_Initializer.spvasm.expected.spvasm
index dfb0c5d..8c3d7cb 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position_Initializer.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position_Initializer.spvasm.expected.spvasm
@@ -1,59 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 32
+; Bound: 31
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %gl_Position_1 %vertex_point_size
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 BuiltIn Position
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
     %float_1 = OpConstant %float 1
     %float_2 = OpConstant %float 2
     %float_3 = OpConstant %float 3
     %float_4 = OpConstant %float 4
-         %10 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
+         %13 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-%gl_Position = OpVariable %_ptr_Private_v4float Private %10
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-         %15 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %15
+%gl_Position = OpVariable %_ptr_Private_v4float Private %13
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %20 = OpTypeFunction %void %main_out
+         %20 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %16
          %19 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %20
-%tint_symbol = OpFunctionParameter %main_out
-         %24 = OpLabel
-         %25 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %25
-               OpReturn
+ %main_inner = OpFunction %main_out None %20
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %main_1
+         %25 = OpLoad %v4float %gl_Position
+         %26 = OpCompositeConstruct %main_out %25
+               OpReturnValue %26
                OpFunctionEnd
        %main = OpFunction %void None %16
-         %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %28 = OpFunctionCall %void %main_1
-         %30 = OpLoad %v4float %gl_Position
-         %31 = OpCompositeConstruct %main_out %30
-         %29 = OpFunctionCall %void %tint_symbol_2 %31
+         %28 = OpLabel
+         %29 = OpFunctionCall %main_out %main_inner
+         %30 = OpCompositeExtract %v4float %29 0
+               OpStore %gl_Position_1 %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition.spvasm.expected.spvasm
index e96f80d..0a7c17b 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition.spvasm.expected.spvasm
@@ -1,58 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %gl_Position_1 %vertex_point_size
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 BuiltIn Position
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_Position = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
     %float_0 = OpConstant %float 0
          %16 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %17 = OpTypeFunction %void %main_out
+         %17 = OpTypeFunction %main_out
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
                OpStore %gl_Position %16
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %main_out
-         %21 = OpLabel
-         %22 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %22
-               OpReturn
+ %main_inner = OpFunction %main_out None %17
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %main_1
+         %22 = OpLoad %v4float %gl_Position
+         %23 = OpCompositeConstruct %main_out %22
+               OpReturnValue %23
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %main_1
-         %28 = OpLoad %v4float %gl_Position
-         %29 = OpCompositeConstruct %main_out %28
-         %27 = OpFunctionCall %void %tint_symbol_2 %29
+         %25 = OpLabel
+         %26 = OpFunctionCall %main_out %main_inner
+         %27 = OpCompositeExtract %v4float %26 0
+               OpStore %gl_Position_1 %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_OneAccessChain.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_OneAccessChain.spvasm.expected.spvasm
index 3589285..dca5f5f 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_OneAccessChain.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_OneAccessChain.spvasm.expected.spvasm
@@ -1,33 +1,32 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %gl_Position_1 %vertex_point_size
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 BuiltIn Position
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_Position = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -35,7 +34,7 @@
 %_ptr_Private_float = OpTypePointer Private %float
     %float_0 = OpConstant %float 0
    %main_out = OpTypeStruct %v4float
-         %20 = OpTypeFunction %void %main_out
+         %20 = OpTypeFunction %main_out
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
@@ -43,19 +42,18 @@
                OpStore %18 %float_0
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %20
-%tint_symbol = OpFunctionParameter %main_out
-         %24 = OpLabel
-         %25 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %25
-               OpReturn
+ %main_inner = OpFunction %main_out None %20
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %main_1
+         %25 = OpLoad %v4float %gl_Position
+         %26 = OpCompositeConstruct %main_out %25
+               OpReturnValue %26
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %main_1
-         %31 = OpLoad %v4float %gl_Position
-         %32 = OpCompositeConstruct %main_out %31
-         %30 = OpFunctionCall %void %tint_symbol_2 %32
+         %28 = OpLabel
+         %29 = OpFunctionCall %main_out %main_inner
+         %30 = OpCompositeExtract %v4float %29 0
+               OpStore %gl_Position_1 %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_TwoAccessChain.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_TwoAccessChain.spvasm.expected.spvasm
index 3589285..dca5f5f 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_TwoAccessChain.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_TwoAccessChain.spvasm.expected.spvasm
@@ -1,33 +1,32 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %gl_Position_1 %vertex_point_size
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 BuiltIn Position
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_Position = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -35,7 +34,7 @@
 %_ptr_Private_float = OpTypePointer Private %float
     %float_0 = OpConstant %float 0
    %main_out = OpTypeStruct %v4float
-         %20 = OpTypeFunction %void %main_out
+         %20 = OpTypeFunction %main_out
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
@@ -43,19 +42,18 @@
                OpStore %18 %float_0
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %20
-%tint_symbol = OpFunctionParameter %main_out
-         %24 = OpLabel
-         %25 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %25
-               OpReturn
+ %main_inner = OpFunction %main_out None %20
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %main_1
+         %25 = OpLoad %v4float %gl_Position
+         %26 = OpCompositeConstruct %main_out %25
+               OpReturnValue %26
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %27 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %29 = OpFunctionCall %void %main_1
-         %31 = OpLoad %v4float %gl_Position
-         %32 = OpCompositeConstruct %main_out %31
-         %30 = OpFunctionCall %void %tint_symbol_2 %32
+         %28 = OpLabel
+         %29 = OpFunctionCall %main_out %main_inner
+         %30 = OpCompositeExtract %v4float %29 0
+               OpStore %gl_Position_1 %30
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition_PerVertexStructOutOfOrderDecl.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition_PerVertexStructOutOfOrderDecl.spvasm.expected.spvasm
index e96f80d..0a7c17b 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition_PerVertexStructOutOfOrderDecl.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition_PerVertexStructOutOfOrderDecl.spvasm.expected.spvasm
@@ -1,58 +1,56 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 29
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %gl_Position_1 %vertex_point_size
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 BuiltIn Position
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_Position = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
     %float_0 = OpConstant %float 0
          %16 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %17 = OpTypeFunction %void %main_out
+         %17 = OpTypeFunction %main_out
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
                OpStore %gl_Position %16
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %main_out
-         %21 = OpLabel
-         %22 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %22
-               OpReturn
+ %main_inner = OpFunction %main_out None %17
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %main_1
+         %22 = OpLoad %v4float %gl_Position
+         %23 = OpCompositeConstruct %main_out %22
+               OpReturnValue %23
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %24 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %26 = OpFunctionCall %void %main_1
-         %28 = OpLoad %v4float %gl_Position
-         %29 = OpCompositeConstruct %main_out %28
-         %27 = OpFunctionCall %void %tint_symbol_2 %29
+         %25 = OpLabel
+         %26 = OpFunctionCall %main_out %main_inner
+         %27 = OpCompositeExtract %v4float %26 0
+               OpStore %gl_Position_1 %27
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinVertexIndex.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinVertexIndex.spvasm.expected.spvasm
index 2cacf7f..bc62fa7 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinVertexIndex.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinVertexIndex.spvasm.expected.spvasm
@@ -5,62 +5,62 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_2_param_1 %position_1_1 %vertex_point_size
+               OpName %x_2_param_1 "x_2_param_1"
+               OpName %position_1_1 "position_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_2 "x_2"
                OpName %position "position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "position_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol BuiltIn VertexIndex
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %x_2_param_1 BuiltIn VertexIndex
+               OpDecorate %position_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
        %uint = OpTypeInt 32 0
-%_ptr_Private_uint = OpTypePointer Private %uint
-          %8 = OpConstantNull %uint
-        %x_2 = OpVariable %_ptr_Private_uint Private %8
-    %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %12
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_2_param_1 = OpVariable %_ptr_Input_uint Input
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+          %8 = OpConstantNull %v4float
+%position_1_1 = OpVariable %_ptr_Output_v4float Output %8
+%_ptr_Output_float = OpTypePointer Output %float
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
+%_ptr_Private_uint = OpTypePointer Private %uint
+         %14 = OpConstantNull %uint
+        %x_2 = OpVariable %_ptr_Private_uint Private %14
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %position = OpVariable %_ptr_Private_v4float Private %8
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %21 = OpTypeFunction %void %main_out
+         %21 = OpTypeFunction %main_out %uint
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %17
          %20 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %21
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %21
+  %x_2_param = OpFunctionParameter %uint
          %25 = OpLabel
-         %26 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %26
-               OpReturn
+               OpStore %x_2 %x_2_param
+         %26 = OpFunctionCall %void %main_1
+         %27 = OpLoad %v4float %position
+         %28 = OpCompositeConstruct %main_out %27
+               OpReturnValue %28
                OpFunctionEnd
        %main = OpFunction %void None %17
-         %28 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %30 = OpLoad %uint %tint_symbol
-               OpStore %x_2 %30
-         %31 = OpFunctionCall %void %main_1
-         %33 = OpLoad %v4float %position
-         %34 = OpCompositeConstruct %main_out %33
-         %32 = OpFunctionCall %void %tint_symbol_3 %34
+         %30 = OpLabel
+         %32 = OpLoad %uint %x_2_param_1
+         %31 = OpFunctionCall %main_out %main_inner %32
+         %33 = OpCompositeExtract %v4float %31 0
+               OpStore %position_1_1 %33
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_FragDepth_Out_Initializer.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_FragDepth_Out_Initializer.spvasm.expected.spvasm
index 9823b0d..e3574b5 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_FragDepth_Out_Initializer.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_FragDepth_Out_Initializer.spvasm.expected.spvasm
@@ -1,50 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 24
+; Bound: 23
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_1_1_1
                OpExecutionMode %main OriginUpperLeft
                OpExecutionMode %main DepthReplacing
+               OpName %x_1_1_1 "x_1_1_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_1_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 BuiltIn FragDepth
+               OpDecorate %x_1_1_1 BuiltIn FragDepth
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+%_ptr_Output_float = OpTypePointer Output %float
+          %4 = OpConstantNull %float
+    %x_1_1_1 = OpVariable %_ptr_Output_float Output %4
     %float_0 = OpConstant %float 0
 %_ptr_Private_float = OpTypePointer Private %float
         %x_1 = OpVariable %_ptr_Private_float Private %float_0
-%_ptr_Output_float = OpTypePointer Output %float
-          %7 = OpConstantNull %float
-%tint_symbol_1 = OpVariable %_ptr_Output_float Output %7
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
    %main_out = OpTypeStruct %float
-         %12 = OpTypeFunction %void %main_out
+         %12 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %12
-%tint_symbol = OpFunctionParameter %main_out
-         %16 = OpLabel
-         %17 = OpCompositeExtract %float %tint_symbol 0
-               OpStore %tint_symbol_1 %17
-               OpReturn
+ %main_inner = OpFunction %main_out None %12
+         %15 = OpLabel
+         %16 = OpFunctionCall %void %main_1
+         %17 = OpLoad %float %x_1
+         %18 = OpCompositeConstruct %main_out %17
+               OpReturnValue %18
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %19 = OpLabel
-         %20 = OpFunctionCall %void %main_1
-         %22 = OpLoad %float %x_1
-         %23 = OpCompositeConstruct %main_out %22
-         %21 = OpFunctionCall %void %tint_symbol_2 %23
+         %20 = OpLabel
+         %21 = OpFunctionCall %main_out %main_inner
+         %22 = OpCompositeExtract %float %21 0
+               OpStore %x_1_1_1 %22
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_OppositeSignedness.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_OppositeSignedness.spvasm.expected.spvasm
index 7d9858e..01a0e14 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_OppositeSignedness.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_OppositeSignedness.spvasm.expected.spvasm
@@ -5,65 +5,65 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_4_param_1 %x_1_1_1 %vertex_point_size
+               OpName %x_4_param_1 "x_4_param_1"
+               OpName %x_1_1_1 "x_1_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_4 "x_4"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_1_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_4_param "x_4_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol BuiltIn InstanceIndex
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %x_4_param_1 BuiltIn InstanceIndex
+               OpDecorate %x_1_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %8 = OpConstantNull %int
-        %x_4 = OpVariable %_ptr_Private_int Private %8
-    %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-        %x_1 = OpVariable %_ptr_Private_v4float Private %12
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_4_param_1 = OpVariable %_ptr_Input_uint Input
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+          %8 = OpConstantNull %v4float
+    %x_1_1_1 = OpVariable %_ptr_Output_v4float Output %8
+%_ptr_Output_float = OpTypePointer Output %float
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
+        %int = OpTypeInt 32 1
+%_ptr_Private_int = OpTypePointer Private %int
+         %15 = OpConstantNull %int
+        %x_4 = OpVariable %_ptr_Private_int Private %15
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+        %x_1 = OpVariable %_ptr_Private_v4float Private %8
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %23 = OpTypeFunction %void %main_out
+         %23 = OpTypeFunction %main_out %uint
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
          %22 = OpLoad %int %x_4
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %23
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %23
+  %x_4_param = OpFunctionParameter %uint
          %27 = OpLabel
-         %28 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %28
-               OpReturn
+         %28 = OpBitcast %int %x_4_param
+               OpStore %x_4 %28
+         %29 = OpFunctionCall %void %main_1
+         %30 = OpLoad %v4float %x_1
+         %31 = OpCompositeConstruct %main_out %30
+               OpReturnValue %31
                OpFunctionEnd
        %main = OpFunction %void None %18
-         %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpLoad %uint %tint_symbol
-         %32 = OpBitcast %int %33
-               OpStore %x_4 %32
-         %34 = OpFunctionCall %void %main_1
-         %36 = OpLoad %v4float %x_1
-         %37 = OpCompositeConstruct %main_out %36
-         %35 = OpFunctionCall %void %tint_symbol_3 %37
+         %33 = OpLabel
+         %35 = OpLoad %uint %x_4_param_1
+         %34 = OpFunctionCall %main_out %main_inner %35
+         %36 = OpCompositeExtract %v4float %34 0
+               OpStore %x_1_1_1 %36
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_SameSignedness.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_SameSignedness.spvasm.expected.spvasm
index 841fa48..4584546 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_SameSignedness.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_SameSignedness.spvasm.expected.spvasm
@@ -5,63 +5,63 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_1_param_1 %x_4_1_1 %vertex_point_size
+               OpName %x_1_param_1 "x_1_param_1"
+               OpName %x_4_1_1 "x_4_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_1 "x_1"
                OpName %x_4 "x_4"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_4_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol BuiltIn InstanceIndex
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %x_1_param_1 BuiltIn InstanceIndex
+               OpDecorate %x_4_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
        %uint = OpTypeInt 32 0
-%_ptr_Private_uint = OpTypePointer Private %uint
-          %8 = OpConstantNull %uint
-        %x_1 = OpVariable %_ptr_Private_uint Private %8
-    %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-        %x_4 = OpVariable %_ptr_Private_v4float Private %12
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_uint Input
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+          %8 = OpConstantNull %v4float
+    %x_4_1_1 = OpVariable %_ptr_Output_v4float Output %8
+%_ptr_Output_float = OpTypePointer Output %float
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
+%_ptr_Private_uint = OpTypePointer Private %uint
+         %14 = OpConstantNull %uint
+        %x_1 = OpVariable %_ptr_Private_uint Private %14
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+        %x_4 = OpVariable %_ptr_Private_v4float Private %8
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %22 = OpTypeFunction %void %main_out
+         %22 = OpTypeFunction %main_out %uint
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %17
          %20 = OpLabel
          %21 = OpLoad %uint %x_1
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %22
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %22
+  %x_1_param = OpFunctionParameter %uint
          %26 = OpLabel
-         %27 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %27
-               OpReturn
+               OpStore %x_1 %x_1_param
+         %27 = OpFunctionCall %void %main_1
+         %28 = OpLoad %v4float %x_4
+         %29 = OpCompositeConstruct %main_out %28
+               OpReturnValue %29
                OpFunctionEnd
        %main = OpFunction %void None %17
-         %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpLoad %uint %tint_symbol
-               OpStore %x_1 %31
-         %32 = OpFunctionCall %void %main_1
-         %34 = OpLoad %v4float %x_4
-         %35 = OpCompositeConstruct %main_out %34
-         %33 = OpFunctionCall %void %tint_symbol_3 %35
+         %31 = OpLabel
+         %33 = OpLoad %uint %x_1_param_1
+         %32 = OpFunctionCall %main_out %main_inner %33
+         %34 = OpCompositeExtract %v4float %32 0
+               OpStore %x_4_1_1 %34
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Signed.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Signed.spvasm.expected.spvasm
index c921467..9d318b1 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Signed.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Signed.spvasm.expected.spvasm
@@ -1,31 +1,34 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 25
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol
+               OpEntryPoint Fragment %main "main" %x_1_param_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %_arr_int_uint_1 ArrayStride 4
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn SampleMask
-        %int = OpTypeInt 32 1
+               OpDecorate %x_1_param_1 BuiltIn SampleMask
+               OpDecorate %_arr_int_uint_1 ArrayStride 4
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-%_arr_int_uint_1 = OpTypeArray %int %uint_1
-%_ptr_Private__arr_int_uint_1 = OpTypePointer Private %_arr_int_uint_1
-          %7 = OpConstantNull %_arr_int_uint_1
-        %x_1 = OpVariable %_ptr_Private__arr_int_uint_1 Private %7
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
 %_ptr_Input__arr_uint_uint_1 = OpTypePointer Input %_arr_uint_uint_1
-%tint_symbol = OpVariable %_ptr_Input__arr_uint_uint_1 Input
+%x_1_param_1 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
+        %int = OpTypeInt 32 1
+%_arr_int_uint_1 = OpTypeArray %int %uint_1
+%_ptr_Private__arr_int_uint_1 = OpTypePointer Private %_arr_int_uint_1
+         %10 = OpConstantNull %_arr_int_uint_1
+        %x_1 = OpVariable %_ptr_Private__arr_int_uint_1 Private %10
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
+         %15 = OpTypeFunction %void %uint
       %int_0 = OpConstant %int 0
 %_ptr_Private_int = OpTypePointer Private %int
 %_ptr_Input_uint = OpTypePointer Input %uint
@@ -33,13 +36,19 @@
          %14 = OpLabel
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %15
+  %x_1_param = OpFunctionParameter %uint
+         %18 = OpLabel
+         %21 = OpAccessChain %_ptr_Private_int %x_1 %int_0
+         %22 = OpBitcast %int %x_1_param
+               OpStore %21 %22
+         %23 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %11
-         %16 = OpLabel
-         %19 = OpAccessChain %_ptr_Private_int %x_1 %int_0
-         %22 = OpAccessChain %_ptr_Input_uint %tint_symbol %int_0
-         %23 = OpLoad %uint %22
-         %20 = OpBitcast %int %23
-               OpStore %19 %20
-         %24 = OpFunctionCall %void %main_1
+         %25 = OpLabel
+         %28 = OpAccessChain %_ptr_Input_uint %x_1_param_1 %int_0
+         %29 = OpLoad %uint %28
+         %26 = OpFunctionCall %void %main_inner %29
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Unsigned.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Unsigned.spvasm.expected.spvasm
index 0b52389..8c41c94 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Unsigned.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Unsigned.spvasm.expected.spvasm
@@ -1,28 +1,31 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 23
+; Bound: 28
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol
+               OpEntryPoint Fragment %main "main" %x_1_param_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn SampleMask
+               OpDecorate %x_1_param_1 BuiltIn SampleMask
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
-%_ptr_Private__arr_uint_uint_1 = OpTypePointer Private %_arr_uint_uint_1
-          %6 = OpConstantNull %_arr_uint_uint_1
-        %x_1 = OpVariable %_ptr_Private__arr_uint_uint_1 Private %6
 %_ptr_Input__arr_uint_uint_1 = OpTypePointer Input %_arr_uint_uint_1
-%tint_symbol = OpVariable %_ptr_Input__arr_uint_uint_1 Input
+%x_1_param_1 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
+%_ptr_Private__arr_uint_uint_1 = OpTypePointer Private %_arr_uint_uint_1
+          %8 = OpConstantNull %_arr_uint_uint_1
+        %x_1 = OpVariable %_ptr_Private__arr_uint_uint_1 Private %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
+         %13 = OpTypeFunction %void %uint
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Private_uint = OpTypePointer Private %uint
@@ -31,12 +34,18 @@
          %12 = OpLabel
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %13
+  %x_1_param = OpFunctionParameter %uint
+         %16 = OpLabel
+         %20 = OpAccessChain %_ptr_Private_uint %x_1 %int_0
+               OpStore %20 %x_1_param
+         %21 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %9
-         %14 = OpLabel
-         %18 = OpAccessChain %_ptr_Private_uint %x_1 %int_0
-         %20 = OpAccessChain %_ptr_Input_uint %tint_symbol %int_0
-         %21 = OpLoad %uint %20
-               OpStore %18 %21
-         %22 = OpFunctionCall %void %main_1
+         %23 = OpLabel
+         %26 = OpAccessChain %_ptr_Input_uint %x_1_param_1 %int_0
+         %27 = OpLoad %uint %26
+         %24 = OpFunctionCall %void %main_inner %27
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Signed_Initializer.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Signed_Initializer.spvasm.expected.spvasm
index a8e50ce..378ee26 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Signed_Initializer.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Signed_Initializer.spvasm.expected.spvasm
@@ -1,61 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_1_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_1_1 "x_1_1_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_1_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %_arr_int_uint_1 ArrayStride 4
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol_1 BuiltIn SampleMask
+               OpDecorate %x_1_1_1 BuiltIn SampleMask
+               OpDecorate %_arr_int_uint_1 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
-        %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-%_arr_int_uint_1 = OpTypeArray %int %uint_1
-      %int_0 = OpConstant %int 0
-          %6 = OpConstantComposite %_arr_int_uint_1 %int_0
-%_ptr_Private__arr_int_uint_1 = OpTypePointer Private %_arr_int_uint_1
-        %x_1 = OpVariable %_ptr_Private__arr_int_uint_1 Private %6
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
 %_ptr_Output__arr_uint_uint_1 = OpTypePointer Output %_arr_uint_uint_1
-         %12 = OpConstantNull %_arr_uint_uint_1
-%tint_symbol_1 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %12
+          %6 = OpConstantNull %_arr_uint_uint_1
+    %x_1_1_1 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %6
+        %int = OpTypeInt 32 1
+%_arr_int_uint_1 = OpTypeArray %int %uint_1
+      %int_0 = OpConstant %int 0
+         %10 = OpConstantComposite %_arr_int_uint_1 %int_0
+%_ptr_Private__arr_int_uint_1 = OpTypePointer Private %_arr_int_uint_1
+        %x_1 = OpVariable %_ptr_Private__arr_int_uint_1 Private %10
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
    %main_out = OpTypeStruct %uint
-         %17 = OpTypeFunction %void %main_out
-%_ptr_Output_uint = OpTypePointer Output %uint
+         %17 = OpTypeFunction %main_out
 %_ptr_Private_int = OpTypePointer Private %int
+%_ptr_Output_uint = OpTypePointer Output %uint
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %17
-%tint_symbol = OpFunctionParameter %main_out
-         %21 = OpLabel
-         %23 = OpAccessChain %_ptr_Output_uint %tint_symbol_1 %int_0
-         %24 = OpCompositeExtract %uint %tint_symbol 0
-               OpStore %23 %24
-               OpReturn
+ %main_inner = OpFunction %main_out None %17
+         %20 = OpLabel
+         %21 = OpFunctionCall %void %main_1
+         %24 = OpAccessChain %_ptr_Private_int %x_1 %int_0
+         %25 = OpLoad %int %24
+         %22 = OpBitcast %uint %25
+         %26 = OpCompositeConstruct %main_out %22
+               OpReturnValue %26
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %main_1
-         %31 = OpAccessChain %_ptr_Private_int %x_1 %int_0
-         %32 = OpLoad %int %31
-         %29 = OpBitcast %uint %32
-         %33 = OpCompositeConstruct %main_out %29
-         %28 = OpFunctionCall %void %tint_symbol_2 %33
+         %28 = OpLabel
+         %29 = OpFunctionCall %main_out %main_inner
+         %31 = OpAccessChain %_ptr_Output_uint %x_1_1_1 %int_0
+         %32 = OpCompositeExtract %uint %29 0
+               OpStore %31 %32
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Unsigned_Initializer.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Unsigned_Initializer.spvasm.expected.spvasm
index d95cd17..a96308e 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Unsigned_Initializer.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Unsigned_Initializer.spvasm.expected.spvasm
@@ -1,59 +1,57 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_1_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_1_1 "x_1_1_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_1_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol_1 BuiltIn SampleMask
+               OpDecorate %x_1_1_1 BuiltIn SampleMask
                OpMemberDecorate %main_out 0 Offset 0
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
-     %uint_0 = OpConstant %uint 0
-          %5 = OpConstantComposite %_arr_uint_uint_1 %uint_0
-%_ptr_Private__arr_uint_uint_1 = OpTypePointer Private %_arr_uint_uint_1
-        %x_1 = OpVariable %_ptr_Private__arr_uint_uint_1 Private %5
 %_ptr_Output__arr_uint_uint_1 = OpTypePointer Output %_arr_uint_uint_1
-         %10 = OpConstantNull %_arr_uint_uint_1
-%tint_symbol_1 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %10
+          %6 = OpConstantNull %_arr_uint_uint_1
+    %x_1_1_1 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %6
+     %uint_0 = OpConstant %uint 0
+          %8 = OpConstantComposite %_arr_uint_uint_1 %uint_0
+%_ptr_Private__arr_uint_uint_1 = OpTypePointer Private %_arr_uint_uint_1
+        %x_1 = OpVariable %_ptr_Private__arr_uint_uint_1 Private %8
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
    %main_out = OpTypeStruct %uint
-         %15 = OpTypeFunction %void %main_out
+         %15 = OpTypeFunction %main_out
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
-%_ptr_Output_uint = OpTypePointer Output %uint
 %_ptr_Private_uint = OpTypePointer Private %uint
+%_ptr_Output_uint = OpTypePointer Output %uint
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %15
-%tint_symbol = OpFunctionParameter %main_out
-         %19 = OpLabel
-         %23 = OpAccessChain %_ptr_Output_uint %tint_symbol_1 %int_0
-         %24 = OpCompositeExtract %uint %tint_symbol 0
-               OpStore %23 %24
-               OpReturn
+ %main_inner = OpFunction %main_out None %15
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %main_1
+         %23 = OpAccessChain %_ptr_Private_uint %x_1 %int_0
+         %24 = OpLoad %uint %23
+         %25 = OpCompositeConstruct %main_out %24
+               OpReturnValue %25
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %main_1
-         %30 = OpAccessChain %_ptr_Private_uint %x_1 %int_0
-         %31 = OpLoad %uint %30
-         %32 = OpCompositeConstruct %main_out %31
-         %28 = OpFunctionCall %void %tint_symbol_2 %32
+         %27 = OpLabel
+         %28 = OpFunctionCall %main_out %main_inner
+         %30 = OpAccessChain %_ptr_Output_uint %x_1_1_1 %int_0
+         %31 = OpCompositeExtract %uint %28 0
+               OpStore %30 %31
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Flat_Fragment_In.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Flat_Fragment_In.spvasm.expected.spvasm
index 8b480f5..9916586 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Flat_Fragment_In.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Flat_Fragment_In.spvasm.expected.spvasm
@@ -1,52 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3
+               OpEntryPoint Fragment %main "main" %x_1_param_2 %x_1_param_1_1 %x_2_param_2 %x_2_param_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_param_2 "x_1_param_2"
+               OpName %x_1_param_1_1 "x_1_param_1_1"
+               OpName %x_2_param_2 "x_2_param_2"
+               OpName %x_2_param_1_1 "x_2_param_1_1"
                OpName %x_1 "x_1"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpMemberName %S 1 "field1"
                OpName %x_2 "x_2"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
+               OpName %x_1_param_1 "x_1_param_1"
+               OpName %x_2_param "x_2_param"
+               OpName %x_2_param_1 "x_2_param_1"
                OpName %main "main"
+               OpDecorate %x_1_param_2 Location 1
+               OpDecorate %x_1_param_2 Flat
+               OpDecorate %x_1_param_1_1 Location 2
+               OpDecorate %x_1_param_1_1 Flat
+               OpDecorate %x_2_param_2 Location 5
+               OpDecorate %x_2_param_2 Flat
+               OpDecorate %x_2_param_1_1 Location 6
+               OpDecorate %x_2_param_1_1 Flat
                OpDecorate %_arr_float_uint_2 ArrayStride 4
                OpMemberDecorate %S 0 Offset 0
                OpMemberDecorate %S 1 Offset 4
-               OpDecorate %tint_symbol Location 1
-               OpDecorate %tint_symbol Flat
-               OpDecorate %tint_symbol_1 Location 2
-               OpDecorate %tint_symbol_1 Flat
-               OpDecorate %tint_symbol_2 Location 5
-               OpDecorate %tint_symbol_2 Flat
-               OpDecorate %tint_symbol_3 Location 6
-               OpDecorate %tint_symbol_3 Flat
       %float = OpTypeFloat 32
+%_ptr_Input_float = OpTypePointer Input %float
+%x_1_param_2 = OpVariable %_ptr_Input_float Input
+%x_1_param_1_1 = OpVariable %_ptr_Input_float Input
+%x_2_param_2 = OpVariable %_ptr_Input_float Input
+%x_2_param_1_1 = OpVariable %_ptr_Input_float Input
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
 %_ptr_Private__arr_float_uint_2 = OpTypePointer Private %_arr_float_uint_2
-          %7 = OpConstantNull %_arr_float_uint_2
-        %x_1 = OpVariable %_ptr_Private__arr_float_uint_2 Private %7
+         %12 = OpConstantNull %_arr_float_uint_2
+        %x_1 = OpVariable %_ptr_Private__arr_float_uint_2 Private %12
           %S = OpTypeStruct %float %float
 %_ptr_Private_S = OpTypePointer Private %S
-         %11 = OpConstantNull %S
-        %x_2 = OpVariable %_ptr_Private_S Private %11
-%_ptr_Input_float = OpTypePointer Input %float
-%tint_symbol = OpVariable %_ptr_Input_float Input
-%tint_symbol_1 = OpVariable %_ptr_Input_float Input
-%tint_symbol_2 = OpVariable %_ptr_Input_float Input
-%tint_symbol_3 = OpVariable %_ptr_Input_float Input
+         %16 = OpConstantNull %S
+        %x_2 = OpVariable %_ptr_Private_S Private %16
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
+         %21 = OpTypeFunction %void %float %float %float %float
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Private_float = OpTypePointer Private %float
@@ -57,20 +63,29 @@
          %20 = OpLabel
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %21
+  %x_1_param = OpFunctionParameter %float
+%x_1_param_1 = OpFunctionParameter %float
+  %x_2_param = OpFunctionParameter %float
+%x_2_param_1 = OpFunctionParameter %float
+         %27 = OpLabel
+         %31 = OpAccessChain %_ptr_Private_float %x_1 %int_0
+               OpStore %31 %x_1_param
+         %33 = OpAccessChain %_ptr_Private_float %x_1 %int_1
+               OpStore %33 %x_1_param_1
+         %35 = OpAccessChain %_ptr_Private_float %x_2 %uint_0
+               OpStore %35 %x_2_param
+         %37 = OpAccessChain %_ptr_Private_float %x_2 %uint_1
+               OpStore %37 %x_2_param_1
+         %38 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %17
-         %22 = OpLabel
-         %26 = OpAccessChain %_ptr_Private_float %x_1 %int_0
-         %27 = OpLoad %float %tint_symbol
-               OpStore %26 %27
-         %29 = OpAccessChain %_ptr_Private_float %x_1 %int_1
-         %30 = OpLoad %float %tint_symbol_1
-               OpStore %29 %30
-         %32 = OpAccessChain %_ptr_Private_float %x_2 %uint_0
-         %33 = OpLoad %float %tint_symbol_2
-               OpStore %32 %33
-         %35 = OpAccessChain %_ptr_Private_float %x_2 %uint_1
-         %36 = OpLoad %float %tint_symbol_3
-               OpStore %35 %36
-         %37 = OpFunctionCall %void %main_1
+         %40 = OpLabel
+         %42 = OpLoad %float %x_1_param_2
+         %43 = OpLoad %float %x_1_param_1_1
+         %44 = OpLoad %float %x_2_param_2
+         %45 = OpLoad %float %x_2_param_1_1
+         %41 = OpFunctionCall %void %main_inner %42 %43 %44 %45
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_In.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_In.spvasm.expected.spvasm
index 9a23387..56a3c44 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_In.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_In.spvasm.expected.spvasm
@@ -1,13 +1,19 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 40
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpCapability SampleRateShading
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4 %tint_symbol_5
+               OpEntryPoint Fragment %main "main" %x_1_param_6 %x_1_param_1_1 %x_1_param_2_1 %x_1_param_3_1 %x_1_param_4_1 %x_1_param_5_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_param_6 "x_1_param_6"
+               OpName %x_1_param_1_1 "x_1_param_1_1"
+               OpName %x_1_param_2_1 "x_1_param_2_1"
+               OpName %x_1_param_3_1 "x_1_param_3_1"
+               OpName %x_1_param_4_1 "x_1_param_4_1"
+               OpName %x_1_param_5_1 "x_1_param_5_1"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpMemberName %S 1 "field1"
@@ -16,47 +22,49 @@
                OpMemberName %S 4 "field4"
                OpMemberName %S 5 "field5"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_5 "tint_symbol_5"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
+               OpName %x_1_param_1 "x_1_param_1"
+               OpName %x_1_param_2 "x_1_param_2"
+               OpName %x_1_param_3 "x_1_param_3"
+               OpName %x_1_param_4 "x_1_param_4"
+               OpName %x_1_param_5 "x_1_param_5"
                OpName %main "main"
+               OpDecorate %x_1_param_6 Location 1
+               OpDecorate %x_1_param_1_1 Location 2
+               OpDecorate %x_1_param_1_1 Centroid
+               OpDecorate %x_1_param_2_1 Location 3
+               OpDecorate %x_1_param_2_1 Sample
+               OpDecorate %x_1_param_3_1 Location 4
+               OpDecorate %x_1_param_3_1 NoPerspective
+               OpDecorate %x_1_param_4_1 Location 5
+               OpDecorate %x_1_param_4_1 NoPerspective
+               OpDecorate %x_1_param_4_1 Centroid
+               OpDecorate %x_1_param_5_1 Location 6
+               OpDecorate %x_1_param_5_1 NoPerspective
+               OpDecorate %x_1_param_5_1 Sample
                OpMemberDecorate %S 0 Offset 0
                OpMemberDecorate %S 1 Offset 4
                OpMemberDecorate %S 2 Offset 8
                OpMemberDecorate %S 3 Offset 12
                OpMemberDecorate %S 4 Offset 16
                OpMemberDecorate %S 5 Offset 20
-               OpDecorate %tint_symbol Location 1
-               OpDecorate %tint_symbol_1 Location 2
-               OpDecorate %tint_symbol_1 Centroid
-               OpDecorate %tint_symbol_2 Location 3
-               OpDecorate %tint_symbol_2 Sample
-               OpDecorate %tint_symbol_3 Location 4
-               OpDecorate %tint_symbol_3 NoPerspective
-               OpDecorate %tint_symbol_4 Location 5
-               OpDecorate %tint_symbol_4 NoPerspective
-               OpDecorate %tint_symbol_4 Centroid
-               OpDecorate %tint_symbol_5 Location 6
-               OpDecorate %tint_symbol_5 NoPerspective
-               OpDecorate %tint_symbol_5 Sample
       %float = OpTypeFloat 32
+%_ptr_Input_float = OpTypePointer Input %float
+%x_1_param_6 = OpVariable %_ptr_Input_float Input
+%x_1_param_1_1 = OpVariable %_ptr_Input_float Input
+%x_1_param_2_1 = OpVariable %_ptr_Input_float Input
+%x_1_param_3_1 = OpVariable %_ptr_Input_float Input
+%x_1_param_4_1 = OpVariable %_ptr_Input_float Input
+%x_1_param_5_1 = OpVariable %_ptr_Input_float Input
           %S = OpTypeStruct %float %float %float %float %float %float
 %_ptr_Private_S = OpTypePointer Private %S
-          %5 = OpConstantNull %S
-        %x_1 = OpVariable %_ptr_Private_S Private %5
-%_ptr_Input_float = OpTypePointer Input %float
-%tint_symbol = OpVariable %_ptr_Input_float Input
-%tint_symbol_1 = OpVariable %_ptr_Input_float Input
-%tint_symbol_2 = OpVariable %_ptr_Input_float Input
-%tint_symbol_3 = OpVariable %_ptr_Input_float Input
-%tint_symbol_4 = OpVariable %_ptr_Input_float Input
-%tint_symbol_5 = OpVariable %_ptr_Input_float Input
+         %12 = OpConstantNull %S
+        %x_1 = OpVariable %_ptr_Private_S Private %12
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
+         %17 = OpTypeFunction %void %float %float %float %float %float %float
        %uint = OpTypeInt 32 0
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_float = OpTypePointer Private %float
@@ -69,26 +77,37 @@
          %16 = OpLabel
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %17
+  %x_1_param = OpFunctionParameter %float
+%x_1_param_1 = OpFunctionParameter %float
+%x_1_param_2 = OpFunctionParameter %float
+%x_1_param_3 = OpFunctionParameter %float
+%x_1_param_4 = OpFunctionParameter %float
+%x_1_param_5 = OpFunctionParameter %float
+         %25 = OpLabel
+         %29 = OpAccessChain %_ptr_Private_float %x_1 %uint_0
+               OpStore %29 %x_1_param
+         %31 = OpAccessChain %_ptr_Private_float %x_1 %uint_1
+               OpStore %31 %x_1_param_1
+         %33 = OpAccessChain %_ptr_Private_float %x_1 %uint_2
+               OpStore %33 %x_1_param_2
+         %35 = OpAccessChain %_ptr_Private_float %x_1 %uint_3
+               OpStore %35 %x_1_param_3
+         %37 = OpAccessChain %_ptr_Private_float %x_1 %uint_4
+               OpStore %37 %x_1_param_4
+         %39 = OpAccessChain %_ptr_Private_float %x_1 %uint_5
+               OpStore %39 %x_1_param_5
+         %40 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %13
-         %18 = OpLabel
-         %22 = OpAccessChain %_ptr_Private_float %x_1 %uint_0
-         %23 = OpLoad %float %tint_symbol
-               OpStore %22 %23
-         %25 = OpAccessChain %_ptr_Private_float %x_1 %uint_1
-         %26 = OpLoad %float %tint_symbol_1
-               OpStore %25 %26
-         %28 = OpAccessChain %_ptr_Private_float %x_1 %uint_2
-         %29 = OpLoad %float %tint_symbol_2
-               OpStore %28 %29
-         %31 = OpAccessChain %_ptr_Private_float %x_1 %uint_3
-         %32 = OpLoad %float %tint_symbol_3
-               OpStore %31 %32
-         %34 = OpAccessChain %_ptr_Private_float %x_1 %uint_4
-         %35 = OpLoad %float %tint_symbol_4
-               OpStore %34 %35
-         %37 = OpAccessChain %_ptr_Private_float %x_1 %uint_5
-         %38 = OpLoad %float %tint_symbol_5
-               OpStore %37 %38
-         %39 = OpFunctionCall %void %main_1
+         %42 = OpLabel
+         %44 = OpLoad %float %x_1_param_6
+         %45 = OpLoad %float %x_1_param_1_1
+         %46 = OpLoad %float %x_1_param_2_1
+         %47 = OpLoad %float %x_1_param_3_1
+         %48 = OpLoad %float %x_1_param_4_1
+         %49 = OpLoad %float %x_1_param_5_1
+         %43 = OpFunctionCall %void %main_inner %44 %45 %46 %47 %48 %49
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_Out.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_Out.spvasm.expected.spvasm
index d6f3990..ef276d9 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_Out.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_Out.spvasm.expected.spvasm
@@ -1,13 +1,19 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpCapability SampleRateShading
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4 %tint_symbol_5 %tint_symbol_6
+               OpEntryPoint Fragment %main "main" %x_1_1_1 %x_1_2_1 %x_1_3_1 %x_1_4_1 %x_1_5_1 %x_1_6_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_1_1 "x_1_1_1"
+               OpName %x_1_2_1 "x_1_2_1"
+               OpName %x_1_3_1 "x_1_3_1"
+               OpName %x_1_4_1 "x_1_4_1"
+               OpName %x_1_5_1 "x_1_5_1"
+               OpName %x_1_6_1 "x_1_6_1"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpMemberName %S 1 "field1"
@@ -16,12 +22,6 @@
                OpMemberName %S 4 "field4"
                OpMemberName %S 5 "field5"
                OpName %x_1 "x_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_6 "tint_symbol_6"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_1_1"
@@ -30,28 +30,27 @@
                OpMemberName %main_out 3 "x_1_4"
                OpMemberName %main_out 4 "x_1_5"
                OpMemberName %main_out 5 "x_1_6"
-               OpName %tint_symbol_7 "tint_symbol_7"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_1_1_1 Location 1
+               OpDecorate %x_1_2_1 Location 2
+               OpDecorate %x_1_2_1 Centroid
+               OpDecorate %x_1_3_1 Location 3
+               OpDecorate %x_1_3_1 Sample
+               OpDecorate %x_1_4_1 Location 4
+               OpDecorate %x_1_4_1 NoPerspective
+               OpDecorate %x_1_5_1 Location 5
+               OpDecorate %x_1_5_1 NoPerspective
+               OpDecorate %x_1_5_1 Centroid
+               OpDecorate %x_1_6_1 Location 6
+               OpDecorate %x_1_6_1 NoPerspective
+               OpDecorate %x_1_6_1 Sample
                OpMemberDecorate %S 0 Offset 0
                OpMemberDecorate %S 1 Offset 4
                OpMemberDecorate %S 2 Offset 8
                OpMemberDecorate %S 3 Offset 12
                OpMemberDecorate %S 4 Offset 16
                OpMemberDecorate %S 5 Offset 20
-               OpDecorate %tint_symbol_1 Location 1
-               OpDecorate %tint_symbol_2 Location 2
-               OpDecorate %tint_symbol_2 Centroid
-               OpDecorate %tint_symbol_3 Location 3
-               OpDecorate %tint_symbol_3 Sample
-               OpDecorate %tint_symbol_4 Location 4
-               OpDecorate %tint_symbol_4 NoPerspective
-               OpDecorate %tint_symbol_5 Location 5
-               OpDecorate %tint_symbol_5 NoPerspective
-               OpDecorate %tint_symbol_5 Centroid
-               OpDecorate %tint_symbol_6 Location 6
-               OpDecorate %tint_symbol_6 NoPerspective
-               OpDecorate %tint_symbol_6 Sample
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 4
                OpMemberDecorate %main_out 2 Offset 8
@@ -59,22 +58,22 @@
                OpMemberDecorate %main_out 4 Offset 16
                OpMemberDecorate %main_out 5 Offset 20
       %float = OpTypeFloat 32
+%_ptr_Output_float = OpTypePointer Output %float
+          %4 = OpConstantNull %float
+    %x_1_1_1 = OpVariable %_ptr_Output_float Output %4
+    %x_1_2_1 = OpVariable %_ptr_Output_float Output %4
+    %x_1_3_1 = OpVariable %_ptr_Output_float Output %4
+    %x_1_4_1 = OpVariable %_ptr_Output_float Output %4
+    %x_1_5_1 = OpVariable %_ptr_Output_float Output %4
+    %x_1_6_1 = OpVariable %_ptr_Output_float Output %4
           %S = OpTypeStruct %float %float %float %float %float %float
 %_ptr_Private_S = OpTypePointer Private %S
-          %5 = OpConstantNull %S
-        %x_1 = OpVariable %_ptr_Private_S Private %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%tint_symbol_1 = OpVariable %_ptr_Output_float Output %8
-%tint_symbol_2 = OpVariable %_ptr_Output_float Output %8
-%tint_symbol_3 = OpVariable %_ptr_Output_float Output %8
-%tint_symbol_4 = OpVariable %_ptr_Output_float Output %8
-%tint_symbol_5 = OpVariable %_ptr_Output_float Output %8
-%tint_symbol_6 = OpVariable %_ptr_Output_float Output %8
+         %13 = OpConstantNull %S
+        %x_1 = OpVariable %_ptr_Private_S Private %13
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
    %main_out = OpTypeStruct %float %float %float %float %float %float
-         %18 = OpTypeFunction %void %main_out
+         %18 = OpTypeFunction %main_out
        %uint = OpTypeInt 32 0
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_float = OpTypePointer Private %float
@@ -87,39 +86,38 @@
          %17 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_7 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %main_out
-         %22 = OpLabel
-         %23 = OpCompositeExtract %float %tint_symbol 0
-               OpStore %tint_symbol_1 %23
-         %24 = OpCompositeExtract %float %tint_symbol 1
-               OpStore %tint_symbol_2 %24
-         %25 = OpCompositeExtract %float %tint_symbol 2
-               OpStore %tint_symbol_3 %25
-         %26 = OpCompositeExtract %float %tint_symbol 3
-               OpStore %tint_symbol_4 %26
-         %27 = OpCompositeExtract %float %tint_symbol 4
-               OpStore %tint_symbol_5 %27
-         %28 = OpCompositeExtract %float %tint_symbol 5
-               OpStore %tint_symbol_6 %28
-               OpReturn
+ %main_inner = OpFunction %main_out None %18
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %main_1
+         %26 = OpAccessChain %_ptr_Private_float %x_1 %uint_0
+         %27 = OpLoad %float %26
+         %29 = OpAccessChain %_ptr_Private_float %x_1 %uint_1
+         %30 = OpLoad %float %29
+         %32 = OpAccessChain %_ptr_Private_float %x_1 %uint_2
+         %33 = OpLoad %float %32
+         %35 = OpAccessChain %_ptr_Private_float %x_1 %uint_3
+         %36 = OpLoad %float %35
+         %38 = OpAccessChain %_ptr_Private_float %x_1 %uint_4
+         %39 = OpLoad %float %38
+         %41 = OpAccessChain %_ptr_Private_float %x_1 %uint_5
+         %42 = OpLoad %float %41
+         %43 = OpCompositeConstruct %main_out %27 %30 %33 %36 %39 %42
+               OpReturnValue %43
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %main_1
-         %36 = OpAccessChain %_ptr_Private_float %x_1 %uint_0
-         %37 = OpLoad %float %36
-         %39 = OpAccessChain %_ptr_Private_float %x_1 %uint_1
-         %40 = OpLoad %float %39
-         %42 = OpAccessChain %_ptr_Private_float %x_1 %uint_2
-         %43 = OpLoad %float %42
-         %45 = OpAccessChain %_ptr_Private_float %x_1 %uint_3
-         %46 = OpLoad %float %45
-         %48 = OpAccessChain %_ptr_Private_float %x_1 %uint_4
-         %49 = OpLoad %float %48
-         %51 = OpAccessChain %_ptr_Private_float %x_1 %uint_5
-         %52 = OpLoad %float %51
-         %53 = OpCompositeConstruct %main_out %37 %40 %43 %46 %49 %52
-         %32 = OpFunctionCall %void %tint_symbol_7 %53
+         %45 = OpLabel
+         %46 = OpFunctionCall %main_out %main_inner
+         %47 = OpCompositeExtract %float %46 0
+               OpStore %x_1_1_1 %47
+         %48 = OpCompositeExtract %float %46 1
+               OpStore %x_1_2_1 %48
+         %49 = OpCompositeExtract %float %46 2
+               OpStore %x_1_3_1 %49
+         %50 = OpCompositeExtract %float %46 3
+               OpStore %x_1_4_1 %50
+         %51 = OpCompositeExtract %float %46 4
+               OpStore %x_1_5_1 %51
+         %52 = OpCompositeExtract %float %46 5
+               OpStore %x_1_6_1 %52
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_IOLocations.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_IOLocations.spvasm.expected.spvasm
index 85a1b1b..f395152 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_IOLocations.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_IOLocations.spvasm.expected.spvasm
@@ -1,75 +1,77 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_3 %tint_symbol_4
+               OpEntryPoint Fragment %main "main" %x_1_param_1 %x_3_param_1 %x_2_1_1 %x_4_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_param_1 "x_1_param_1"
+               OpName %x_3_param_1 "x_3_param_1"
+               OpName %x_2_1_1 "x_2_1_1"
+               OpName %x_4_1_1 "x_4_1_1"
                OpName %x_1 "x_1"
                OpName %x_2 "x_2"
                OpName %x_3 "x_3"
                OpName %x_4 "x_4"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_2_1"
                OpMemberName %main_out 1 "x_4_1"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_2 "tint_symbol_2"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol Flat
-               OpDecorate %tint_symbol_1 Location 30
-               OpDecorate %tint_symbol_1 Flat
-               OpDecorate %tint_symbol_3 Location 0
-               OpDecorate %tint_symbol_4 Location 6
+               OpDecorate %x_1_param_1 Location 0
+               OpDecorate %x_1_param_1 Flat
+               OpDecorate %x_3_param_1 Location 30
+               OpDecorate %x_3_param_1 Flat
+               OpDecorate %x_2_1_1 Location 0
+               OpDecorate %x_4_1_1 Location 6
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 4
        %uint = OpTypeInt 32 0
-%_ptr_Private_uint = OpTypePointer Private %uint
-          %4 = OpConstantNull %uint
-        %x_1 = OpVariable %_ptr_Private_uint Private %4
-        %x_2 = OpVariable %_ptr_Private_uint Private %4
-        %x_3 = OpVariable %_ptr_Private_uint Private %4
-        %x_4 = OpVariable %_ptr_Private_uint Private %4
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
-%tint_symbol_1 = OpVariable %_ptr_Input_uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_uint Input
+%x_3_param_1 = OpVariable %_ptr_Input_uint Input
 %_ptr_Output_uint = OpTypePointer Output %uint
-%tint_symbol_3 = OpVariable %_ptr_Output_uint Output %4
-%tint_symbol_4 = OpVariable %_ptr_Output_uint Output %4
+          %7 = OpConstantNull %uint
+    %x_2_1_1 = OpVariable %_ptr_Output_uint Output %7
+    %x_4_1_1 = OpVariable %_ptr_Output_uint Output %7
+%_ptr_Private_uint = OpTypePointer Private %uint
+        %x_1 = OpVariable %_ptr_Private_uint Private %7
+        %x_2 = OpVariable %_ptr_Private_uint Private %7
+        %x_3 = OpVariable %_ptr_Private_uint Private %7
+        %x_4 = OpVariable %_ptr_Private_uint Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
    %main_out = OpTypeStruct %uint %uint
-         %18 = OpTypeFunction %void %main_out
+         %18 = OpTypeFunction %main_out %uint %uint
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_5 = OpFunction %void None %18
-%tint_symbol_2 = OpFunctionParameter %main_out
-         %22 = OpLabel
-         %23 = OpCompositeExtract %uint %tint_symbol_2 0
-               OpStore %tint_symbol_3 %23
-         %24 = OpCompositeExtract %uint %tint_symbol_2 1
-               OpStore %tint_symbol_4 %24
-               OpReturn
+ %main_inner = OpFunction %main_out None %18
+  %x_1_param = OpFunctionParameter %uint
+  %x_3_param = OpFunctionParameter %uint
+         %23 = OpLabel
+               OpStore %x_1 %x_1_param
+               OpStore %x_3 %x_3_param
+         %24 = OpFunctionCall %void %main_1
+         %25 = OpLoad %uint %x_2
+         %26 = OpLoad %uint %x_4
+         %27 = OpCompositeConstruct %main_out %25 %26
+               OpReturnValue %27
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %26 = OpLabel
-         %27 = OpLoad %uint %tint_symbol
-               OpStore %x_1 %27
-         %28 = OpLoad %uint %tint_symbol_1
-               OpStore %x_3 %28
-         %29 = OpFunctionCall %void %main_1
-         %31 = OpLoad %uint %x_2
-         %32 = OpLoad %uint %x_4
-         %33 = OpCompositeConstruct %main_out %31 %32
-         %30 = OpFunctionCall %void %tint_symbol_5 %33
+         %29 = OpLabel
+         %31 = OpLoad %uint %x_1_param_1
+         %32 = OpLoad %uint %x_3_param_1
+         %30 = OpFunctionCall %main_out %main_inner %31 %32
+         %33 = OpCompositeExtract %uint %30 0
+               OpStore %x_2_1_1 %33
+         %34 = OpCompositeExtract %uint %30 1
+               OpStore %x_4_1_1 %34
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Flat_Vertex_In.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Flat_Vertex_In.spvasm.expected.spvasm
index 9ee3142..a248252 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Flat_Vertex_In.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Flat_Vertex_In.spvasm.expected.spvasm
@@ -1,12 +1,19 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 68
+; Bound: 73
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4 %tint_symbol_5 %tint_symbol_7
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_1_param_1 %x_2_param_1 %x_3_param_1 %x_4_param_1 %x_5_param_1 %x_6_param_1 %x_8_1_1 %vertex_point_size
+               OpName %x_1_param_1 "x_1_param_1"
+               OpName %x_2_param_1 "x_2_param_1"
+               OpName %x_3_param_1 "x_3_param_1"
+               OpName %x_4_param_1 "x_4_param_1"
+               OpName %x_5_param_1 "x_5_param_1"
+               OpName %x_6_param_1 "x_6_param_1"
+               OpName %x_8_1_1 "x_8_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_1 "x_1"
                OpName %x_2 "x_2"
                OpName %x_3 "x_3"
@@ -14,108 +21,111 @@
                OpName %x_5 "x_5"
                OpName %x_6 "x_6"
                OpName %x_8 "x_8"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_7 "tint_symbol_7"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_8_1"
-               OpName %tint_symbol_8 "tint_symbol_8"
-               OpName %tint_symbol_6 "tint_symbol_6"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
+               OpName %x_2_param "x_2_param"
+               OpName %x_3_param "x_3_param"
+               OpName %x_4_param "x_4_param"
+               OpName %x_5_param "x_5_param"
+               OpName %x_6_param "x_6_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 1
-               OpDecorate %tint_symbol_1 Location 2
-               OpDecorate %tint_symbol_2 Location 3
-               OpDecorate %tint_symbol_3 Location 4
-               OpDecorate %tint_symbol_4 Location 5
-               OpDecorate %tint_symbol_4 Flat
-               OpDecorate %tint_symbol_5 Location 6
-               OpDecorate %tint_symbol_5 Flat
-               OpDecorate %tint_symbol_7 BuiltIn Position
+               OpDecorate %x_1_param_1 Location 1
+               OpDecorate %x_2_param_1 Location 2
+               OpDecorate %x_3_param_1 Location 3
+               OpDecorate %x_4_param_1 Location 4
+               OpDecorate %x_5_param_1 Location 5
+               OpDecorate %x_5_param_1 Flat
+               OpDecorate %x_6_param_1 Location 6
+               OpDecorate %x_6_param_1 Flat
+               OpDecorate %x_8_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
        %uint = OpTypeInt 32 0
-%_ptr_Private_uint = OpTypePointer Private %uint
-          %8 = OpConstantNull %uint
-        %x_1 = OpVariable %_ptr_Private_uint Private %8
-     %v2uint = OpTypeVector %uint 2
-%_ptr_Private_v2uint = OpTypePointer Private %v2uint
-         %12 = OpConstantNull %v2uint
-        %x_2 = OpVariable %_ptr_Private_v2uint Private %12
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-         %16 = OpConstantNull %int
-        %x_3 = OpVariable %_ptr_Private_int Private %16
-      %v2int = OpTypeVector %int 2
-%_ptr_Private_v2int = OpTypePointer Private %v2int
-         %20 = OpConstantNull %v2int
-        %x_4 = OpVariable %_ptr_Private_v2int Private %20
-%_ptr_Private_float = OpTypePointer Private %float
-        %x_5 = OpVariable %_ptr_Private_float Private %4
-    %v2float = OpTypeVector %float 2
-%_ptr_Private_v2float = OpTypePointer Private %v2float
-         %26 = OpConstantNull %v2float
-        %x_6 = OpVariable %_ptr_Private_v2float Private %26
-    %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-         %30 = OpConstantNull %v4float
-        %x_8 = OpVariable %_ptr_Private_v4float Private %30
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_uint Input
+     %v2uint = OpTypeVector %uint 2
 %_ptr_Input_v2uint = OpTypePointer Input %v2uint
-%tint_symbol_1 = OpVariable %_ptr_Input_v2uint Input
+%x_2_param_1 = OpVariable %_ptr_Input_v2uint Input
+        %int = OpTypeInt 32 1
 %_ptr_Input_int = OpTypePointer Input %int
-%tint_symbol_2 = OpVariable %_ptr_Input_int Input
+%x_3_param_1 = OpVariable %_ptr_Input_int Input
+      %v2int = OpTypeVector %int 2
 %_ptr_Input_v2int = OpTypePointer Input %v2int
-%tint_symbol_3 = OpVariable %_ptr_Input_v2int Input
+%x_4_param_1 = OpVariable %_ptr_Input_v2int Input
+      %float = OpTypeFloat 32
 %_ptr_Input_float = OpTypePointer Input %float
-%tint_symbol_4 = OpVariable %_ptr_Input_float Input
+%x_5_param_1 = OpVariable %_ptr_Input_float Input
+    %v2float = OpTypeVector %float 2
 %_ptr_Input_v2float = OpTypePointer Input %v2float
-%tint_symbol_5 = OpVariable %_ptr_Input_v2float Input
+%x_6_param_1 = OpVariable %_ptr_Input_v2float Input
+    %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_7 = OpVariable %_ptr_Output_v4float Output %30
+         %22 = OpConstantNull %v4float
+    %x_8_1_1 = OpVariable %_ptr_Output_v4float Output %22
+%_ptr_Output_float = OpTypePointer Output %float
+         %25 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %25
+%_ptr_Private_uint = OpTypePointer Private %uint
+         %28 = OpConstantNull %uint
+        %x_1 = OpVariable %_ptr_Private_uint Private %28
+%_ptr_Private_v2uint = OpTypePointer Private %v2uint
+         %31 = OpConstantNull %v2uint
+        %x_2 = OpVariable %_ptr_Private_v2uint Private %31
+%_ptr_Private_int = OpTypePointer Private %int
+         %34 = OpConstantNull %int
+        %x_3 = OpVariable %_ptr_Private_int Private %34
+%_ptr_Private_v2int = OpTypePointer Private %v2int
+         %37 = OpConstantNull %v2int
+        %x_4 = OpVariable %_ptr_Private_v2int Private %37
+%_ptr_Private_float = OpTypePointer Private %float
+        %x_5 = OpVariable %_ptr_Private_float Private %25
+%_ptr_Private_v2float = OpTypePointer Private %v2float
+         %42 = OpConstantNull %v2float
+        %x_6 = OpVariable %_ptr_Private_v2float Private %42
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+        %x_8 = OpVariable %_ptr_Private_v4float Private %22
        %void = OpTypeVoid
          %45 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %49 = OpTypeFunction %void %main_out
+         %49 = OpTypeFunction %main_out %uint %v2uint %int %v2int %float %v2float
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %45
          %48 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_8 = OpFunction %void None %49
-%tint_symbol_6 = OpFunctionParameter %main_out
-         %53 = OpLabel
-         %54 = OpCompositeExtract %v4float %tint_symbol_6 0
-               OpStore %tint_symbol_7 %54
-               OpReturn
+ %main_inner = OpFunction %main_out None %49
+  %x_1_param = OpFunctionParameter %uint
+  %x_2_param = OpFunctionParameter %v2uint
+  %x_3_param = OpFunctionParameter %int
+  %x_4_param = OpFunctionParameter %v2int
+  %x_5_param = OpFunctionParameter %float
+  %x_6_param = OpFunctionParameter %v2float
+         %58 = OpLabel
+               OpStore %x_1 %x_1_param
+               OpStore %x_2 %x_2_param
+               OpStore %x_3 %x_3_param
+               OpStore %x_4 %x_4_param
+               OpStore %x_5 %x_5_param
+               OpStore %x_6 %x_6_param
+         %59 = OpFunctionCall %void %main_1
+         %60 = OpLoad %v4float %x_8
+         %61 = OpCompositeConstruct %main_out %60
+               OpReturnValue %61
                OpFunctionEnd
        %main = OpFunction %void None %45
-         %56 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %58 = OpLoad %uint %tint_symbol
-               OpStore %x_1 %58
-         %59 = OpLoad %v2uint %tint_symbol_1
-               OpStore %x_2 %59
-         %60 = OpLoad %int %tint_symbol_2
-               OpStore %x_3 %60
-         %61 = OpLoad %v2int %tint_symbol_3
-               OpStore %x_4 %61
-         %62 = OpLoad %float %tint_symbol_4
-               OpStore %x_5 %62
-         %63 = OpLoad %v2float %tint_symbol_5
-               OpStore %x_6 %63
-         %64 = OpFunctionCall %void %main_1
-         %66 = OpLoad %v4float %x_8
-         %67 = OpCompositeConstruct %main_out %66
-         %65 = OpFunctionCall %void %tint_symbol_8 %67
+         %63 = OpLabel
+         %65 = OpLoad %uint %x_1_param_1
+         %66 = OpLoad %v2uint %x_2_param_1
+         %67 = OpLoad %int %x_3_param_1
+         %68 = OpLoad %v2int %x_4_param_1
+         %69 = OpLoad %float %x_5_param_1
+         %70 = OpLoad %v2float %x_6_param_1
+         %64 = OpFunctionCall %main_out %main_inner %65 %66 %67 %68 %69 %70
+         %71 = OpCompositeExtract %v4float %64 0
+               OpStore %x_8_1_1 %71
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Flat_Vertex_Output.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Flat_Vertex_Output.spvasm.expected.spvasm
index 52337ff..7fe0a34 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Flat_Vertex_Output.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Flat_Vertex_Output.spvasm.expected.spvasm
@@ -1,12 +1,19 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 73
+; Bound: 72
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4 %tint_symbol_5 %tint_symbol_6 %tint_symbol_7
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_1_1_1 %x_2_1_1 %x_3_1_1 %x_4_1_1 %x_5_1_1 %x_6_1_1 %x_8_1_1 %vertex_point_size
+               OpName %x_1_1_1 "x_1_1_1"
+               OpName %x_2_1_1 "x_2_1_1"
+               OpName %x_3_1_1 "x_3_1_1"
+               OpName %x_4_1_1 "x_4_1_1"
+               OpName %x_5_1_1 "x_5_1_1"
+               OpName %x_6_1_1 "x_6_1_1"
+               OpName %x_8_1_1 "x_8_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_1 "x_1"
                OpName %x_2 "x_2"
                OpName %x_3 "x_3"
@@ -14,13 +21,6 @@
                OpName %x_5 "x_5"
                OpName %x_6 "x_6"
                OpName %x_8 "x_8"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_6 "tint_symbol_6"
-               OpName %tint_symbol_7 "tint_symbol_7"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_1_1"
@@ -30,23 +30,22 @@
                OpMemberName %main_out 4 "x_5_1"
                OpMemberName %main_out 5 "x_6_1"
                OpMemberName %main_out 6 "x_8_1"
-               OpName %tint_symbol_8 "tint_symbol_8"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 Location 1
-               OpDecorate %tint_symbol_1 Flat
-               OpDecorate %tint_symbol_2 Location 2
-               OpDecorate %tint_symbol_2 Flat
-               OpDecorate %tint_symbol_3 Location 3
-               OpDecorate %tint_symbol_3 Flat
-               OpDecorate %tint_symbol_4 Location 4
-               OpDecorate %tint_symbol_4 Flat
-               OpDecorate %tint_symbol_5 Location 5
-               OpDecorate %tint_symbol_5 Flat
-               OpDecorate %tint_symbol_6 Location 6
-               OpDecorate %tint_symbol_6 Flat
-               OpDecorate %tint_symbol_7 BuiltIn Position
+               OpDecorate %x_1_1_1 Location 1
+               OpDecorate %x_1_1_1 Flat
+               OpDecorate %x_2_1_1 Location 2
+               OpDecorate %x_2_1_1 Flat
+               OpDecorate %x_3_1_1 Location 3
+               OpDecorate %x_3_1_1 Flat
+               OpDecorate %x_4_1_1 Location 4
+               OpDecorate %x_4_1_1 Flat
+               OpDecorate %x_5_1_1 Location 5
+               OpDecorate %x_5_1_1 Flat
+               OpDecorate %x_6_1_1 Location 6
+               OpDecorate %x_6_1_1 Flat
+               OpDecorate %x_8_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 8
                OpMemberDecorate %main_out 2 Offset 16
@@ -54,89 +53,88 @@
                OpMemberDecorate %main_out 4 Offset 32
                OpMemberDecorate %main_out 5 Offset 40
                OpMemberDecorate %main_out 6 Offset 48
+       %uint = OpTypeInt 32 0
+%_ptr_Output_uint = OpTypePointer Output %uint
+          %4 = OpConstantNull %uint
+    %x_1_1_1 = OpVariable %_ptr_Output_uint Output %4
+     %v2uint = OpTypeVector %uint 2
+%_ptr_Output_v2uint = OpTypePointer Output %v2uint
+          %8 = OpConstantNull %v2uint
+    %x_2_1_1 = OpVariable %_ptr_Output_v2uint Output %8
+        %int = OpTypeInt 32 1
+%_ptr_Output_int = OpTypePointer Output %int
+         %12 = OpConstantNull %int
+    %x_3_1_1 = OpVariable %_ptr_Output_int Output %12
+      %v2int = OpTypeVector %int 2
+%_ptr_Output_v2int = OpTypePointer Output %v2int
+         %16 = OpConstantNull %v2int
+    %x_4_1_1 = OpVariable %_ptr_Output_v2int Output %16
       %float = OpTypeFloat 32
 %_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-       %uint = OpTypeInt 32 0
-%_ptr_Private_uint = OpTypePointer Private %uint
-          %8 = OpConstantNull %uint
-        %x_1 = OpVariable %_ptr_Private_uint Private %8
-     %v2uint = OpTypeVector %uint 2
-%_ptr_Private_v2uint = OpTypePointer Private %v2uint
-         %12 = OpConstantNull %v2uint
-        %x_2 = OpVariable %_ptr_Private_v2uint Private %12
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-         %16 = OpConstantNull %int
-        %x_3 = OpVariable %_ptr_Private_int Private %16
-      %v2int = OpTypeVector %int 2
-%_ptr_Private_v2int = OpTypePointer Private %v2int
-         %20 = OpConstantNull %v2int
-        %x_4 = OpVariable %_ptr_Private_v2int Private %20
-%_ptr_Private_float = OpTypePointer Private %float
-        %x_5 = OpVariable %_ptr_Private_float Private %4
+         %20 = OpConstantNull %float
+    %x_5_1_1 = OpVariable %_ptr_Output_float Output %20
     %v2float = OpTypeVector %float 2
-%_ptr_Private_v2float = OpTypePointer Private %v2float
-         %26 = OpConstantNull %v2float
-        %x_6 = OpVariable %_ptr_Private_v2float Private %26
-    %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-         %30 = OpConstantNull %v4float
-        %x_8 = OpVariable %_ptr_Private_v4float Private %30
-%_ptr_Output_uint = OpTypePointer Output %uint
-%tint_symbol_1 = OpVariable %_ptr_Output_uint Output %8
-%_ptr_Output_v2uint = OpTypePointer Output %v2uint
-%tint_symbol_2 = OpVariable %_ptr_Output_v2uint Output %12
-%_ptr_Output_int = OpTypePointer Output %int
-%tint_symbol_3 = OpVariable %_ptr_Output_int Output %16
-%_ptr_Output_v2int = OpTypePointer Output %v2int
-%tint_symbol_4 = OpVariable %_ptr_Output_v2int Output %20
-%tint_symbol_5 = OpVariable %_ptr_Output_float Output %4
 %_ptr_Output_v2float = OpTypePointer Output %v2float
-%tint_symbol_6 = OpVariable %_ptr_Output_v2float Output %26
+         %24 = OpConstantNull %v2float
+    %x_6_1_1 = OpVariable %_ptr_Output_v2float Output %24
+    %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_7 = OpVariable %_ptr_Output_v4float Output %30
+         %28 = OpConstantNull %v4float
+    %x_8_1_1 = OpVariable %_ptr_Output_v4float Output %28
+%vertex_point_size = OpVariable %_ptr_Output_float Output %20
+%_ptr_Private_uint = OpTypePointer Private %uint
+        %x_1 = OpVariable %_ptr_Private_uint Private %4
+%_ptr_Private_v2uint = OpTypePointer Private %v2uint
+        %x_2 = OpVariable %_ptr_Private_v2uint Private %8
+%_ptr_Private_int = OpTypePointer Private %int
+        %x_3 = OpVariable %_ptr_Private_int Private %12
+%_ptr_Private_v2int = OpTypePointer Private %v2int
+        %x_4 = OpVariable %_ptr_Private_v2int Private %16
+%_ptr_Private_float = OpTypePointer Private %float
+        %x_5 = OpVariable %_ptr_Private_float Private %20
+%_ptr_Private_v2float = OpTypePointer Private %v2float
+        %x_6 = OpVariable %_ptr_Private_v2float Private %24
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+        %x_8 = OpVariable %_ptr_Private_v4float Private %28
        %void = OpTypeVoid
          %44 = OpTypeFunction %void
    %main_out = OpTypeStruct %uint %v2uint %int %v2int %float %v2float %v4float
-         %48 = OpTypeFunction %void %main_out
+         %48 = OpTypeFunction %main_out
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %44
          %47 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_8 = OpFunction %void None %48
-%tint_symbol = OpFunctionParameter %main_out
-         %52 = OpLabel
-         %53 = OpCompositeExtract %uint %tint_symbol 0
-               OpStore %tint_symbol_1 %53
-         %54 = OpCompositeExtract %v2uint %tint_symbol 1
-               OpStore %tint_symbol_2 %54
-         %55 = OpCompositeExtract %int %tint_symbol 2
-               OpStore %tint_symbol_3 %55
-         %56 = OpCompositeExtract %v2int %tint_symbol 3
-               OpStore %tint_symbol_4 %56
-         %57 = OpCompositeExtract %float %tint_symbol 4
-               OpStore %tint_symbol_5 %57
-         %58 = OpCompositeExtract %v2float %tint_symbol 5
-               OpStore %tint_symbol_6 %58
-         %59 = OpCompositeExtract %v4float %tint_symbol 6
-               OpStore %tint_symbol_7 %59
-               OpReturn
+ %main_inner = OpFunction %main_out None %48
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %main_1
+         %53 = OpLoad %uint %x_1
+         %54 = OpLoad %v2uint %x_2
+         %55 = OpLoad %int %x_3
+         %56 = OpLoad %v2int %x_4
+         %57 = OpLoad %float %x_5
+         %58 = OpLoad %v2float %x_6
+         %59 = OpLoad %v4float %x_8
+         %60 = OpCompositeConstruct %main_out %53 %54 %55 %56 %57 %58 %59
+               OpReturnValue %60
                OpFunctionEnd
        %main = OpFunction %void None %44
-         %61 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %63 = OpFunctionCall %void %main_1
-         %65 = OpLoad %uint %x_1
-         %66 = OpLoad %v2uint %x_2
-         %67 = OpLoad %int %x_3
-         %68 = OpLoad %v2int %x_4
-         %69 = OpLoad %float %x_5
-         %70 = OpLoad %v2float %x_6
-         %71 = OpLoad %v4float %x_8
-         %72 = OpCompositeConstruct %main_out %65 %66 %67 %68 %69 %70 %71
-         %64 = OpFunctionCall %void %tint_symbol_8 %72
+         %62 = OpLabel
+         %63 = OpFunctionCall %main_out %main_inner
+         %64 = OpCompositeExtract %uint %63 0
+               OpStore %x_1_1_1 %64
+         %65 = OpCompositeExtract %v2uint %63 1
+               OpStore %x_2_1_1 %65
+         %66 = OpCompositeExtract %int %63 2
+               OpStore %x_3_1_1 %66
+         %67 = OpCompositeExtract %v2int %63 3
+               OpStore %x_4_1_1 %67
+         %68 = OpCompositeExtract %float %63 4
+               OpStore %x_5_1_1 %68
+         %69 = OpCompositeExtract %v2float %63 5
+               OpStore %x_6_1_1 %69
+         %70 = OpCompositeExtract %v4float %63 6
+               OpStore %x_8_1_1 %70
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Floating_Fragment_In.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Floating_Fragment_In.spvasm.expected.spvasm
index a5b6742..5308c15 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Floating_Fragment_In.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Floating_Fragment_In.spvasm.expected.spvasm
@@ -1,76 +1,95 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 30
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpCapability SampleRateShading
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4 %tint_symbol_5
+               OpEntryPoint Fragment %main "main" %x_1_param_1 %x_2_param_1 %x_3_param_1 %x_4_param_1 %x_5_param_1 %x_6_param_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_param_1 "x_1_param_1"
+               OpName %x_2_param_1 "x_2_param_1"
+               OpName %x_3_param_1 "x_3_param_1"
+               OpName %x_4_param_1 "x_4_param_1"
+               OpName %x_5_param_1 "x_5_param_1"
+               OpName %x_6_param_1 "x_6_param_1"
                OpName %x_1 "x_1"
                OpName %x_2 "x_2"
                OpName %x_3 "x_3"
                OpName %x_4 "x_4"
                OpName %x_5 "x_5"
                OpName %x_6 "x_6"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_5 "tint_symbol_5"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
+               OpName %x_2_param "x_2_param"
+               OpName %x_3_param "x_3_param"
+               OpName %x_4_param "x_4_param"
+               OpName %x_5_param "x_5_param"
+               OpName %x_6_param "x_6_param"
                OpName %main "main"
-               OpDecorate %tint_symbol Location 1
-               OpDecorate %tint_symbol_1 Location 2
-               OpDecorate %tint_symbol_1 Centroid
-               OpDecorate %tint_symbol_2 Location 3
-               OpDecorate %tint_symbol_2 Sample
-               OpDecorate %tint_symbol_3 Location 4
-               OpDecorate %tint_symbol_3 NoPerspective
-               OpDecorate %tint_symbol_4 Location 5
-               OpDecorate %tint_symbol_4 NoPerspective
-               OpDecorate %tint_symbol_4 Centroid
-               OpDecorate %tint_symbol_5 Location 6
-               OpDecorate %tint_symbol_5 NoPerspective
-               OpDecorate %tint_symbol_5 Sample
+               OpDecorate %x_1_param_1 Location 1
+               OpDecorate %x_2_param_1 Location 2
+               OpDecorate %x_2_param_1 Centroid
+               OpDecorate %x_3_param_1 Location 3
+               OpDecorate %x_3_param_1 Sample
+               OpDecorate %x_4_param_1 Location 4
+               OpDecorate %x_4_param_1 NoPerspective
+               OpDecorate %x_5_param_1 Location 5
+               OpDecorate %x_5_param_1 NoPerspective
+               OpDecorate %x_5_param_1 Centroid
+               OpDecorate %x_6_param_1 Location 6
+               OpDecorate %x_6_param_1 NoPerspective
+               OpDecorate %x_6_param_1 Sample
       %float = OpTypeFloat 32
-%_ptr_Private_float = OpTypePointer Private %float
-          %4 = OpConstantNull %float
-        %x_1 = OpVariable %_ptr_Private_float Private %4
-        %x_2 = OpVariable %_ptr_Private_float Private %4
-        %x_3 = OpVariable %_ptr_Private_float Private %4
-        %x_4 = OpVariable %_ptr_Private_float Private %4
-        %x_5 = OpVariable %_ptr_Private_float Private %4
-        %x_6 = OpVariable %_ptr_Private_float Private %4
 %_ptr_Input_float = OpTypePointer Input %float
-%tint_symbol = OpVariable %_ptr_Input_float Input
-%tint_symbol_1 = OpVariable %_ptr_Input_float Input
-%tint_symbol_2 = OpVariable %_ptr_Input_float Input
-%tint_symbol_3 = OpVariable %_ptr_Input_float Input
-%tint_symbol_4 = OpVariable %_ptr_Input_float Input
-%tint_symbol_5 = OpVariable %_ptr_Input_float Input
+%x_1_param_1 = OpVariable %_ptr_Input_float Input
+%x_2_param_1 = OpVariable %_ptr_Input_float Input
+%x_3_param_1 = OpVariable %_ptr_Input_float Input
+%x_4_param_1 = OpVariable %_ptr_Input_float Input
+%x_5_param_1 = OpVariable %_ptr_Input_float Input
+%x_6_param_1 = OpVariable %_ptr_Input_float Input
+%_ptr_Private_float = OpTypePointer Private %float
+         %11 = OpConstantNull %float
+        %x_1 = OpVariable %_ptr_Private_float Private %11
+        %x_2 = OpVariable %_ptr_Private_float Private %11
+        %x_3 = OpVariable %_ptr_Private_float Private %11
+        %x_4 = OpVariable %_ptr_Private_float Private %11
+        %x_5 = OpVariable %_ptr_Private_float Private %11
+        %x_6 = OpVariable %_ptr_Private_float Private %11
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
+         %21 = OpTypeFunction %void %float %float %float %float %float %float
      %main_1 = OpFunction %void None %17
          %20 = OpLabel
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %21
+  %x_1_param = OpFunctionParameter %float
+  %x_2_param = OpFunctionParameter %float
+  %x_3_param = OpFunctionParameter %float
+  %x_4_param = OpFunctionParameter %float
+  %x_5_param = OpFunctionParameter %float
+  %x_6_param = OpFunctionParameter %float
+         %29 = OpLabel
+               OpStore %x_1 %x_1_param
+               OpStore %x_2 %x_2_param
+               OpStore %x_3 %x_3_param
+               OpStore %x_4 %x_4_param
+               OpStore %x_5 %x_5_param
+               OpStore %x_6 %x_6_param
+         %30 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %17
-         %22 = OpLabel
-         %23 = OpLoad %float %tint_symbol
-               OpStore %x_1 %23
-         %24 = OpLoad %float %tint_symbol_1
-               OpStore %x_2 %24
-         %25 = OpLoad %float %tint_symbol_2
-               OpStore %x_3 %25
-         %26 = OpLoad %float %tint_symbol_3
-               OpStore %x_4 %26
-         %27 = OpLoad %float %tint_symbol_4
-               OpStore %x_5 %27
-         %28 = OpLoad %float %tint_symbol_5
-               OpStore %x_6 %28
-         %29 = OpFunctionCall %void %main_1
+         %32 = OpLabel
+         %34 = OpLoad %float %x_1_param_1
+         %35 = OpLoad %float %x_2_param_1
+         %36 = OpLoad %float %x_3_param_1
+         %37 = OpLoad %float %x_4_param_1
+         %38 = OpLoad %float %x_5_param_1
+         %39 = OpLoad %float %x_6_param_1
+         %33 = OpFunctionCall %void %main_inner %34 %35 %36 %37 %38 %39
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Floating_Fragment_Out.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Floating_Fragment_Out.spvasm.expected.spvasm
index ce9d79a..a2b4430 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Floating_Fragment_Out.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Floating_Fragment_Out.spvasm.expected.spvasm
@@ -1,25 +1,25 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpCapability SampleRateShading
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4 %tint_symbol_5 %tint_symbol_6
+               OpEntryPoint Fragment %main "main" %x_1_1_1 %x_2_1_1 %x_3_1_1 %x_4_1_1 %x_5_1_1 %x_6_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_1_1 "x_1_1_1"
+               OpName %x_2_1_1 "x_2_1_1"
+               OpName %x_3_1_1 "x_3_1_1"
+               OpName %x_4_1_1 "x_4_1_1"
+               OpName %x_5_1_1 "x_5_1_1"
+               OpName %x_6_1_1 "x_6_1_1"
                OpName %x_1 "x_1"
                OpName %x_2 "x_2"
                OpName %x_3 "x_3"
                OpName %x_4 "x_4"
                OpName %x_5 "x_5"
                OpName %x_6 "x_6"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_6 "tint_symbol_6"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_1_1"
@@ -28,22 +28,21 @@
                OpMemberName %main_out 3 "x_4_1"
                OpMemberName %main_out 4 "x_5_1"
                OpMemberName %main_out 5 "x_6_1"
-               OpName %tint_symbol_7 "tint_symbol_7"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 1
-               OpDecorate %tint_symbol_2 Location 2
-               OpDecorate %tint_symbol_2 Centroid
-               OpDecorate %tint_symbol_3 Location 3
-               OpDecorate %tint_symbol_3 Sample
-               OpDecorate %tint_symbol_4 Location 4
-               OpDecorate %tint_symbol_4 NoPerspective
-               OpDecorate %tint_symbol_5 Location 5
-               OpDecorate %tint_symbol_5 NoPerspective
-               OpDecorate %tint_symbol_5 Centroid
-               OpDecorate %tint_symbol_6 Location 6
-               OpDecorate %tint_symbol_6 NoPerspective
-               OpDecorate %tint_symbol_6 Sample
+               OpDecorate %x_1_1_1 Location 1
+               OpDecorate %x_2_1_1 Location 2
+               OpDecorate %x_2_1_1 Centroid
+               OpDecorate %x_3_1_1 Location 3
+               OpDecorate %x_3_1_1 Sample
+               OpDecorate %x_4_1_1 Location 4
+               OpDecorate %x_4_1_1 NoPerspective
+               OpDecorate %x_5_1_1 Location 5
+               OpDecorate %x_5_1_1 NoPerspective
+               OpDecorate %x_5_1_1 Centroid
+               OpDecorate %x_6_1_1 Location 6
+               OpDecorate %x_6_1_1 NoPerspective
+               OpDecorate %x_6_1_1 Sample
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 4
                OpMemberDecorate %main_out 2 Offset 8
@@ -51,56 +50,55 @@
                OpMemberDecorate %main_out 4 Offset 16
                OpMemberDecorate %main_out 5 Offset 20
       %float = OpTypeFloat 32
-%_ptr_Private_float = OpTypePointer Private %float
+%_ptr_Output_float = OpTypePointer Output %float
           %4 = OpConstantNull %float
+    %x_1_1_1 = OpVariable %_ptr_Output_float Output %4
+    %x_2_1_1 = OpVariable %_ptr_Output_float Output %4
+    %x_3_1_1 = OpVariable %_ptr_Output_float Output %4
+    %x_4_1_1 = OpVariable %_ptr_Output_float Output %4
+    %x_5_1_1 = OpVariable %_ptr_Output_float Output %4
+    %x_6_1_1 = OpVariable %_ptr_Output_float Output %4
+%_ptr_Private_float = OpTypePointer Private %float
         %x_1 = OpVariable %_ptr_Private_float Private %4
         %x_2 = OpVariable %_ptr_Private_float Private %4
         %x_3 = OpVariable %_ptr_Private_float Private %4
         %x_4 = OpVariable %_ptr_Private_float Private %4
         %x_5 = OpVariable %_ptr_Private_float Private %4
         %x_6 = OpVariable %_ptr_Private_float Private %4
-%_ptr_Output_float = OpTypePointer Output %float
-%tint_symbol_1 = OpVariable %_ptr_Output_float Output %4
-%tint_symbol_2 = OpVariable %_ptr_Output_float Output %4
-%tint_symbol_3 = OpVariable %_ptr_Output_float Output %4
-%tint_symbol_4 = OpVariable %_ptr_Output_float Output %4
-%tint_symbol_5 = OpVariable %_ptr_Output_float Output %4
-%tint_symbol_6 = OpVariable %_ptr_Output_float Output %4
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
    %main_out = OpTypeStruct %float %float %float %float %float %float
-         %21 = OpTypeFunction %void %main_out
+         %21 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %17
          %20 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_7 = OpFunction %void None %21
-%tint_symbol = OpFunctionParameter %main_out
-         %25 = OpLabel
-         %26 = OpCompositeExtract %float %tint_symbol 0
-               OpStore %tint_symbol_1 %26
-         %27 = OpCompositeExtract %float %tint_symbol 1
-               OpStore %tint_symbol_2 %27
-         %28 = OpCompositeExtract %float %tint_symbol 2
-               OpStore %tint_symbol_3 %28
-         %29 = OpCompositeExtract %float %tint_symbol 3
-               OpStore %tint_symbol_4 %29
-         %30 = OpCompositeExtract %float %tint_symbol 4
-               OpStore %tint_symbol_5 %30
-         %31 = OpCompositeExtract %float %tint_symbol 5
-               OpStore %tint_symbol_6 %31
-               OpReturn
+ %main_inner = OpFunction %main_out None %21
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %main_1
+         %26 = OpLoad %float %x_1
+         %27 = OpLoad %float %x_2
+         %28 = OpLoad %float %x_3
+         %29 = OpLoad %float %x_4
+         %30 = OpLoad %float %x_5
+         %31 = OpLoad %float %x_6
+         %32 = OpCompositeConstruct %main_out %26 %27 %28 %29 %30 %31
+               OpReturnValue %32
                OpFunctionEnd
        %main = OpFunction %void None %17
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %main_1
-         %36 = OpLoad %float %x_1
-         %37 = OpLoad %float %x_2
-         %38 = OpLoad %float %x_3
-         %39 = OpLoad %float %x_4
-         %40 = OpLoad %float %x_5
-         %41 = OpLoad %float %x_6
-         %42 = OpCompositeConstruct %main_out %36 %37 %38 %39 %40 %41
-         %35 = OpFunctionCall %void %tint_symbol_7 %42
+         %34 = OpLabel
+         %35 = OpFunctionCall %main_out %main_inner
+         %36 = OpCompositeExtract %float %35 0
+               OpStore %x_1_1_1 %36
+         %37 = OpCompositeExtract %float %35 1
+               OpStore %x_2_1_1 %37
+         %38 = OpCompositeExtract %float %35 2
+               OpStore %x_3_1_1 %38
+         %39 = OpCompositeExtract %float %35 3
+               OpStore %x_4_1_1 %39
+         %40 = OpCompositeExtract %float %35 4
+               OpStore %x_5_1_1 %40
+         %41 = OpCompositeExtract %float %35 5
+               OpStore %x_6_1_1 %41
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_FlattenStruct_LocOnMembers.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_FlattenStruct_LocOnMembers.spvasm.expected.spvasm
index 1fb50f3..ae11421 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_FlattenStruct_LocOnMembers.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_FlattenStruct_LocOnMembers.spvasm.expected.spvasm
@@ -1,103 +1,105 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_1 %tint_symbol_3 %tint_symbol_4 %tint_symbol_5
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_1_param_2 %x_1_param_1_1 %x_2_1_1 %x_3_1_1 %x_3_2_1 %vertex_point_size
+               OpName %x_1_param_2 "x_1_param_2"
+               OpName %x_1_param_1_1 "x_1_param_1_1"
+               OpName %x_2_1_1 "x_2_1_1"
+               OpName %x_3_1_1 "x_3_1_1"
+               OpName %x_3_2_1 "x_3_2_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %Communicators "Communicators"
                OpMemberName %Communicators 0 "alice"
                OpMemberName %Communicators 1 "bob"
                OpName %x_1 "x_1"
                OpName %x_3 "x_3"
                OpName %x_2 "x_2"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_5 "tint_symbol_5"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_2_1"
                OpMemberName %main_out 1 "x_3_1"
                OpMemberName %main_out 2 "x_3_2"
-               OpName %tint_symbol_6 "tint_symbol_6"
-               OpName %tint_symbol_2 "tint_symbol_2"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %x_1_param_2 Location 9
+               OpDecorate %x_1_param_1_1 Location 11
+               OpDecorate %x_2_1_1 BuiltIn Position
+               OpDecorate %x_3_1_1 Location 9
+               OpDecorate %x_3_2_1 Location 11
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %Communicators 0 Offset 0
                OpMemberDecorate %Communicators 1 Offset 16
-               OpDecorate %tint_symbol Location 9
-               OpDecorate %tint_symbol_1 Location 11
-               OpDecorate %tint_symbol_3 BuiltIn Position
-               OpDecorate %tint_symbol_4 Location 9
-               OpDecorate %tint_symbol_5 Location 11
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
                OpMemberDecorate %main_out 2 Offset 32
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+%_ptr_Input_float = OpTypePointer Input %float
+%x_1_param_2 = OpVariable %_ptr_Input_float Input
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%x_1_param_1_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %9 = OpConstantNull %v4float
+    %x_2_1_1 = OpVariable %_ptr_Output_v4float Output %9
+%_ptr_Output_float = OpTypePointer Output %float
+         %12 = OpConstantNull %float
+    %x_3_1_1 = OpVariable %_ptr_Output_float Output %12
+    %x_3_2_1 = OpVariable %_ptr_Output_v4float Output %9
+%vertex_point_size = OpVariable %_ptr_Output_float Output %12
 %Communicators = OpTypeStruct %float %v4float
 %_ptr_Private_Communicators = OpTypePointer Private %Communicators
-          %9 = OpConstantNull %Communicators
-        %x_1 = OpVariable %_ptr_Private_Communicators Private %9
-        %x_3 = OpVariable %_ptr_Private_Communicators Private %9
+         %18 = OpConstantNull %Communicators
+        %x_1 = OpVariable %_ptr_Private_Communicators Private %18
+        %x_3 = OpVariable %_ptr_Private_Communicators Private %18
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %13 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %13
-%_ptr_Input_float = OpTypePointer Input %float
-%tint_symbol = OpVariable %_ptr_Input_float Input
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol_1 = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %13
-%tint_symbol_4 = OpVariable %_ptr_Output_float Output %4
-%tint_symbol_5 = OpVariable %_ptr_Output_v4float Output %13
+        %x_2 = OpVariable %_ptr_Private_v4float Private %9
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float %float %v4float
-         %26 = OpTypeFunction %void %main_out
-    %float_1 = OpConstant %float 1
+         %26 = OpTypeFunction %main_out %float %v4float
        %uint = OpTypeInt 32 0
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_float = OpTypePointer Private %float
      %uint_1 = OpConstant %uint 1
+    %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %22
          %25 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_6 = OpFunction %void None %26
-%tint_symbol_2 = OpFunctionParameter %main_out
-         %30 = OpLabel
-         %31 = OpCompositeExtract %v4float %tint_symbol_2 0
-               OpStore %tint_symbol_3 %31
-         %32 = OpCompositeExtract %float %tint_symbol_2 1
-               OpStore %tint_symbol_4 %32
-         %33 = OpCompositeExtract %v4float %tint_symbol_2 2
-               OpStore %tint_symbol_5 %33
-               OpReturn
+ %main_inner = OpFunction %main_out None %26
+  %x_1_param = OpFunctionParameter %float
+%x_1_param_1 = OpFunctionParameter %v4float
+         %31 = OpLabel
+         %35 = OpAccessChain %_ptr_Private_float %x_1 %uint_0
+               OpStore %35 %x_1_param
+         %37 = OpAccessChain %_ptr_Private_v4float %x_1 %uint_1
+               OpStore %37 %x_1_param_1
+         %38 = OpFunctionCall %void %main_1
+         %39 = OpLoad %v4float %x_2
+         %40 = OpAccessChain %_ptr_Private_float %x_3 %uint_0
+         %41 = OpLoad %float %40
+         %42 = OpAccessChain %_ptr_Private_v4float %x_3 %uint_1
+         %43 = OpLoad %v4float %42
+         %44 = OpCompositeConstruct %main_out %39 %41 %43
+               OpReturnValue %44
                OpFunctionEnd
        %main = OpFunction %void None %22
-         %35 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %40 = OpAccessChain %_ptr_Private_float %x_1 %uint_0
-         %41 = OpLoad %float %tint_symbol
-               OpStore %40 %41
-         %43 = OpAccessChain %_ptr_Private_v4float %x_1 %uint_1
-         %44 = OpLoad %v4float %tint_symbol_1
-               OpStore %43 %44
-         %45 = OpFunctionCall %void %main_1
-         %47 = OpLoad %v4float %x_2
-         %48 = OpAccessChain %_ptr_Private_float %x_3 %uint_0
-         %49 = OpLoad %float %48
-         %50 = OpAccessChain %_ptr_Private_v4float %x_3 %uint_1
-         %51 = OpLoad %v4float %50
-         %52 = OpCompositeConstruct %main_out %47 %49 %51
-         %46 = OpFunctionCall %void %tint_symbol_6 %52
+         %46 = OpLabel
+         %48 = OpLoad %float %x_1_param_2
+         %49 = OpLoad %v4float %x_1_param_1_1
+         %47 = OpFunctionCall %main_out %main_inner %48 %49
+         %50 = OpCompositeExtract %v4float %47 0
+               OpStore %x_2_1_1 %50
+         %51 = OpCompositeExtract %float %47 1
+               OpStore %x_3_1_1 %51
+         %52 = OpCompositeExtract %v4float %47 2
+               OpStore %x_3_2_1 %52
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenArray_OneLevel.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenArray_OneLevel.spvasm.expected.spvasm
index 280aeff..ba49208 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenArray_OneLevel.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenArray_OneLevel.spvasm.expected.spvasm
@@ -1,87 +1,91 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_4
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_1_param_3 %x_1_param_1_1 %x_1_param_2_1 %x_2_1_1 %vertex_point_size
+               OpName %x_1_param_3 "x_1_param_3"
+               OpName %x_1_param_1_1 "x_1_param_1_1"
+               OpName %x_1_param_2_1 "x_1_param_2_1"
+               OpName %x_2_1_1 "x_2_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_1 "x_1"
                OpName %x_2 "x_2"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_4 "tint_symbol_4"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_2_1"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_3 "tint_symbol_3"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
+               OpName %x_1_param_1 "x_1_param_1"
+               OpName %x_1_param_2 "x_1_param_2"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %x_1_param_3 Location 4
+               OpDecorate %x_1_param_1_1 Location 5
+               OpDecorate %x_1_param_2_1 Location 6
+               OpDecorate %x_2_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %_arr_float_uint_3 ArrayStride 4
-               OpDecorate %tint_symbol Location 4
-               OpDecorate %tint_symbol_1 Location 5
-               OpDecorate %tint_symbol_2 Location 6
-               OpDecorate %tint_symbol_4 BuiltIn Position
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+%_ptr_Input_float = OpTypePointer Input %float
+%x_1_param_3 = OpVariable %_ptr_Input_float Input
+%x_1_param_1_1 = OpVariable %_ptr_Input_float Input
+%x_1_param_2_1 = OpVariable %_ptr_Input_float Input
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %9 = OpConstantNull %v4float
+    %x_2_1_1 = OpVariable %_ptr_Output_v4float Output %9
 %_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+         %12 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %12
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
 %_ptr_Private__arr_float_uint_3 = OpTypePointer Private %_arr_float_uint_3
-         %10 = OpConstantNull %_arr_float_uint_3
-        %x_1 = OpVariable %_ptr_Private__arr_float_uint_3 Private %10
-    %v4float = OpTypeVector %float 4
+         %18 = OpConstantNull %_arr_float_uint_3
+        %x_1 = OpVariable %_ptr_Private__arr_float_uint_3 Private %18
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %14 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %14
-%_ptr_Input_float = OpTypePointer Input %float
-%tint_symbol = OpVariable %_ptr_Input_float Input
-%tint_symbol_1 = OpVariable %_ptr_Input_float Input
-%tint_symbol_2 = OpVariable %_ptr_Input_float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_4 = OpVariable %_ptr_Output_v4float Output %14
+        %x_2 = OpVariable %_ptr_Private_v4float Private %9
        %void = OpTypeVoid
          %21 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %25 = OpTypeFunction %void %main_out
-    %float_1 = OpConstant %float 1
+         %25 = OpTypeFunction %main_out %float %float %float
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Private_float = OpTypePointer Private %float
       %int_1 = OpConstant %int 1
       %int_2 = OpConstant %int 2
+    %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %21
          %24 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_5 = OpFunction %void None %25
-%tint_symbol_3 = OpFunctionParameter %main_out
-         %29 = OpLabel
-         %30 = OpCompositeExtract %v4float %tint_symbol_3 0
-               OpStore %tint_symbol_4 %30
-               OpReturn
+ %main_inner = OpFunction %main_out None %25
+  %x_1_param = OpFunctionParameter %float
+%x_1_param_1 = OpFunctionParameter %float
+%x_1_param_2 = OpFunctionParameter %float
+         %31 = OpLabel
+         %35 = OpAccessChain %_ptr_Private_float %x_1 %int_0
+               OpStore %35 %x_1_param
+         %37 = OpAccessChain %_ptr_Private_float %x_1 %int_1
+               OpStore %37 %x_1_param_1
+         %39 = OpAccessChain %_ptr_Private_float %x_1 %int_2
+               OpStore %39 %x_1_param_2
+         %40 = OpFunctionCall %void %main_1
+         %41 = OpLoad %v4float %x_2
+         %42 = OpCompositeConstruct %main_out %41
+               OpReturnValue %42
                OpFunctionEnd
        %main = OpFunction %void None %21
-         %32 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %37 = OpAccessChain %_ptr_Private_float %x_1 %int_0
-         %38 = OpLoad %float %tint_symbol
-               OpStore %37 %38
-         %40 = OpAccessChain %_ptr_Private_float %x_1 %int_1
-         %41 = OpLoad %float %tint_symbol_1
-               OpStore %40 %41
-         %43 = OpAccessChain %_ptr_Private_float %x_1 %int_2
-         %44 = OpLoad %float %tint_symbol_2
-               OpStore %43 %44
-         %45 = OpFunctionCall %void %main_1
-         %47 = OpLoad %v4float %x_2
-         %48 = OpCompositeConstruct %main_out %47
-         %46 = OpFunctionCall %void %tint_symbol_5 %48
+         %44 = OpLabel
+         %46 = OpLoad %float %x_1_param_3
+         %47 = OpLoad %float %x_1_param_1_1
+         %48 = OpLoad %float %x_1_param_2_1
+         %45 = OpFunctionCall %main_out %main_inner %46 %47 %48
+         %49 = OpCompositeExtract %v4float %45 0
+               OpStore %x_2_1_1 %49
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenMatrix.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenMatrix.spvasm.expected.spvasm
index 34cb4ed..8caff85 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenMatrix.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenMatrix.spvasm.expected.spvasm
@@ -1,76 +1,78 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_1 %tint_symbol_3
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_1_param_2 %x_1_param_1_1 %x_2_1_1 %vertex_point_size
+               OpName %x_1_param_2 "x_1_param_2"
+               OpName %x_1_param_1_1 "x_1_param_1_1"
+               OpName %x_2_1_1 "x_2_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_1 "x_1"
                OpName %x_2 "x_2"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_2_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_2 "tint_symbol_2"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 9
-               OpDecorate %tint_symbol_1 Location 10
-               OpDecorate %tint_symbol_3 BuiltIn Position
+               OpDecorate %x_1_param_2 Location 9
+               OpDecorate %x_1_param_1_1 Location 10
+               OpDecorate %x_2_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%x_1_param_2 = OpVariable %_ptr_Input_v4float Input
+%x_1_param_1_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %8 = OpConstantNull %v4float
+    %x_2_1_1 = OpVariable %_ptr_Output_v4float Output %8
+%_ptr_Output_float = OpTypePointer Output %float
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
 %mat2v4float = OpTypeMatrix %v4float 2
 %_ptr_Private_mat2v4float = OpTypePointer Private %mat2v4float
-          %9 = OpConstantNull %mat2v4float
-        %x_1 = OpVariable %_ptr_Private_mat2v4float Private %9
+         %15 = OpConstantNull %mat2v4float
+        %x_1 = OpVariable %_ptr_Private_mat2v4float Private %15
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%tint_symbol_1 = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %12
+        %x_2 = OpVariable %_ptr_Private_v4float Private %8
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %22 = OpTypeFunction %void %main_out
-    %float_1 = OpConstant %float 1
+         %22 = OpTypeFunction %main_out %v4float %v4float
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
+    %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %22
-%tint_symbol_2 = OpFunctionParameter %main_out
-         %26 = OpLabel
-         %27 = OpCompositeExtract %v4float %tint_symbol_2 0
-               OpStore %tint_symbol_3 %27
-               OpReturn
+ %main_inner = OpFunction %main_out None %22
+  %x_1_param = OpFunctionParameter %v4float
+%x_1_param_1 = OpFunctionParameter %v4float
+         %27 = OpLabel
+         %30 = OpAccessChain %_ptr_Private_v4float %x_1 %int_0
+               OpStore %30 %x_1_param
+         %32 = OpAccessChain %_ptr_Private_v4float %x_1 %int_1
+               OpStore %32 %x_1_param_1
+         %33 = OpFunctionCall %void %main_1
+         %34 = OpLoad %v4float %x_2
+         %35 = OpCompositeConstruct %main_out %34
+               OpReturnValue %35
                OpFunctionEnd
        %main = OpFunction %void None %18
-         %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpAccessChain %_ptr_Private_v4float %x_1 %int_0
-         %34 = OpLoad %v4float %tint_symbol
-               OpStore %33 %34
-         %36 = OpAccessChain %_ptr_Private_v4float %x_1 %int_1
-         %37 = OpLoad %v4float %tint_symbol_1
-               OpStore %36 %37
-         %38 = OpFunctionCall %void %main_1
-         %40 = OpLoad %v4float %x_2
-         %41 = OpCompositeConstruct %main_out %40
-         %39 = OpFunctionCall %void %tint_symbol_4 %41
+         %37 = OpLabel
+         %39 = OpLoad %v4float %x_1_param_2
+         %40 = OpLoad %v4float %x_1_param_1_1
+         %38 = OpFunctionCall %main_out %main_inner %39 %40
+         %41 = OpCompositeExtract %v4float %38 0
+               OpStore %x_2_1_1 %41
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenNested.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenNested.spvasm.expected.spvasm
index b6bb3a7..2374315 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenNested.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenNested.spvasm.expected.spvasm
@@ -1,92 +1,98 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 51
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_5
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_1_param_4 %x_1_param_1_1 %x_1_param_2_1 %x_1_param_3_1 %x_2_1_1 %vertex_point_size
+               OpName %x_1_param_4 "x_1_param_4"
+               OpName %x_1_param_1_1 "x_1_param_1_1"
+               OpName %x_1_param_2_1 "x_1_param_2_1"
+               OpName %x_1_param_3_1 "x_1_param_3_1"
+               OpName %x_2_1_1 "x_2_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_1 "x_1"
                OpName %x_2 "x_2"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_5 "tint_symbol_5"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_2_1"
-               OpName %tint_symbol_6 "tint_symbol_6"
-               OpName %tint_symbol_4 "tint_symbol_4"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
+               OpName %x_1_param_1 "x_1_param_1"
+               OpName %x_1_param_2 "x_1_param_2"
+               OpName %x_1_param_3 "x_1_param_3"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %x_1_param_4 Location 7
+               OpDecorate %x_1_param_1_1 Location 8
+               OpDecorate %x_1_param_2_1 Location 9
+               OpDecorate %x_1_param_3_1 Location 10
+               OpDecorate %x_2_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %_arr_mat2v4float_uint_2 ArrayStride 32
-               OpDecorate %tint_symbol Location 7
-               OpDecorate %tint_symbol_1 Location 8
-               OpDecorate %tint_symbol_2 Location 9
-               OpDecorate %tint_symbol_3 Location 10
-               OpDecorate %tint_symbol_5 BuiltIn Position
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%x_1_param_4 = OpVariable %_ptr_Input_v4float Input
+%x_1_param_1_1 = OpVariable %_ptr_Input_v4float Input
+%x_1_param_2_1 = OpVariable %_ptr_Input_v4float Input
+%x_1_param_3_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+         %10 = OpConstantNull %v4float
+    %x_2_1_1 = OpVariable %_ptr_Output_v4float Output %10
+%_ptr_Output_float = OpTypePointer Output %float
+         %13 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %13
 %mat2v4float = OpTypeMatrix %v4float 2
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_mat2v4float_uint_2 = OpTypeArray %mat2v4float %uint_2
 %_ptr_Private__arr_mat2v4float_uint_2 = OpTypePointer Private %_arr_mat2v4float_uint_2
-         %12 = OpConstantNull %_arr_mat2v4float_uint_2
-        %x_1 = OpVariable %_ptr_Private__arr_mat2v4float_uint_2 Private %12
+         %20 = OpConstantNull %_arr_mat2v4float_uint_2
+        %x_1 = OpVariable %_ptr_Private__arr_mat2v4float_uint_2 Private %20
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %15 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %15
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%tint_symbol_1 = OpVariable %_ptr_Input_v4float Input
-%tint_symbol_2 = OpVariable %_ptr_Input_v4float Input
-%tint_symbol_3 = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_5 = OpVariable %_ptr_Output_v4float Output %15
+        %x_2 = OpVariable %_ptr_Private_v4float Private %10
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %27 = OpTypeFunction %void %main_out
-    %float_1 = OpConstant %float 1
+         %27 = OpTypeFunction %main_out %v4float %v4float %v4float %v4float
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
+    %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_6 = OpFunction %void None %27
-%tint_symbol_4 = OpFunctionParameter %main_out
-         %31 = OpLabel
-         %32 = OpCompositeExtract %v4float %tint_symbol_4 0
-               OpStore %tint_symbol_5 %32
-               OpReturn
+ %main_inner = OpFunction %main_out None %27
+  %x_1_param = OpFunctionParameter %v4float
+%x_1_param_1 = OpFunctionParameter %v4float
+%x_1_param_2 = OpFunctionParameter %v4float
+%x_1_param_3 = OpFunctionParameter %v4float
+         %34 = OpLabel
+         %37 = OpAccessChain %_ptr_Private_v4float %x_1 %int_0 %int_0
+               OpStore %37 %x_1_param
+         %39 = OpAccessChain %_ptr_Private_v4float %x_1 %int_0 %int_1
+               OpStore %39 %x_1_param_1
+         %40 = OpAccessChain %_ptr_Private_v4float %x_1 %int_1 %int_0
+               OpStore %40 %x_1_param_2
+         %41 = OpAccessChain %_ptr_Private_v4float %x_1 %int_1 %int_1
+               OpStore %41 %x_1_param_3
+         %42 = OpFunctionCall %void %main_1
+         %43 = OpLoad %v4float %x_2
+         %44 = OpCompositeConstruct %main_out %43
+               OpReturnValue %44
                OpFunctionEnd
        %main = OpFunction %void None %23
-         %34 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %38 = OpAccessChain %_ptr_Private_v4float %x_1 %int_0 %int_0
-         %39 = OpLoad %v4float %tint_symbol
-               OpStore %38 %39
-         %41 = OpAccessChain %_ptr_Private_v4float %x_1 %int_0 %int_1
-         %42 = OpLoad %v4float %tint_symbol_1
-               OpStore %41 %42
-         %43 = OpAccessChain %_ptr_Private_v4float %x_1 %int_1 %int_0
-         %44 = OpLoad %v4float %tint_symbol_2
-               OpStore %43 %44
-         %45 = OpAccessChain %_ptr_Private_v4float %x_1 %int_1 %int_1
-         %46 = OpLoad %v4float %tint_symbol_3
-               OpStore %45 %46
-         %47 = OpFunctionCall %void %main_1
-         %49 = OpLoad %v4float %x_2
-         %50 = OpCompositeConstruct %main_out %49
-         %48 = OpFunctionCall %void %tint_symbol_6 %50
+         %46 = OpLabel
+         %48 = OpLoad %v4float %x_1_param_4
+         %49 = OpLoad %v4float %x_1_param_1_1
+         %50 = OpLoad %v4float %x_1_param_2_1
+         %51 = OpLoad %v4float %x_1_param_3_1
+         %47 = OpFunctionCall %main_out %main_inner %48 %49 %50 %51
+         %52 = OpCompositeExtract %v4float %47 0
+               OpStore %x_2_1_1 %52
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenStruct_LocOnVariable.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenStruct_LocOnVariable.spvasm.expected.spvasm
index 4c6f2ca..386b02c 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenStruct_LocOnVariable.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenStruct_LocOnVariable.spvasm.expected.spvasm
@@ -1,83 +1,85 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_1 %tint_symbol_3
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_1_param_2 %x_1_param_1_1 %x_2_1_1 %vertex_point_size
+               OpName %x_1_param_2 "x_1_param_2"
+               OpName %x_1_param_1_1 "x_1_param_1_1"
+               OpName %x_2_1_1 "x_2_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %Communicators "Communicators"
                OpMemberName %Communicators 0 "alice"
                OpMemberName %Communicators 1 "bob"
                OpName %x_1 "x_1"
                OpName %x_2 "x_2"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_2_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_2 "tint_symbol_2"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %x_1_param_2 Location 9
+               OpDecorate %x_1_param_1_1 Location 10
+               OpDecorate %x_2_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %Communicators 0 Offset 0
                OpMemberDecorate %Communicators 1 Offset 16
-               OpDecorate %tint_symbol Location 9
-               OpDecorate %tint_symbol_1 Location 10
-               OpDecorate %tint_symbol_3 BuiltIn Position
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+%_ptr_Input_float = OpTypePointer Input %float
+%x_1_param_2 = OpVariable %_ptr_Input_float Input
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%x_1_param_1_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %9 = OpConstantNull %v4float
+    %x_2_1_1 = OpVariable %_ptr_Output_v4float Output %9
+%_ptr_Output_float = OpTypePointer Output %float
+         %12 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %12
 %Communicators = OpTypeStruct %float %v4float
 %_ptr_Private_Communicators = OpTypePointer Private %Communicators
-          %9 = OpConstantNull %Communicators
-        %x_1 = OpVariable %_ptr_Private_Communicators Private %9
+         %16 = OpConstantNull %Communicators
+        %x_1 = OpVariable %_ptr_Private_Communicators Private %16
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Input_float = OpTypePointer Input %float
-%tint_symbol = OpVariable %_ptr_Input_float Input
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol_1 = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %12
+        %x_2 = OpVariable %_ptr_Private_v4float Private %9
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %23 = OpTypeFunction %void %main_out
-    %float_1 = OpConstant %float 1
+         %23 = OpTypeFunction %main_out %float %v4float
        %uint = OpTypeInt 32 0
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_float = OpTypePointer Private %float
      %uint_1 = OpConstant %uint 1
+    %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %23
-%tint_symbol_2 = OpFunctionParameter %main_out
-         %27 = OpLabel
-         %28 = OpCompositeExtract %v4float %tint_symbol_2 0
-               OpStore %tint_symbol_3 %28
-               OpReturn
+ %main_inner = OpFunction %main_out None %23
+  %x_1_param = OpFunctionParameter %float
+%x_1_param_1 = OpFunctionParameter %v4float
+         %28 = OpLabel
+         %32 = OpAccessChain %_ptr_Private_float %x_1 %uint_0
+               OpStore %32 %x_1_param
+         %34 = OpAccessChain %_ptr_Private_v4float %x_1 %uint_1
+               OpStore %34 %x_1_param_1
+         %35 = OpFunctionCall %void %main_1
+         %36 = OpLoad %v4float %x_2
+         %37 = OpCompositeConstruct %main_out %36
+               OpReturnValue %37
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %35 = OpAccessChain %_ptr_Private_float %x_1 %uint_0
-         %36 = OpLoad %float %tint_symbol
-               OpStore %35 %36
-         %38 = OpAccessChain %_ptr_Private_v4float %x_1 %uint_1
-         %39 = OpLoad %v4float %tint_symbol_1
-               OpStore %38 %39
-         %40 = OpFunctionCall %void %main_1
-         %42 = OpLoad %v4float %x_2
-         %43 = OpCompositeConstruct %main_out %42
-         %41 = OpFunctionCall %void %tint_symbol_4 %43
+         %39 = OpLabel
+         %41 = OpLoad %float %x_1_param_2
+         %42 = OpLoad %v4float %x_1_param_1_1
+         %40 = OpFunctionCall %main_out %main_inner %41 %42
+         %43 = OpCompositeExtract %v4float %40 0
+               OpStore %x_2_1_1 %43
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_AccessChain.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_AccessChain.spvasm.expected.spvasm
index d90a2cd..7c2dc75 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_AccessChain.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_AccessChain.spvasm.expected.spvasm
@@ -5,65 +5,65 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_4_param_1 %position_1_1 %vertex_point_size
+               OpName %x_4_param_1 "x_4_param_1"
+               OpName %position_1_1 "position_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_4 "x_4"
                OpName %position "position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "position_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_4_param "x_4_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol BuiltIn InstanceIndex
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %x_4_param_1 BuiltIn InstanceIndex
+               OpDecorate %position_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %8 = OpConstantNull %int
-        %x_4 = OpVariable %_ptr_Private_int Private %8
-    %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %12
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_4_param_1 = OpVariable %_ptr_Input_uint Input
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+          %8 = OpConstantNull %v4float
+%position_1_1 = OpVariable %_ptr_Output_v4float Output %8
+%_ptr_Output_float = OpTypePointer Output %float
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
+        %int = OpTypeInt 32 1
+%_ptr_Private_int = OpTypePointer Private %int
+         %15 = OpConstantNull %int
+        %x_4 = OpVariable %_ptr_Private_int Private %15
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %position = OpVariable %_ptr_Private_v4float Private %8
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %23 = OpTypeFunction %void %main_out
+         %23 = OpTypeFunction %main_out %uint
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
          %22 = OpLoad %int %x_4
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %23
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %23
+  %x_4_param = OpFunctionParameter %uint
          %27 = OpLabel
-         %28 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %28
-               OpReturn
+         %28 = OpBitcast %int %x_4_param
+               OpStore %x_4 %28
+         %29 = OpFunctionCall %void %main_1
+         %30 = OpLoad %v4float %position
+         %31 = OpCompositeConstruct %main_out %30
+               OpReturnValue %31
                OpFunctionEnd
        %main = OpFunction %void None %18
-         %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpLoad %uint %tint_symbol
-         %32 = OpBitcast %int %33
-               OpStore %x_4 %32
-         %34 = OpFunctionCall %void %main_1
-         %36 = OpLoad %v4float %position
-         %37 = OpCompositeConstruct %main_out %36
-         %35 = OpFunctionCall %void %tint_symbol_3 %37
+         %33 = OpLabel
+         %35 = OpLoad %uint %x_4_param_1
+         %34 = OpFunctionCall %main_out %main_inner %35
+         %36 = OpCompositeExtract %v4float %34 0
+               OpStore %position_1_1 %36
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_CopyObject.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_CopyObject.spvasm.expected.spvasm
index d90a2cd..7c2dc75 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_CopyObject.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_CopyObject.spvasm.expected.spvasm
@@ -5,65 +5,65 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_4_param_1 %position_1_1 %vertex_point_size
+               OpName %x_4_param_1 "x_4_param_1"
+               OpName %position_1_1 "position_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_4 "x_4"
                OpName %position "position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "position_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_4_param "x_4_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol BuiltIn InstanceIndex
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %x_4_param_1 BuiltIn InstanceIndex
+               OpDecorate %position_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %8 = OpConstantNull %int
-        %x_4 = OpVariable %_ptr_Private_int Private %8
-    %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %12
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_4_param_1 = OpVariable %_ptr_Input_uint Input
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+          %8 = OpConstantNull %v4float
+%position_1_1 = OpVariable %_ptr_Output_v4float Output %8
+%_ptr_Output_float = OpTypePointer Output %float
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
+        %int = OpTypeInt 32 1
+%_ptr_Private_int = OpTypePointer Private %int
+         %15 = OpConstantNull %int
+        %x_4 = OpVariable %_ptr_Private_int Private %15
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %position = OpVariable %_ptr_Private_v4float Private %8
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %23 = OpTypeFunction %void %main_out
+         %23 = OpTypeFunction %main_out %uint
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
          %22 = OpLoad %int %x_4
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %23
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %23
+  %x_4_param = OpFunctionParameter %uint
          %27 = OpLabel
-         %28 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %28
-               OpReturn
+         %28 = OpBitcast %int %x_4_param
+               OpStore %x_4 %28
+         %29 = OpFunctionCall %void %main_1
+         %30 = OpLoad %v4float %position
+         %31 = OpCompositeConstruct %main_out %30
+               OpReturnValue %31
                OpFunctionEnd
        %main = OpFunction %void None %18
-         %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpLoad %uint %tint_symbol
-         %32 = OpBitcast %int %33
-               OpStore %x_4 %32
-         %34 = OpFunctionCall %void %main_1
-         %36 = OpLoad %v4float %position
-         %37 = OpCompositeConstruct %main_out %36
-         %35 = OpFunctionCall %void %tint_symbol_3 %37
+         %33 = OpLabel
+         %35 = OpLoad %uint %x_4_param_1
+         %34 = OpFunctionCall %main_out %main_inner %35
+         %36 = OpCompositeExtract %v4float %34 0
+               OpStore %position_1_1 %36
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_Direct.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_Direct.spvasm.expected.spvasm
index d90a2cd..7c2dc75 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_Direct.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_Direct.spvasm.expected.spvasm
@@ -5,65 +5,65 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_4_param_1 %position_1_1 %vertex_point_size
+               OpName %x_4_param_1 "x_4_param_1"
+               OpName %position_1_1 "position_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_4 "x_4"
                OpName %position "position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "position_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_4_param "x_4_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol BuiltIn InstanceIndex
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %x_4_param_1 BuiltIn InstanceIndex
+               OpDecorate %position_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %8 = OpConstantNull %int
-        %x_4 = OpVariable %_ptr_Private_int Private %8
-    %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %12
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_4_param_1 = OpVariable %_ptr_Input_uint Input
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+          %8 = OpConstantNull %v4float
+%position_1_1 = OpVariable %_ptr_Output_v4float Output %8
+%_ptr_Output_float = OpTypePointer Output %float
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
+        %int = OpTypeInt 32 1
+%_ptr_Private_int = OpTypePointer Private %int
+         %15 = OpConstantNull %int
+        %x_4 = OpVariable %_ptr_Private_int Private %15
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %position = OpVariable %_ptr_Private_v4float Private %8
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %23 = OpTypeFunction %void %main_out
+         %23 = OpTypeFunction %main_out %uint
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
          %22 = OpLoad %int %x_4
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %23
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %23
+  %x_4_param = OpFunctionParameter %uint
          %27 = OpLabel
-         %28 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %28
-               OpReturn
+         %28 = OpBitcast %int %x_4_param
+               OpStore %x_4 %28
+         %29 = OpFunctionCall %void %main_1
+         %30 = OpLoad %v4float %position
+         %31 = OpCompositeConstruct %main_out %30
+               OpReturnValue %31
                OpFunctionEnd
        %main = OpFunction %void None %18
-         %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpLoad %uint %tint_symbol
-         %32 = OpBitcast %int %33
-               OpStore %x_4 %32
-         %34 = OpFunctionCall %void %main_1
-         %36 = OpLoad %v4float %position
-         %37 = OpCompositeConstruct %main_out %36
-         %35 = OpFunctionCall %void %tint_symbol_3 %37
+         %33 = OpLabel
+         %35 = OpLoad %uint %x_4_param_1
+         %34 = OpFunctionCall %main_out %main_inner %35
+         %36 = OpCompositeExtract %v4float %34 0
+               OpStore %position_1_1 %36
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_AccessChain.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_AccessChain.spvasm.expected.spvasm
index 123e58b..cf8a771 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_AccessChain.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_AccessChain.spvasm.expected.spvasm
@@ -5,63 +5,63 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_4_param_1 %position_1_1 %vertex_point_size
+               OpName %x_4_param_1 "x_4_param_1"
+               OpName %position_1_1 "position_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_4 "x_4"
                OpName %position "position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "position_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_4_param "x_4_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol BuiltIn InstanceIndex
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %x_4_param_1 BuiltIn InstanceIndex
+               OpDecorate %position_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
        %uint = OpTypeInt 32 0
-%_ptr_Private_uint = OpTypePointer Private %uint
-          %8 = OpConstantNull %uint
-        %x_4 = OpVariable %_ptr_Private_uint Private %8
-    %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %12
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_4_param_1 = OpVariable %_ptr_Input_uint Input
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+          %8 = OpConstantNull %v4float
+%position_1_1 = OpVariable %_ptr_Output_v4float Output %8
+%_ptr_Output_float = OpTypePointer Output %float
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
+%_ptr_Private_uint = OpTypePointer Private %uint
+         %14 = OpConstantNull %uint
+        %x_4 = OpVariable %_ptr_Private_uint Private %14
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %position = OpVariable %_ptr_Private_v4float Private %8
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %22 = OpTypeFunction %void %main_out
+         %22 = OpTypeFunction %main_out %uint
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %17
          %20 = OpLabel
          %21 = OpLoad %uint %x_4
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %22
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %22
+  %x_4_param = OpFunctionParameter %uint
          %26 = OpLabel
-         %27 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %27
-               OpReturn
+               OpStore %x_4 %x_4_param
+         %27 = OpFunctionCall %void %main_1
+         %28 = OpLoad %v4float %position
+         %29 = OpCompositeConstruct %main_out %28
+               OpReturnValue %29
                OpFunctionEnd
        %main = OpFunction %void None %17
-         %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpLoad %uint %tint_symbol
-               OpStore %x_4 %31
-         %32 = OpFunctionCall %void %main_1
-         %34 = OpLoad %v4float %position
-         %35 = OpCompositeConstruct %main_out %34
-         %33 = OpFunctionCall %void %tint_symbol_3 %35
+         %31 = OpLabel
+         %33 = OpLoad %uint %x_4_param_1
+         %32 = OpFunctionCall %main_out %main_inner %33
+         %34 = OpCompositeExtract %v4float %32 0
+               OpStore %position_1_1 %34
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_CopyObject.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_CopyObject.spvasm.expected.spvasm
index 123e58b..cf8a771 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_CopyObject.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_CopyObject.spvasm.expected.spvasm
@@ -5,63 +5,63 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_4_param_1 %position_1_1 %vertex_point_size
+               OpName %x_4_param_1 "x_4_param_1"
+               OpName %position_1_1 "position_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_4 "x_4"
                OpName %position "position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "position_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_4_param "x_4_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol BuiltIn InstanceIndex
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %x_4_param_1 BuiltIn InstanceIndex
+               OpDecorate %position_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
        %uint = OpTypeInt 32 0
-%_ptr_Private_uint = OpTypePointer Private %uint
-          %8 = OpConstantNull %uint
-        %x_4 = OpVariable %_ptr_Private_uint Private %8
-    %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %12
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_4_param_1 = OpVariable %_ptr_Input_uint Input
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+          %8 = OpConstantNull %v4float
+%position_1_1 = OpVariable %_ptr_Output_v4float Output %8
+%_ptr_Output_float = OpTypePointer Output %float
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
+%_ptr_Private_uint = OpTypePointer Private %uint
+         %14 = OpConstantNull %uint
+        %x_4 = OpVariable %_ptr_Private_uint Private %14
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %position = OpVariable %_ptr_Private_v4float Private %8
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %22 = OpTypeFunction %void %main_out
+         %22 = OpTypeFunction %main_out %uint
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %17
          %20 = OpLabel
          %21 = OpLoad %uint %x_4
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %22
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %22
+  %x_4_param = OpFunctionParameter %uint
          %26 = OpLabel
-         %27 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %27
-               OpReturn
+               OpStore %x_4 %x_4_param
+         %27 = OpFunctionCall %void %main_1
+         %28 = OpLoad %v4float %position
+         %29 = OpCompositeConstruct %main_out %28
+               OpReturnValue %29
                OpFunctionEnd
        %main = OpFunction %void None %17
-         %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpLoad %uint %tint_symbol
-               OpStore %x_4 %31
-         %32 = OpFunctionCall %void %main_1
-         %34 = OpLoad %v4float %position
-         %35 = OpCompositeConstruct %main_out %34
-         %33 = OpFunctionCall %void %tint_symbol_3 %35
+         %31 = OpLabel
+         %33 = OpLoad %uint %x_4_param_1
+         %32 = OpFunctionCall %main_out %main_inner %33
+         %34 = OpCompositeExtract %v4float %32 0
+               OpStore %position_1_1 %34
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_Direct.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_Direct.spvasm.expected.spvasm
index 123e58b..cf8a771 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_Direct.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_Direct.spvasm.expected.spvasm
@@ -5,63 +5,63 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_4_param_1 %position_1_1 %vertex_point_size
+               OpName %x_4_param_1 "x_4_param_1"
+               OpName %position_1_1 "position_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_4 "x_4"
                OpName %position "position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "position_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_4_param "x_4_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol BuiltIn InstanceIndex
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %x_4_param_1 BuiltIn InstanceIndex
+               OpDecorate %position_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
        %uint = OpTypeInt 32 0
-%_ptr_Private_uint = OpTypePointer Private %uint
-          %8 = OpConstantNull %uint
-        %x_4 = OpVariable %_ptr_Private_uint Private %8
-    %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %12
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_4_param_1 = OpVariable %_ptr_Input_uint Input
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+          %8 = OpConstantNull %v4float
+%position_1_1 = OpVariable %_ptr_Output_v4float Output %8
+%_ptr_Output_float = OpTypePointer Output %float
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
+%_ptr_Private_uint = OpTypePointer Private %uint
+         %14 = OpConstantNull %uint
+        %x_4 = OpVariable %_ptr_Private_uint Private %14
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %position = OpVariable %_ptr_Private_v4float Private %8
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %22 = OpTypeFunction %void %main_out
+         %22 = OpTypeFunction %main_out %uint
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %17
          %20 = OpLabel
          %21 = OpLoad %uint %x_4
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %22
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %22
+  %x_4_param = OpFunctionParameter %uint
          %26 = OpLabel
-         %27 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %27
-               OpReturn
+               OpStore %x_4 %x_4_param
+         %27 = OpFunctionCall %void %main_1
+         %28 = OpLoad %v4float %position
+         %29 = OpCompositeConstruct %main_out %28
+               OpReturnValue %29
                OpFunctionEnd
        %main = OpFunction %void None %17
-         %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpLoad %uint %tint_symbol
-               OpStore %x_4 %31
-         %32 = OpFunctionCall %void %main_1
-         %34 = OpLoad %v4float %position
-         %35 = OpCompositeConstruct %main_out %34
-         %33 = OpFunctionCall %void %tint_symbol_3 %35
+         %31 = OpLabel
+         %33 = OpLoad %uint %x_4_param_1
+         %32 = OpFunctionCall %main_out %main_inner %33
+         %34 = OpCompositeExtract %v4float %32 0
+               OpStore %position_1_1 %34
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenArray_OneLevel.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenArray_OneLevel.spvasm.expected.spvasm
index 6ce7ccc..22cf6f9 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenArray_OneLevel.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenArray_OneLevel.spvasm.expected.spvasm
@@ -1,33 +1,32 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 51
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1 %tint_symbol_2 %tint_symbol_3 %tint_symbol_4
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_1_1_1 %x_1_2_1 %x_1_3_1 %x_2_1_1 %vertex_point_size
+               OpName %x_1_1_1 "x_1_1_1"
+               OpName %x_1_2_1 "x_1_2_1"
+               OpName %x_1_3_1 "x_1_3_1"
+               OpName %x_2_1_1 "x_2_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_1 "x_1"
                OpName %x_2 "x_2"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_1_1"
                OpMemberName %main_out 1 "x_1_2"
                OpMemberName %main_out 2 "x_1_3"
                OpMemberName %main_out 3 "x_2_1"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %x_1_1_1 Location 4
+               OpDecorate %x_1_2_1 Location 5
+               OpDecorate %x_1_3_1 Location 6
+               OpDecorate %x_2_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %_arr_float_uint_3 ArrayStride 4
-               OpDecorate %tint_symbol_1 Location 4
-               OpDecorate %tint_symbol_2 Location 5
-               OpDecorate %tint_symbol_3 Location 6
-               OpDecorate %tint_symbol_4 BuiltIn Position
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 4
                OpMemberDecorate %main_out 2 Offset 8
@@ -35,61 +34,60 @@
       %float = OpTypeFloat 32
 %_ptr_Output_float = OpTypePointer Output %float
           %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+    %x_1_1_1 = OpVariable %_ptr_Output_float Output %4
+    %x_1_2_1 = OpVariable %_ptr_Output_float Output %4
+    %x_1_3_1 = OpVariable %_ptr_Output_float Output %4
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+         %10 = OpConstantNull %v4float
+    %x_2_1_1 = OpVariable %_ptr_Output_v4float Output %10
+%vertex_point_size = OpVariable %_ptr_Output_float Output %4
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
 %_ptr_Private__arr_float_uint_3 = OpTypePointer Private %_arr_float_uint_3
-         %10 = OpConstantNull %_arr_float_uint_3
-        %x_1 = OpVariable %_ptr_Private__arr_float_uint_3 Private %10
-    %v4float = OpTypeVector %float 4
+         %17 = OpConstantNull %_arr_float_uint_3
+        %x_1 = OpVariable %_ptr_Private__arr_float_uint_3 Private %17
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %14 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %14
-%tint_symbol_1 = OpVariable %_ptr_Output_float Output %4
-%tint_symbol_2 = OpVariable %_ptr_Output_float Output %4
-%tint_symbol_3 = OpVariable %_ptr_Output_float Output %4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_4 = OpVariable %_ptr_Output_v4float Output %14
+        %x_2 = OpVariable %_ptr_Private_v4float Private %10
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
    %main_out = OpTypeStruct %float %float %float %v4float
-         %24 = OpTypeFunction %void %main_out
-    %float_1 = OpConstant %float 1
+         %24 = OpTypeFunction %main_out
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Private_float = OpTypePointer Private %float
       %int_1 = OpConstant %int 1
       %int_2 = OpConstant %int 2
+    %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_5 = OpFunction %void None %24
-%tint_symbol = OpFunctionParameter %main_out
-         %28 = OpLabel
-         %29 = OpCompositeExtract %float %tint_symbol 0
-               OpStore %tint_symbol_1 %29
-         %30 = OpCompositeExtract %float %tint_symbol 1
-               OpStore %tint_symbol_2 %30
-         %31 = OpCompositeExtract %float %tint_symbol 2
-               OpStore %tint_symbol_3 %31
-         %32 = OpCompositeExtract %v4float %tint_symbol 3
-               OpStore %tint_symbol_4 %32
-               OpReturn
+ %main_inner = OpFunction %main_out None %24
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %main_1
+         %32 = OpAccessChain %_ptr_Private_float %x_1 %int_0
+         %33 = OpLoad %float %32
+         %35 = OpAccessChain %_ptr_Private_float %x_1 %int_1
+         %36 = OpLoad %float %35
+         %38 = OpAccessChain %_ptr_Private_float %x_1 %int_2
+         %39 = OpLoad %float %38
+         %40 = OpLoad %v4float %x_2
+         %41 = OpCompositeConstruct %main_out %33 %36 %39 %40
+               OpReturnValue %41
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %34 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %36 = OpFunctionCall %void %main_1
-         %41 = OpAccessChain %_ptr_Private_float %x_1 %int_0
-         %42 = OpLoad %float %41
-         %44 = OpAccessChain %_ptr_Private_float %x_1 %int_1
-         %45 = OpLoad %float %44
-         %47 = OpAccessChain %_ptr_Private_float %x_1 %int_2
-         %48 = OpLoad %float %47
-         %49 = OpLoad %v4float %x_2
-         %50 = OpCompositeConstruct %main_out %42 %45 %48 %49
-         %37 = OpFunctionCall %void %tint_symbol_5 %50
+         %43 = OpLabel
+         %44 = OpFunctionCall %main_out %main_inner
+         %45 = OpCompositeExtract %float %44 0
+               OpStore %x_1_1_1 %45
+         %46 = OpCompositeExtract %float %44 1
+               OpStore %x_1_2_1 %46
+         %47 = OpCompositeExtract %float %44 2
+               OpStore %x_1_3_1 %47
+         %48 = OpCompositeExtract %v4float %44 3
+               OpStore %x_2_1_1 %48
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenMatrix.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenMatrix.spvasm.expected.spvasm
index 4c93fec..ed0b979 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenMatrix.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenMatrix.spvasm.expected.spvasm
@@ -1,81 +1,79 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1 %tint_symbol_2 %tint_symbol_3
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_1_1_1 %x_1_2_1 %x_2_1_1 %vertex_point_size
+               OpName %x_1_1_1 "x_1_1_1"
+               OpName %x_1_2_1 "x_1_2_1"
+               OpName %x_2_1_1 "x_2_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_1 "x_1"
                OpName %x_2 "x_2"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_1_1"
                OpMemberName %main_out 1 "x_1_2"
                OpMemberName %main_out 2 "x_2_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 Location 9
-               OpDecorate %tint_symbol_2 Location 10
-               OpDecorate %tint_symbol_3 BuiltIn Position
+               OpDecorate %x_1_1_1 Location 9
+               OpDecorate %x_1_2_1 Location 10
+               OpDecorate %x_2_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
                OpMemberDecorate %main_out 2 Offset 32
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+    %x_1_1_1 = OpVariable %_ptr_Output_v4float Output %5
+    %x_1_2_1 = OpVariable %_ptr_Output_v4float Output %5
+    %x_2_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+         %10 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %10
 %mat2v4float = OpTypeMatrix %v4float 2
 %_ptr_Private_mat2v4float = OpTypePointer Private %mat2v4float
-          %9 = OpConstantNull %mat2v4float
-        %x_1 = OpVariable %_ptr_Private_mat2v4float Private %9
+         %14 = OpConstantNull %mat2v4float
+        %x_1 = OpVariable %_ptr_Private_mat2v4float Private %14
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %12
+        %x_2 = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float %v4float %v4float
-         %21 = OpTypeFunction %void %main_out
-    %float_1 = OpConstant %float 1
+         %21 = OpTypeFunction %main_out
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
       %int_1 = OpConstant %int 1
+    %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %17
          %20 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %21
-%tint_symbol = OpFunctionParameter %main_out
-         %25 = OpLabel
-         %26 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %26
-         %27 = OpCompositeExtract %v4float %tint_symbol 1
-               OpStore %tint_symbol_2 %27
-         %28 = OpCompositeExtract %v4float %tint_symbol 2
-               OpStore %tint_symbol_3 %28
-               OpReturn
+ %main_inner = OpFunction %main_out None %21
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %main_1
+         %28 = OpAccessChain %_ptr_Private_v4float %x_1 %int_0
+         %29 = OpLoad %v4float %28
+         %31 = OpAccessChain %_ptr_Private_v4float %x_1 %int_1
+         %32 = OpLoad %v4float %31
+         %33 = OpLoad %v4float %x_2
+         %34 = OpCompositeConstruct %main_out %29 %32 %33
+               OpReturnValue %34
                OpFunctionEnd
        %main = OpFunction %void None %17
-         %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %main_1
-         %36 = OpAccessChain %_ptr_Private_v4float %x_1 %int_0
-         %37 = OpLoad %v4float %36
-         %39 = OpAccessChain %_ptr_Private_v4float %x_1 %int_1
-         %40 = OpLoad %v4float %39
-         %41 = OpLoad %v4float %x_2
-         %42 = OpCompositeConstruct %main_out %37 %40 %41
-         %33 = OpFunctionCall %void %tint_symbol_4 %42
+         %36 = OpLabel
+         %37 = OpFunctionCall %main_out %main_inner
+         %38 = OpCompositeExtract %v4float %37 0
+               OpStore %x_1_1_1 %38
+         %39 = OpCompositeExtract %v4float %37 1
+               OpStore %x_1_2_1 %39
+         %40 = OpCompositeExtract %v4float %37 2
+               OpStore %x_2_1_1 %40
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenStruct_LocOnVariable.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenStruct_LocOnVariable.spvasm.expected.spvasm
index 0d54b93..05cb930 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenStruct_LocOnVariable.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenStruct_LocOnVariable.spvasm.expected.spvasm
@@ -1,87 +1,85 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1 %tint_symbol_2 %tint_symbol_3
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_1_1_1 %x_1_2_1 %x_2_1_1 %vertex_point_size
+               OpName %x_1_1_1 "x_1_1_1"
+               OpName %x_1_2_1 "x_1_2_1"
+               OpName %x_2_1_1 "x_2_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %Communicators "Communicators"
                OpMemberName %Communicators 0 "alice"
                OpMemberName %Communicators 1 "bob"
                OpName %x_1 "x_1"
                OpName %x_2 "x_2"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_1_1"
                OpMemberName %main_out 1 "x_1_2"
                OpMemberName %main_out 2 "x_2_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %x_1_1_1 Location 9
+               OpDecorate %x_1_2_1 Location 10
+               OpDecorate %x_2_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %Communicators 0 Offset 0
                OpMemberDecorate %Communicators 1 Offset 16
-               OpDecorate %tint_symbol_1 Location 9
-               OpDecorate %tint_symbol_2 Location 10
-               OpDecorate %tint_symbol_3 BuiltIn Position
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
                OpMemberDecorate %main_out 2 Offset 32
       %float = OpTypeFloat 32
 %_ptr_Output_float = OpTypePointer Output %float
           %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+    %x_1_1_1 = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %8 = OpConstantNull %v4float
+    %x_1_2_1 = OpVariable %_ptr_Output_v4float Output %8
+    %x_2_1_1 = OpVariable %_ptr_Output_v4float Output %8
+%vertex_point_size = OpVariable %_ptr_Output_float Output %4
 %Communicators = OpTypeStruct %float %v4float
 %_ptr_Private_Communicators = OpTypePointer Private %Communicators
-          %9 = OpConstantNull %Communicators
-        %x_1 = OpVariable %_ptr_Private_Communicators Private %9
+         %14 = OpConstantNull %Communicators
+        %x_1 = OpVariable %_ptr_Private_Communicators Private %14
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %12
-%tint_symbol_1 = OpVariable %_ptr_Output_float Output %4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %12
+        %x_2 = OpVariable %_ptr_Private_v4float Private %8
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
    %main_out = OpTypeStruct %float %v4float %v4float
-         %21 = OpTypeFunction %void %main_out
-    %float_1 = OpConstant %float 1
+         %21 = OpTypeFunction %main_out
        %uint = OpTypeInt 32 0
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_float = OpTypePointer Private %float
      %uint_1 = OpConstant %uint 1
+    %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %17
          %20 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %21
-%tint_symbol = OpFunctionParameter %main_out
-         %25 = OpLabel
-         %26 = OpCompositeExtract %float %tint_symbol 0
-               OpStore %tint_symbol_1 %26
-         %27 = OpCompositeExtract %v4float %tint_symbol 1
-               OpStore %tint_symbol_2 %27
-         %28 = OpCompositeExtract %v4float %tint_symbol 2
-               OpStore %tint_symbol_3 %28
-               OpReturn
+ %main_inner = OpFunction %main_out None %21
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %main_1
+         %29 = OpAccessChain %_ptr_Private_float %x_1 %uint_0
+         %30 = OpLoad %float %29
+         %32 = OpAccessChain %_ptr_Private_v4float %x_1 %uint_1
+         %33 = OpLoad %v4float %32
+         %34 = OpLoad %v4float %x_2
+         %35 = OpCompositeConstruct %main_out %30 %33 %34
+               OpReturnValue %35
                OpFunctionEnd
        %main = OpFunction %void None %17
-         %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %32 = OpFunctionCall %void %main_1
-         %37 = OpAccessChain %_ptr_Private_float %x_1 %uint_0
-         %38 = OpLoad %float %37
-         %40 = OpAccessChain %_ptr_Private_v4float %x_1 %uint_1
-         %41 = OpLoad %v4float %40
-         %42 = OpLoad %v4float %x_2
-         %43 = OpCompositeConstruct %main_out %38 %41 %42
-         %33 = OpFunctionCall %void %tint_symbol_4 %43
+         %37 = OpLabel
+         %38 = OpFunctionCall %main_out %main_inner
+         %39 = OpCompositeExtract %float %38 0
+               OpStore %x_1_1_1 %39
+         %40 = OpCompositeExtract %v4float %38 1
+               OpStore %x_1_2_1 %40
+         %41 = OpCompositeExtract %v4float %38 2
+               OpStore %x_2_1_1 %41
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_AccessChain.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_AccessChain.spvasm.expected.spvasm
index 2cc5536..00e04ab 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_AccessChain.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_AccessChain.spvasm.expected.spvasm
@@ -1,37 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 18
+; Bound: 23
 ; Schema: 0
                OpCapability Shader
                OpCapability SampleRateShading
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol
+               OpEntryPoint Fragment %main "main" %x_1_param_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn SampleId
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-        %x_1 = OpVariable %_ptr_Private_int Private %4
+               OpDecorate %x_1_param_1 BuiltIn SampleId
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_uint Input
+        %int = OpTypeInt 32 1
+%_ptr_Private_int = OpTypePointer Private %int
+          %7 = OpConstantNull %int
+        %x_1 = OpVariable %_ptr_Private_int Private %7
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
+         %13 = OpTypeFunction %void %uint
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
          %12 = OpLoad %int %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %13
+  %x_1_param = OpFunctionParameter %uint
+         %16 = OpLabel
+         %17 = OpBitcast %int %x_1_param
+               OpStore %x_1 %17
+         %18 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %8
-         %14 = OpLabel
-         %16 = OpLoad %uint %tint_symbol
-         %15 = OpBitcast %int %16
-               OpStore %x_1 %15
-         %17 = OpFunctionCall %void %main_1
+         %20 = OpLabel
+         %22 = OpLoad %uint %x_1_param_1
+         %21 = OpFunctionCall %void %main_inner %22
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_CopyObject.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_CopyObject.spvasm.expected.spvasm
index 2cc5536..00e04ab 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_CopyObject.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_CopyObject.spvasm.expected.spvasm
@@ -1,37 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 18
+; Bound: 23
 ; Schema: 0
                OpCapability Shader
                OpCapability SampleRateShading
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol
+               OpEntryPoint Fragment %main "main" %x_1_param_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn SampleId
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-        %x_1 = OpVariable %_ptr_Private_int Private %4
+               OpDecorate %x_1_param_1 BuiltIn SampleId
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_uint Input
+        %int = OpTypeInt 32 1
+%_ptr_Private_int = OpTypePointer Private %int
+          %7 = OpConstantNull %int
+        %x_1 = OpVariable %_ptr_Private_int Private %7
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
+         %13 = OpTypeFunction %void %uint
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
          %12 = OpLoad %int %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %13
+  %x_1_param = OpFunctionParameter %uint
+         %16 = OpLabel
+         %17 = OpBitcast %int %x_1_param
+               OpStore %x_1 %17
+         %18 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %8
-         %14 = OpLabel
-         %16 = OpLoad %uint %tint_symbol
-         %15 = OpBitcast %int %16
-               OpStore %x_1 %15
-         %17 = OpFunctionCall %void %main_1
+         %20 = OpLabel
+         %22 = OpLoad %uint %x_1_param_1
+         %21 = OpFunctionCall %void %main_inner %22
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_Direct.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_Direct.spvasm.expected.spvasm
index 2cc5536..00e04ab 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_Direct.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_Direct.spvasm.expected.spvasm
@@ -1,37 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 18
+; Bound: 23
 ; Schema: 0
                OpCapability Shader
                OpCapability SampleRateShading
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol
+               OpEntryPoint Fragment %main "main" %x_1_param_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn SampleId
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-        %x_1 = OpVariable %_ptr_Private_int Private %4
+               OpDecorate %x_1_param_1 BuiltIn SampleId
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_uint Input
+        %int = OpTypeInt 32 1
+%_ptr_Private_int = OpTypePointer Private %int
+          %7 = OpConstantNull %int
+        %x_1 = OpVariable %_ptr_Private_int Private %7
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
+         %13 = OpTypeFunction %void %uint
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
          %12 = OpLoad %int %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %13
+  %x_1_param = OpFunctionParameter %uint
+         %16 = OpLabel
+         %17 = OpBitcast %int %x_1_param
+               OpStore %x_1 %17
+         %18 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %8
-         %14 = OpLabel
-         %16 = OpLoad %uint %tint_symbol
-         %15 = OpBitcast %int %16
-               OpStore %x_1 %15
-         %17 = OpFunctionCall %void %main_1
+         %20 = OpLabel
+         %22 = OpLoad %uint %x_1_param_1
+         %21 = OpFunctionCall %void %main_inner %22
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_AccessChain.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_AccessChain.spvasm.expected.spvasm
index 82c6620..e04af0c 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_AccessChain.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_AccessChain.spvasm.expected.spvasm
@@ -1,35 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 16
+; Bound: 21
 ; Schema: 0
                OpCapability Shader
                OpCapability SampleRateShading
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol
+               OpEntryPoint Fragment %main "main" %x_1_param_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn SampleId
+               OpDecorate %x_1_param_1 BuiltIn SampleId
        %uint = OpTypeInt 32 0
-%_ptr_Private_uint = OpTypePointer Private %uint
-          %4 = OpConstantNull %uint
-        %x_1 = OpVariable %_ptr_Private_uint Private %4
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_uint Input
+%_ptr_Private_uint = OpTypePointer Private %uint
+          %6 = OpConstantNull %uint
+        %x_1 = OpVariable %_ptr_Private_uint Private %6
        %void = OpTypeVoid
           %7 = OpTypeFunction %void
+         %12 = OpTypeFunction %void %uint
      %main_1 = OpFunction %void None %7
          %10 = OpLabel
          %11 = OpLoad %uint %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %12
+  %x_1_param = OpFunctionParameter %uint
+         %15 = OpLabel
+               OpStore %x_1 %x_1_param
+         %16 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %7
-         %13 = OpLabel
-         %14 = OpLoad %uint %tint_symbol
-               OpStore %x_1 %14
-         %15 = OpFunctionCall %void %main_1
+         %18 = OpLabel
+         %20 = OpLoad %uint %x_1_param_1
+         %19 = OpFunctionCall %void %main_inner %20
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_CopyObject.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_CopyObject.spvasm.expected.spvasm
index 82c6620..e04af0c 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_CopyObject.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_CopyObject.spvasm.expected.spvasm
@@ -1,35 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 16
+; Bound: 21
 ; Schema: 0
                OpCapability Shader
                OpCapability SampleRateShading
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol
+               OpEntryPoint Fragment %main "main" %x_1_param_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn SampleId
+               OpDecorate %x_1_param_1 BuiltIn SampleId
        %uint = OpTypeInt 32 0
-%_ptr_Private_uint = OpTypePointer Private %uint
-          %4 = OpConstantNull %uint
-        %x_1 = OpVariable %_ptr_Private_uint Private %4
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_uint Input
+%_ptr_Private_uint = OpTypePointer Private %uint
+          %6 = OpConstantNull %uint
+        %x_1 = OpVariable %_ptr_Private_uint Private %6
        %void = OpTypeVoid
           %7 = OpTypeFunction %void
+         %12 = OpTypeFunction %void %uint
      %main_1 = OpFunction %void None %7
          %10 = OpLabel
          %11 = OpLoad %uint %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %12
+  %x_1_param = OpFunctionParameter %uint
+         %15 = OpLabel
+               OpStore %x_1 %x_1_param
+         %16 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %7
-         %13 = OpLabel
-         %14 = OpLoad %uint %tint_symbol
-               OpStore %x_1 %14
-         %15 = OpFunctionCall %void %main_1
+         %18 = OpLabel
+         %20 = OpLoad %uint %x_1_param_1
+         %19 = OpFunctionCall %void %main_inner %20
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_Direct.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_Direct.spvasm.expected.spvasm
index 82c6620..e04af0c 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_Direct.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_Direct.spvasm.expected.spvasm
@@ -1,35 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 16
+; Bound: 21
 ; Schema: 0
                OpCapability Shader
                OpCapability SampleRateShading
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol
+               OpEntryPoint Fragment %main "main" %x_1_param_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn SampleId
+               OpDecorate %x_1_param_1 BuiltIn SampleId
        %uint = OpTypeInt 32 0
-%_ptr_Private_uint = OpTypePointer Private %uint
-          %4 = OpConstantNull %uint
-        %x_1 = OpVariable %_ptr_Private_uint Private %4
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_1_param_1 = OpVariable %_ptr_Input_uint Input
+%_ptr_Private_uint = OpTypePointer Private %uint
+          %6 = OpConstantNull %uint
+        %x_1 = OpVariable %_ptr_Private_uint Private %6
        %void = OpTypeVoid
           %7 = OpTypeFunction %void
+         %12 = OpTypeFunction %void %uint
      %main_1 = OpFunction %void None %7
          %10 = OpLabel
          %11 = OpLoad %uint %x_1
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %12
+  %x_1_param = OpFunctionParameter %uint
+         %15 = OpLabel
+               OpStore %x_1 %x_1_param
+         %16 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %7
-         %13 = OpLabel
-         %14 = OpLoad %uint %tint_symbol
-               OpStore %x_1 %14
-         %15 = OpFunctionCall %void %main_1
+         %18 = OpLabel
+         %20 = OpLoad %uint %x_1_param_1
+         %19 = OpFunctionCall %void %main_inner %20
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_AccessChain.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_AccessChain.spvasm.expected.spvasm
index 50e0611..89f39fa 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_AccessChain.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_AccessChain.spvasm.expected.spvasm
@@ -1,33 +1,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 27
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol
+               OpEntryPoint Fragment %main "main" %x_1_param_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %_arr_int_uint_1 ArrayStride 4
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn SampleMask
-        %int = OpTypeInt 32 1
+               OpDecorate %x_1_param_1 BuiltIn SampleMask
+               OpDecorate %_arr_int_uint_1 ArrayStride 4
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-%_arr_int_uint_1 = OpTypeArray %int %uint_1
-%_ptr_Private__arr_int_uint_1 = OpTypePointer Private %_arr_int_uint_1
-          %7 = OpConstantNull %_arr_int_uint_1
-        %x_1 = OpVariable %_ptr_Private__arr_int_uint_1 Private %7
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
 %_ptr_Input__arr_uint_uint_1 = OpTypePointer Input %_arr_uint_uint_1
-%tint_symbol = OpVariable %_ptr_Input__arr_uint_uint_1 Input
+%x_1_param_1 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
+        %int = OpTypeInt 32 1
+%_arr_int_uint_1 = OpTypeArray %int %uint_1
+%_ptr_Private__arr_int_uint_1 = OpTypePointer Private %_arr_int_uint_1
+         %10 = OpConstantNull %_arr_int_uint_1
+        %x_1 = OpVariable %_ptr_Private__arr_int_uint_1 Private %10
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
       %int_0 = OpConstant %int 0
 %_ptr_Private_int = OpTypePointer Private %int
+         %19 = OpTypeFunction %void %uint
 %_ptr_Input_uint = OpTypePointer Input %uint
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
@@ -35,13 +38,19 @@
          %18 = OpLoad %int %17
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %19
+  %x_1_param = OpFunctionParameter %uint
+         %22 = OpLabel
+         %23 = OpAccessChain %_ptr_Private_int %x_1 %int_0
+         %24 = OpBitcast %int %x_1_param
+               OpStore %23 %24
+         %25 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %11
-         %20 = OpLabel
-         %21 = OpAccessChain %_ptr_Private_int %x_1 %int_0
-         %24 = OpAccessChain %_ptr_Input_uint %tint_symbol %int_0
-         %25 = OpLoad %uint %24
-         %22 = OpBitcast %int %25
-               OpStore %21 %22
-         %26 = OpFunctionCall %void %main_1
+         %27 = OpLabel
+         %30 = OpAccessChain %_ptr_Input_uint %x_1_param_1 %int_0
+         %31 = OpLoad %uint %30
+         %28 = OpFunctionCall %void %main_inner %31
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_CopyObject.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_CopyObject.spvasm.expected.spvasm
index 50e0611..89f39fa 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_CopyObject.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_CopyObject.spvasm.expected.spvasm
@@ -1,33 +1,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 27
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol
+               OpEntryPoint Fragment %main "main" %x_1_param_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %_arr_int_uint_1 ArrayStride 4
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn SampleMask
-        %int = OpTypeInt 32 1
+               OpDecorate %x_1_param_1 BuiltIn SampleMask
+               OpDecorate %_arr_int_uint_1 ArrayStride 4
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-%_arr_int_uint_1 = OpTypeArray %int %uint_1
-%_ptr_Private__arr_int_uint_1 = OpTypePointer Private %_arr_int_uint_1
-          %7 = OpConstantNull %_arr_int_uint_1
-        %x_1 = OpVariable %_ptr_Private__arr_int_uint_1 Private %7
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
 %_ptr_Input__arr_uint_uint_1 = OpTypePointer Input %_arr_uint_uint_1
-%tint_symbol = OpVariable %_ptr_Input__arr_uint_uint_1 Input
+%x_1_param_1 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
+        %int = OpTypeInt 32 1
+%_arr_int_uint_1 = OpTypeArray %int %uint_1
+%_ptr_Private__arr_int_uint_1 = OpTypePointer Private %_arr_int_uint_1
+         %10 = OpConstantNull %_arr_int_uint_1
+        %x_1 = OpVariable %_ptr_Private__arr_int_uint_1 Private %10
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
       %int_0 = OpConstant %int 0
 %_ptr_Private_int = OpTypePointer Private %int
+         %19 = OpTypeFunction %void %uint
 %_ptr_Input_uint = OpTypePointer Input %uint
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
@@ -35,13 +38,19 @@
          %18 = OpLoad %int %17
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %19
+  %x_1_param = OpFunctionParameter %uint
+         %22 = OpLabel
+         %23 = OpAccessChain %_ptr_Private_int %x_1 %int_0
+         %24 = OpBitcast %int %x_1_param
+               OpStore %23 %24
+         %25 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %11
-         %20 = OpLabel
-         %21 = OpAccessChain %_ptr_Private_int %x_1 %int_0
-         %24 = OpAccessChain %_ptr_Input_uint %tint_symbol %int_0
-         %25 = OpLoad %uint %24
-         %22 = OpBitcast %int %25
-               OpStore %21 %22
-         %26 = OpFunctionCall %void %main_1
+         %27 = OpLabel
+         %30 = OpAccessChain %_ptr_Input_uint %x_1_param_1 %int_0
+         %31 = OpLoad %uint %30
+         %28 = OpFunctionCall %void %main_inner %31
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_Direct.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_Direct.spvasm.expected.spvasm
index 50e0611..89f39fa 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_Direct.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_Direct.spvasm.expected.spvasm
@@ -1,33 +1,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 27
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol
+               OpEntryPoint Fragment %main "main" %x_1_param_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
-               OpDecorate %_arr_int_uint_1 ArrayStride 4
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn SampleMask
-        %int = OpTypeInt 32 1
+               OpDecorate %x_1_param_1 BuiltIn SampleMask
+               OpDecorate %_arr_int_uint_1 ArrayStride 4
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-%_arr_int_uint_1 = OpTypeArray %int %uint_1
-%_ptr_Private__arr_int_uint_1 = OpTypePointer Private %_arr_int_uint_1
-          %7 = OpConstantNull %_arr_int_uint_1
-        %x_1 = OpVariable %_ptr_Private__arr_int_uint_1 Private %7
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
 %_ptr_Input__arr_uint_uint_1 = OpTypePointer Input %_arr_uint_uint_1
-%tint_symbol = OpVariable %_ptr_Input__arr_uint_uint_1 Input
+%x_1_param_1 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
+        %int = OpTypeInt 32 1
+%_arr_int_uint_1 = OpTypeArray %int %uint_1
+%_ptr_Private__arr_int_uint_1 = OpTypePointer Private %_arr_int_uint_1
+         %10 = OpConstantNull %_arr_int_uint_1
+        %x_1 = OpVariable %_ptr_Private__arr_int_uint_1 Private %10
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
       %int_0 = OpConstant %int 0
 %_ptr_Private_int = OpTypePointer Private %int
+         %19 = OpTypeFunction %void %uint
 %_ptr_Input_uint = OpTypePointer Input %uint
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
@@ -35,13 +38,19 @@
          %18 = OpLoad %int %17
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %19
+  %x_1_param = OpFunctionParameter %uint
+         %22 = OpLabel
+         %23 = OpAccessChain %_ptr_Private_int %x_1 %int_0
+         %24 = OpBitcast %int %x_1_param
+               OpStore %23 %24
+         %25 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %11
-         %20 = OpLabel
-         %21 = OpAccessChain %_ptr_Private_int %x_1 %int_0
-         %24 = OpAccessChain %_ptr_Input_uint %tint_symbol %int_0
-         %25 = OpLoad %uint %24
-         %22 = OpBitcast %int %25
-               OpStore %21 %22
-         %26 = OpFunctionCall %void %main_1
+         %27 = OpLabel
+         %30 = OpAccessChain %_ptr_Input_uint %x_1_param_1 %int_0
+         %31 = OpLoad %uint %30
+         %28 = OpFunctionCall %void %main_inner %31
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_AccessChain.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_AccessChain.spvasm.expected.spvasm
index 0fa19bd..c457454 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_AccessChain.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_AccessChain.spvasm.expected.spvasm
@@ -1,31 +1,34 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 25
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol
+               OpEntryPoint Fragment %main "main" %x_1_param_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn SampleMask
+               OpDecorate %x_1_param_1 BuiltIn SampleMask
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
-%_ptr_Private__arr_uint_uint_1 = OpTypePointer Private %_arr_uint_uint_1
-          %6 = OpConstantNull %_arr_uint_uint_1
-        %x_1 = OpVariable %_ptr_Private__arr_uint_uint_1 Private %6
 %_ptr_Input__arr_uint_uint_1 = OpTypePointer Input %_arr_uint_uint_1
-%tint_symbol = OpVariable %_ptr_Input__arr_uint_uint_1 Input
+%x_1_param_1 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
+%_ptr_Private__arr_uint_uint_1 = OpTypePointer Private %_arr_uint_uint_1
+          %8 = OpConstantNull %_arr_uint_uint_1
+        %x_1 = OpVariable %_ptr_Private__arr_uint_uint_1 Private %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Private_uint = OpTypePointer Private %uint
+         %18 = OpTypeFunction %void %uint
 %_ptr_Input_uint = OpTypePointer Input %uint
      %main_1 = OpFunction %void None %9
          %12 = OpLabel
@@ -33,12 +36,18 @@
          %17 = OpLoad %uint %16
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %18
+  %x_1_param = OpFunctionParameter %uint
+         %21 = OpLabel
+         %22 = OpAccessChain %_ptr_Private_uint %x_1 %int_0
+               OpStore %22 %x_1_param
+         %23 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %9
-         %19 = OpLabel
-         %20 = OpAccessChain %_ptr_Private_uint %x_1 %int_0
-         %22 = OpAccessChain %_ptr_Input_uint %tint_symbol %int_0
-         %23 = OpLoad %uint %22
-               OpStore %20 %23
-         %24 = OpFunctionCall %void %main_1
+         %25 = OpLabel
+         %28 = OpAccessChain %_ptr_Input_uint %x_1_param_1 %int_0
+         %29 = OpLoad %uint %28
+         %26 = OpFunctionCall %void %main_inner %29
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_CopyObject.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_CopyObject.spvasm.expected.spvasm
index 0fa19bd..c457454 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_CopyObject.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_CopyObject.spvasm.expected.spvasm
@@ -1,31 +1,34 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 25
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol
+               OpEntryPoint Fragment %main "main" %x_1_param_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn SampleMask
+               OpDecorate %x_1_param_1 BuiltIn SampleMask
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
-%_ptr_Private__arr_uint_uint_1 = OpTypePointer Private %_arr_uint_uint_1
-          %6 = OpConstantNull %_arr_uint_uint_1
-        %x_1 = OpVariable %_ptr_Private__arr_uint_uint_1 Private %6
 %_ptr_Input__arr_uint_uint_1 = OpTypePointer Input %_arr_uint_uint_1
-%tint_symbol = OpVariable %_ptr_Input__arr_uint_uint_1 Input
+%x_1_param_1 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
+%_ptr_Private__arr_uint_uint_1 = OpTypePointer Private %_arr_uint_uint_1
+          %8 = OpConstantNull %_arr_uint_uint_1
+        %x_1 = OpVariable %_ptr_Private__arr_uint_uint_1 Private %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Private_uint = OpTypePointer Private %uint
+         %18 = OpTypeFunction %void %uint
 %_ptr_Input_uint = OpTypePointer Input %uint
      %main_1 = OpFunction %void None %9
          %12 = OpLabel
@@ -33,12 +36,18 @@
          %17 = OpLoad %uint %16
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %18
+  %x_1_param = OpFunctionParameter %uint
+         %21 = OpLabel
+         %22 = OpAccessChain %_ptr_Private_uint %x_1 %int_0
+               OpStore %22 %x_1_param
+         %23 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %9
-         %19 = OpLabel
-         %20 = OpAccessChain %_ptr_Private_uint %x_1 %int_0
-         %22 = OpAccessChain %_ptr_Input_uint %tint_symbol %int_0
-         %23 = OpLoad %uint %22
-               OpStore %20 %23
-         %24 = OpFunctionCall %void %main_1
+         %25 = OpLabel
+         %28 = OpAccessChain %_ptr_Input_uint %x_1_param_1 %int_0
+         %29 = OpLoad %uint %28
+         %26 = OpFunctionCall %void %main_inner %29
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_Direct.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_Direct.spvasm.expected.spvasm
index 0fa19bd..c457454 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_Direct.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_Direct.spvasm.expected.spvasm
@@ -1,31 +1,34 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 25
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol
+               OpEntryPoint Fragment %main "main" %x_1_param_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn SampleMask
+               OpDecorate %x_1_param_1 BuiltIn SampleMask
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
-%_ptr_Private__arr_uint_uint_1 = OpTypePointer Private %_arr_uint_uint_1
-          %6 = OpConstantNull %_arr_uint_uint_1
-        %x_1 = OpVariable %_ptr_Private__arr_uint_uint_1 Private %6
 %_ptr_Input__arr_uint_uint_1 = OpTypePointer Input %_arr_uint_uint_1
-%tint_symbol = OpVariable %_ptr_Input__arr_uint_uint_1 Input
+%x_1_param_1 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
+%_ptr_Private__arr_uint_uint_1 = OpTypePointer Private %_arr_uint_uint_1
+          %8 = OpConstantNull %_arr_uint_uint_1
+        %x_1 = OpVariable %_ptr_Private__arr_uint_uint_1 Private %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Private_uint = OpTypePointer Private %uint
+         %18 = OpTypeFunction %void %uint
 %_ptr_Input_uint = OpTypePointer Input %uint
      %main_1 = OpFunction %void None %9
          %12 = OpLabel
@@ -33,12 +36,18 @@
          %17 = OpLoad %uint %16
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %18
+  %x_1_param = OpFunctionParameter %uint
+         %21 = OpLabel
+         %22 = OpAccessChain %_ptr_Private_uint %x_1 %int_0
+               OpStore %22 %x_1_param
+         %23 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %9
-         %19 = OpLabel
-         %20 = OpAccessChain %_ptr_Private_uint %x_1 %int_0
-         %22 = OpAccessChain %_ptr_Input_uint %tint_symbol %int_0
-         %23 = OpLoad %uint %22
-               OpStore %20 %23
-         %24 = OpFunctionCall %void %main_1
+         %25 = OpLabel
+         %28 = OpAccessChain %_ptr_Input_uint %x_1_param_1 %int_0
+         %29 = OpLoad %uint %28
+         %26 = OpFunctionCall %void %main_inner %29
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_WithStride.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_WithStride.spvasm.expected.spvasm
index 0fa19bd..c457454 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_WithStride.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_WithStride.spvasm.expected.spvasm
@@ -1,31 +1,34 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 25
+; Bound: 30
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol
+               OpEntryPoint Fragment %main "main" %x_1_param_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_param_1 "x_1_param_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_1_param "x_1_param"
                OpName %main "main"
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn SampleMask
+               OpDecorate %x_1_param_1 BuiltIn SampleMask
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
-%_ptr_Private__arr_uint_uint_1 = OpTypePointer Private %_arr_uint_uint_1
-          %6 = OpConstantNull %_arr_uint_uint_1
-        %x_1 = OpVariable %_ptr_Private__arr_uint_uint_1 Private %6
 %_ptr_Input__arr_uint_uint_1 = OpTypePointer Input %_arr_uint_uint_1
-%tint_symbol = OpVariable %_ptr_Input__arr_uint_uint_1 Input
+%x_1_param_1 = OpVariable %_ptr_Input__arr_uint_uint_1 Input
+%_ptr_Private__arr_uint_uint_1 = OpTypePointer Private %_arr_uint_uint_1
+          %8 = OpConstantNull %_arr_uint_uint_1
+        %x_1 = OpVariable %_ptr_Private__arr_uint_uint_1 Private %8
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Private_uint = OpTypePointer Private %uint
+         %18 = OpTypeFunction %void %uint
 %_ptr_Input_uint = OpTypePointer Input %uint
      %main_1 = OpFunction %void None %9
          %12 = OpLabel
@@ -33,12 +36,18 @@
          %17 = OpLoad %uint %16
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %18
+  %x_1_param = OpFunctionParameter %uint
+         %21 = OpLabel
+         %22 = OpAccessChain %_ptr_Private_uint %x_1 %int_0
+               OpStore %22 %x_1_param
+         %23 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %9
-         %19 = OpLabel
-         %20 = OpAccessChain %_ptr_Private_uint %x_1 %int_0
-         %22 = OpAccessChain %_ptr_Input_uint %tint_symbol %int_0
-         %23 = OpLoad %uint %22
-               OpStore %20 %23
-         %24 = OpFunctionCall %void %main_1
+         %25 = OpLabel
+         %28 = OpAccessChain %_ptr_Input_uint %x_1_param_1 %int_0
+         %29 = OpLoad %uint %28
+         %26 = OpFunctionCall %void %main_inner %29
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_AccessChain.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_AccessChain.spvasm.expected.spvasm
index 709f912..db222d7 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_AccessChain.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_AccessChain.spvasm.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_1_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_1_1 "x_1_1_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_1_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %_arr_int_uint_1 ArrayStride 4
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol_1 BuiltIn SampleMask
+               OpDecorate %x_1_1_1 BuiltIn SampleMask
+               OpDecorate %_arr_int_uint_1 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
-        %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-%_arr_int_uint_1 = OpTypeArray %int %uint_1
-%_ptr_Private__arr_int_uint_1 = OpTypePointer Private %_arr_int_uint_1
-          %7 = OpConstantNull %_arr_int_uint_1
-        %x_1 = OpVariable %_ptr_Private__arr_int_uint_1 Private %7
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
 %_ptr_Output__arr_uint_uint_1 = OpTypePointer Output %_arr_uint_uint_1
-         %11 = OpConstantNull %_arr_uint_uint_1
-%tint_symbol_1 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %11
+          %6 = OpConstantNull %_arr_uint_uint_1
+    %x_1_1_1 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %6
+        %int = OpTypeInt 32 1
+%_arr_int_uint_1 = OpTypeArray %int %uint_1
+%_ptr_Private__arr_int_uint_1 = OpTypePointer Private %_arr_int_uint_1
+         %11 = OpConstantNull %_arr_int_uint_1
+        %x_1 = OpVariable %_ptr_Private__arr_int_uint_1 Private %11
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
       %int_0 = OpConstant %int 0
 %_ptr_Private_int = OpTypePointer Private %int
      %int_12 = OpConstant %int 12
    %main_out = OpTypeStruct %uint
-         %20 = OpTypeFunction %void %main_out
+         %20 = OpTypeFunction %main_out
 %_ptr_Output_uint = OpTypePointer Output %uint
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
@@ -44,21 +43,20 @@
                OpStore %18 %int_12
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %20
-%tint_symbol = OpFunctionParameter %main_out
-         %24 = OpLabel
-         %26 = OpAccessChain %_ptr_Output_uint %tint_symbol_1 %int_0
-         %27 = OpCompositeExtract %uint %tint_symbol 0
-               OpStore %26 %27
-               OpReturn
+ %main_inner = OpFunction %main_out None %20
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %main_1
+         %26 = OpAccessChain %_ptr_Private_int %x_1 %int_0
+         %27 = OpLoad %int %26
+         %25 = OpBitcast %uint %27
+         %28 = OpCompositeConstruct %main_out %25
+               OpReturnValue %28
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %main_1
-         %33 = OpAccessChain %_ptr_Private_int %x_1 %int_0
-         %34 = OpLoad %int %33
-         %32 = OpBitcast %uint %34
-         %35 = OpCompositeConstruct %main_out %32
-         %31 = OpFunctionCall %void %tint_symbol_2 %35
+         %30 = OpLabel
+         %31 = OpFunctionCall %main_out %main_inner
+         %33 = OpAccessChain %_ptr_Output_uint %x_1_1_1 %int_0
+         %34 = OpCompositeExtract %uint %31 0
+               OpStore %33 %34
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_CopyObject.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_CopyObject.spvasm.expected.spvasm
index 709f912..db222d7 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_CopyObject.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_CopyObject.spvasm.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_1_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_1_1 "x_1_1_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_1_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %_arr_int_uint_1 ArrayStride 4
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol_1 BuiltIn SampleMask
+               OpDecorate %x_1_1_1 BuiltIn SampleMask
+               OpDecorate %_arr_int_uint_1 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
-        %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-%_arr_int_uint_1 = OpTypeArray %int %uint_1
-%_ptr_Private__arr_int_uint_1 = OpTypePointer Private %_arr_int_uint_1
-          %7 = OpConstantNull %_arr_int_uint_1
-        %x_1 = OpVariable %_ptr_Private__arr_int_uint_1 Private %7
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
 %_ptr_Output__arr_uint_uint_1 = OpTypePointer Output %_arr_uint_uint_1
-         %11 = OpConstantNull %_arr_uint_uint_1
-%tint_symbol_1 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %11
+          %6 = OpConstantNull %_arr_uint_uint_1
+    %x_1_1_1 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %6
+        %int = OpTypeInt 32 1
+%_arr_int_uint_1 = OpTypeArray %int %uint_1
+%_ptr_Private__arr_int_uint_1 = OpTypePointer Private %_arr_int_uint_1
+         %11 = OpConstantNull %_arr_int_uint_1
+        %x_1 = OpVariable %_ptr_Private__arr_int_uint_1 Private %11
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
       %int_0 = OpConstant %int 0
 %_ptr_Private_int = OpTypePointer Private %int
      %int_12 = OpConstant %int 12
    %main_out = OpTypeStruct %uint
-         %20 = OpTypeFunction %void %main_out
+         %20 = OpTypeFunction %main_out
 %_ptr_Output_uint = OpTypePointer Output %uint
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
@@ -44,21 +43,20 @@
                OpStore %18 %int_12
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %20
-%tint_symbol = OpFunctionParameter %main_out
-         %24 = OpLabel
-         %26 = OpAccessChain %_ptr_Output_uint %tint_symbol_1 %int_0
-         %27 = OpCompositeExtract %uint %tint_symbol 0
-               OpStore %26 %27
-               OpReturn
+ %main_inner = OpFunction %main_out None %20
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %main_1
+         %26 = OpAccessChain %_ptr_Private_int %x_1 %int_0
+         %27 = OpLoad %int %26
+         %25 = OpBitcast %uint %27
+         %28 = OpCompositeConstruct %main_out %25
+               OpReturnValue %28
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %main_1
-         %33 = OpAccessChain %_ptr_Private_int %x_1 %int_0
-         %34 = OpLoad %int %33
-         %32 = OpBitcast %uint %34
-         %35 = OpCompositeConstruct %main_out %32
-         %31 = OpFunctionCall %void %tint_symbol_2 %35
+         %30 = OpLabel
+         %31 = OpFunctionCall %main_out %main_inner
+         %33 = OpAccessChain %_ptr_Output_uint %x_1_1_1 %int_0
+         %34 = OpCompositeExtract %uint %31 0
+               OpStore %33 %34
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_Direct.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_Direct.spvasm.expected.spvasm
index 709f912..db222d7 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_Direct.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_Direct.spvasm.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_1_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_1_1 "x_1_1_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_1_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %_arr_int_uint_1 ArrayStride 4
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol_1 BuiltIn SampleMask
+               OpDecorate %x_1_1_1 BuiltIn SampleMask
+               OpDecorate %_arr_int_uint_1 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
-        %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
-%_arr_int_uint_1 = OpTypeArray %int %uint_1
-%_ptr_Private__arr_int_uint_1 = OpTypePointer Private %_arr_int_uint_1
-          %7 = OpConstantNull %_arr_int_uint_1
-        %x_1 = OpVariable %_ptr_Private__arr_int_uint_1 Private %7
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
 %_ptr_Output__arr_uint_uint_1 = OpTypePointer Output %_arr_uint_uint_1
-         %11 = OpConstantNull %_arr_uint_uint_1
-%tint_symbol_1 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %11
+          %6 = OpConstantNull %_arr_uint_uint_1
+    %x_1_1_1 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %6
+        %int = OpTypeInt 32 1
+%_arr_int_uint_1 = OpTypeArray %int %uint_1
+%_ptr_Private__arr_int_uint_1 = OpTypePointer Private %_arr_int_uint_1
+         %11 = OpConstantNull %_arr_int_uint_1
+        %x_1 = OpVariable %_ptr_Private__arr_int_uint_1 Private %11
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
       %int_0 = OpConstant %int 0
 %_ptr_Private_int = OpTypePointer Private %int
      %int_12 = OpConstant %int 12
    %main_out = OpTypeStruct %uint
-         %20 = OpTypeFunction %void %main_out
+         %20 = OpTypeFunction %main_out
 %_ptr_Output_uint = OpTypePointer Output %uint
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
@@ -44,21 +43,20 @@
                OpStore %18 %int_12
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %20
-%tint_symbol = OpFunctionParameter %main_out
-         %24 = OpLabel
-         %26 = OpAccessChain %_ptr_Output_uint %tint_symbol_1 %int_0
-         %27 = OpCompositeExtract %uint %tint_symbol 0
-               OpStore %26 %27
-               OpReturn
+ %main_inner = OpFunction %main_out None %20
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %main_1
+         %26 = OpAccessChain %_ptr_Private_int %x_1 %int_0
+         %27 = OpLoad %int %26
+         %25 = OpBitcast %uint %27
+         %28 = OpCompositeConstruct %main_out %25
+               OpReturnValue %28
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %main_1
-         %33 = OpAccessChain %_ptr_Private_int %x_1 %int_0
-         %34 = OpLoad %int %33
-         %32 = OpBitcast %uint %34
-         %35 = OpCompositeConstruct %main_out %32
-         %31 = OpFunctionCall %void %tint_symbol_2 %35
+         %30 = OpLabel
+         %31 = OpFunctionCall %main_out %main_inner
+         %33 = OpAccessChain %_ptr_Output_uint %x_1_1_1 %int_0
+         %34 = OpCompositeExtract %uint %31 0
+               OpStore %33 %34
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_AccessChain.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_AccessChain.spvasm.expected.spvasm
index 5fc4f5f..8d25fb8 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_AccessChain.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_AccessChain.spvasm.expected.spvasm
@@ -1,31 +1,30 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_1_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_1_1 "x_1_1_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_1_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol_1 BuiltIn SampleMask
+               OpDecorate %x_1_1_1 BuiltIn SampleMask
                OpMemberDecorate %main_out 0 Offset 0
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
-%_ptr_Private__arr_uint_uint_1 = OpTypePointer Private %_arr_uint_uint_1
-          %6 = OpConstantNull %_arr_uint_uint_1
-        %x_1 = OpVariable %_ptr_Private__arr_uint_uint_1 Private %6
 %_ptr_Output__arr_uint_uint_1 = OpTypePointer Output %_arr_uint_uint_1
-%tint_symbol_1 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %6
+          %6 = OpConstantNull %_arr_uint_uint_1
+    %x_1_1_1 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %6
+%_ptr_Private__arr_uint_uint_1 = OpTypePointer Private %_arr_uint_uint_1
+        %x_1 = OpVariable %_ptr_Private__arr_uint_uint_1 Private %6
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -33,7 +32,7 @@
 %_ptr_Private_uint = OpTypePointer Private %uint
      %uint_0 = OpConstant %uint 0
    %main_out = OpTypeStruct %uint
-         %18 = OpTypeFunction %void %main_out
+         %18 = OpTypeFunction %main_out
 %_ptr_Output_uint = OpTypePointer Output %uint
      %main_1 = OpFunction %void None %9
          %12 = OpLabel
@@ -41,20 +40,19 @@
                OpStore %16 %uint_0
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %main_out
-         %22 = OpLabel
-         %24 = OpAccessChain %_ptr_Output_uint %tint_symbol_1 %int_0
-         %25 = OpCompositeExtract %uint %tint_symbol 0
-               OpStore %24 %25
-               OpReturn
+ %main_inner = OpFunction %main_out None %18
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %main_1
+         %23 = OpAccessChain %_ptr_Private_uint %x_1 %int_0
+         %24 = OpLoad %uint %23
+         %25 = OpCompositeConstruct %main_out %24
+               OpReturnValue %25
                OpFunctionEnd
        %main = OpFunction %void None %9
          %27 = OpLabel
-         %28 = OpFunctionCall %void %main_1
-         %30 = OpAccessChain %_ptr_Private_uint %x_1 %int_0
-         %31 = OpLoad %uint %30
-         %32 = OpCompositeConstruct %main_out %31
-         %29 = OpFunctionCall %void %tint_symbol_2 %32
+         %28 = OpFunctionCall %main_out %main_inner
+         %30 = OpAccessChain %_ptr_Output_uint %x_1_1_1 %int_0
+         %31 = OpCompositeExtract %uint %28 0
+               OpStore %30 %31
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_CopyObject.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_CopyObject.spvasm.expected.spvasm
index 5fc4f5f..8d25fb8 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_CopyObject.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_CopyObject.spvasm.expected.spvasm
@@ -1,31 +1,30 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_1_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_1_1 "x_1_1_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_1_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol_1 BuiltIn SampleMask
+               OpDecorate %x_1_1_1 BuiltIn SampleMask
                OpMemberDecorate %main_out 0 Offset 0
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
-%_ptr_Private__arr_uint_uint_1 = OpTypePointer Private %_arr_uint_uint_1
-          %6 = OpConstantNull %_arr_uint_uint_1
-        %x_1 = OpVariable %_ptr_Private__arr_uint_uint_1 Private %6
 %_ptr_Output__arr_uint_uint_1 = OpTypePointer Output %_arr_uint_uint_1
-%tint_symbol_1 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %6
+          %6 = OpConstantNull %_arr_uint_uint_1
+    %x_1_1_1 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %6
+%_ptr_Private__arr_uint_uint_1 = OpTypePointer Private %_arr_uint_uint_1
+        %x_1 = OpVariable %_ptr_Private__arr_uint_uint_1 Private %6
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -33,7 +32,7 @@
 %_ptr_Private_uint = OpTypePointer Private %uint
      %uint_0 = OpConstant %uint 0
    %main_out = OpTypeStruct %uint
-         %18 = OpTypeFunction %void %main_out
+         %18 = OpTypeFunction %main_out
 %_ptr_Output_uint = OpTypePointer Output %uint
      %main_1 = OpFunction %void None %9
          %12 = OpLabel
@@ -41,20 +40,19 @@
                OpStore %16 %uint_0
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %main_out
-         %22 = OpLabel
-         %24 = OpAccessChain %_ptr_Output_uint %tint_symbol_1 %int_0
-         %25 = OpCompositeExtract %uint %tint_symbol 0
-               OpStore %24 %25
-               OpReturn
+ %main_inner = OpFunction %main_out None %18
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %main_1
+         %23 = OpAccessChain %_ptr_Private_uint %x_1 %int_0
+         %24 = OpLoad %uint %23
+         %25 = OpCompositeConstruct %main_out %24
+               OpReturnValue %25
                OpFunctionEnd
        %main = OpFunction %void None %9
          %27 = OpLabel
-         %28 = OpFunctionCall %void %main_1
-         %30 = OpAccessChain %_ptr_Private_uint %x_1 %int_0
-         %31 = OpLoad %uint %30
-         %32 = OpCompositeConstruct %main_out %31
-         %29 = OpFunctionCall %void %tint_symbol_2 %32
+         %28 = OpFunctionCall %main_out %main_inner
+         %30 = OpAccessChain %_ptr_Output_uint %x_1_1_1 %int_0
+         %31 = OpCompositeExtract %uint %28 0
+               OpStore %30 %31
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_Direct.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_Direct.spvasm.expected.spvasm
index 5fc4f5f..8d25fb8 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_Direct.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_Direct.spvasm.expected.spvasm
@@ -1,31 +1,30 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_1_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_1_1 "x_1_1_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_1_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol_1 BuiltIn SampleMask
+               OpDecorate %x_1_1_1 BuiltIn SampleMask
                OpMemberDecorate %main_out 0 Offset 0
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
-%_ptr_Private__arr_uint_uint_1 = OpTypePointer Private %_arr_uint_uint_1
-          %6 = OpConstantNull %_arr_uint_uint_1
-        %x_1 = OpVariable %_ptr_Private__arr_uint_uint_1 Private %6
 %_ptr_Output__arr_uint_uint_1 = OpTypePointer Output %_arr_uint_uint_1
-%tint_symbol_1 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %6
+          %6 = OpConstantNull %_arr_uint_uint_1
+    %x_1_1_1 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %6
+%_ptr_Private__arr_uint_uint_1 = OpTypePointer Private %_arr_uint_uint_1
+        %x_1 = OpVariable %_ptr_Private__arr_uint_uint_1 Private %6
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -33,7 +32,7 @@
 %_ptr_Private_uint = OpTypePointer Private %uint
      %uint_0 = OpConstant %uint 0
    %main_out = OpTypeStruct %uint
-         %18 = OpTypeFunction %void %main_out
+         %18 = OpTypeFunction %main_out
 %_ptr_Output_uint = OpTypePointer Output %uint
      %main_1 = OpFunction %void None %9
          %12 = OpLabel
@@ -41,20 +40,19 @@
                OpStore %16 %uint_0
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %main_out
-         %22 = OpLabel
-         %24 = OpAccessChain %_ptr_Output_uint %tint_symbol_1 %int_0
-         %25 = OpCompositeExtract %uint %tint_symbol 0
-               OpStore %24 %25
-               OpReturn
+ %main_inner = OpFunction %main_out None %18
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %main_1
+         %23 = OpAccessChain %_ptr_Private_uint %x_1 %int_0
+         %24 = OpLoad %uint %23
+         %25 = OpCompositeConstruct %main_out %24
+               OpReturnValue %25
                OpFunctionEnd
        %main = OpFunction %void None %9
          %27 = OpLabel
-         %28 = OpFunctionCall %void %main_1
-         %30 = OpAccessChain %_ptr_Private_uint %x_1 %int_0
-         %31 = OpLoad %uint %30
-         %32 = OpCompositeConstruct %main_out %31
-         %29 = OpFunctionCall %void %tint_symbol_2 %32
+         %28 = OpFunctionCall %main_out %main_inner
+         %30 = OpAccessChain %_ptr_Output_uint %x_1_1_1 %int_0
+         %31 = OpCompositeExtract %uint %28 0
+               OpStore %30 %31
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_WithStride.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_WithStride.spvasm.expected.spvasm
index 5fc4f5f..8d25fb8 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_WithStride.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_WithStride.spvasm.expected.spvasm
@@ -1,31 +1,30 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 32
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_1_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_1_1_1 "x_1_1_1"
                OpName %x_1 "x_1"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_1_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
                OpDecorate %_arr_uint_uint_1 ArrayStride 4
-               OpDecorate %tint_symbol_1 BuiltIn SampleMask
+               OpDecorate %x_1_1_1 BuiltIn SampleMask
                OpMemberDecorate %main_out 0 Offset 0
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
-%_ptr_Private__arr_uint_uint_1 = OpTypePointer Private %_arr_uint_uint_1
-          %6 = OpConstantNull %_arr_uint_uint_1
-        %x_1 = OpVariable %_ptr_Private__arr_uint_uint_1 Private %6
 %_ptr_Output__arr_uint_uint_1 = OpTypePointer Output %_arr_uint_uint_1
-%tint_symbol_1 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %6
+          %6 = OpConstantNull %_arr_uint_uint_1
+    %x_1_1_1 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %6
+%_ptr_Private__arr_uint_uint_1 = OpTypePointer Private %_arr_uint_uint_1
+        %x_1 = OpVariable %_ptr_Private__arr_uint_uint_1 Private %6
        %void = OpTypeVoid
           %9 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -33,7 +32,7 @@
 %_ptr_Private_uint = OpTypePointer Private %uint
      %uint_0 = OpConstant %uint 0
    %main_out = OpTypeStruct %uint
-         %18 = OpTypeFunction %void %main_out
+         %18 = OpTypeFunction %main_out
 %_ptr_Output_uint = OpTypePointer Output %uint
      %main_1 = OpFunction %void None %9
          %12 = OpLabel
@@ -41,20 +40,19 @@
                OpStore %16 %uint_0
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %18
-%tint_symbol = OpFunctionParameter %main_out
-         %22 = OpLabel
-         %24 = OpAccessChain %_ptr_Output_uint %tint_symbol_1 %int_0
-         %25 = OpCompositeExtract %uint %tint_symbol 0
-               OpStore %24 %25
-               OpReturn
+ %main_inner = OpFunction %main_out None %18
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %main_1
+         %23 = OpAccessChain %_ptr_Private_uint %x_1 %int_0
+         %24 = OpLoad %uint %23
+         %25 = OpCompositeConstruct %main_out %24
+               OpReturnValue %25
                OpFunctionEnd
        %main = OpFunction %void None %9
          %27 = OpLabel
-         %28 = OpFunctionCall %void %main_1
-         %30 = OpAccessChain %_ptr_Private_uint %x_1 %int_0
-         %31 = OpLoad %uint %30
-         %32 = OpCompositeConstruct %main_out %31
-         %29 = OpFunctionCall %void %tint_symbol_2 %32
+         %28 = OpFunctionCall %main_out %main_inner
+         %30 = OpAccessChain %_ptr_Output_uint %x_1_1_1 %int_0
+         %31 = OpCompositeExtract %uint %28 0
+               OpStore %30 %31
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_AccessChain.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_AccessChain.spvasm.expected.spvasm
index 6416131..7a2afa5 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_AccessChain.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_AccessChain.spvasm.expected.spvasm
@@ -5,65 +5,65 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_4_param_1 %x_1_1_1 %vertex_point_size
+               OpName %x_4_param_1 "x_4_param_1"
+               OpName %x_1_1_1 "x_1_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_4 "x_4"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_1_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_4_param "x_4_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol BuiltIn VertexIndex
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %x_4_param_1 BuiltIn VertexIndex
+               OpDecorate %x_1_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %8 = OpConstantNull %int
-        %x_4 = OpVariable %_ptr_Private_int Private %8
-    %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-        %x_1 = OpVariable %_ptr_Private_v4float Private %12
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_4_param_1 = OpVariable %_ptr_Input_uint Input
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+          %8 = OpConstantNull %v4float
+    %x_1_1_1 = OpVariable %_ptr_Output_v4float Output %8
+%_ptr_Output_float = OpTypePointer Output %float
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
+        %int = OpTypeInt 32 1
+%_ptr_Private_int = OpTypePointer Private %int
+         %15 = OpConstantNull %int
+        %x_4 = OpVariable %_ptr_Private_int Private %15
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+        %x_1 = OpVariable %_ptr_Private_v4float Private %8
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %23 = OpTypeFunction %void %main_out
+         %23 = OpTypeFunction %main_out %uint
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
          %22 = OpLoad %int %x_4
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %23
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %23
+  %x_4_param = OpFunctionParameter %uint
          %27 = OpLabel
-         %28 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %28
-               OpReturn
+         %28 = OpBitcast %int %x_4_param
+               OpStore %x_4 %28
+         %29 = OpFunctionCall %void %main_1
+         %30 = OpLoad %v4float %x_1
+         %31 = OpCompositeConstruct %main_out %30
+               OpReturnValue %31
                OpFunctionEnd
        %main = OpFunction %void None %18
-         %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpLoad %uint %tint_symbol
-         %32 = OpBitcast %int %33
-               OpStore %x_4 %32
-         %34 = OpFunctionCall %void %main_1
-         %36 = OpLoad %v4float %x_1
-         %37 = OpCompositeConstruct %main_out %36
-         %35 = OpFunctionCall %void %tint_symbol_3 %37
+         %33 = OpLabel
+         %35 = OpLoad %uint %x_4_param_1
+         %34 = OpFunctionCall %main_out %main_inner %35
+         %36 = OpCompositeExtract %v4float %34 0
+               OpStore %x_1_1_1 %36
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_CopyObject.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_CopyObject.spvasm.expected.spvasm
index 6416131..7a2afa5 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_CopyObject.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_CopyObject.spvasm.expected.spvasm
@@ -5,65 +5,65 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_4_param_1 %x_1_1_1 %vertex_point_size
+               OpName %x_4_param_1 "x_4_param_1"
+               OpName %x_1_1_1 "x_1_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_4 "x_4"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_1_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_4_param "x_4_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol BuiltIn VertexIndex
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %x_4_param_1 BuiltIn VertexIndex
+               OpDecorate %x_1_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %8 = OpConstantNull %int
-        %x_4 = OpVariable %_ptr_Private_int Private %8
-    %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-        %x_1 = OpVariable %_ptr_Private_v4float Private %12
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_4_param_1 = OpVariable %_ptr_Input_uint Input
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+          %8 = OpConstantNull %v4float
+    %x_1_1_1 = OpVariable %_ptr_Output_v4float Output %8
+%_ptr_Output_float = OpTypePointer Output %float
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
+        %int = OpTypeInt 32 1
+%_ptr_Private_int = OpTypePointer Private %int
+         %15 = OpConstantNull %int
+        %x_4 = OpVariable %_ptr_Private_int Private %15
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+        %x_1 = OpVariable %_ptr_Private_v4float Private %8
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %23 = OpTypeFunction %void %main_out
+         %23 = OpTypeFunction %main_out %uint
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
          %22 = OpLoad %int %x_4
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %23
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %23
+  %x_4_param = OpFunctionParameter %uint
          %27 = OpLabel
-         %28 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %28
-               OpReturn
+         %28 = OpBitcast %int %x_4_param
+               OpStore %x_4 %28
+         %29 = OpFunctionCall %void %main_1
+         %30 = OpLoad %v4float %x_1
+         %31 = OpCompositeConstruct %main_out %30
+               OpReturnValue %31
                OpFunctionEnd
        %main = OpFunction %void None %18
-         %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpLoad %uint %tint_symbol
-         %32 = OpBitcast %int %33
-               OpStore %x_4 %32
-         %34 = OpFunctionCall %void %main_1
-         %36 = OpLoad %v4float %x_1
-         %37 = OpCompositeConstruct %main_out %36
-         %35 = OpFunctionCall %void %tint_symbol_3 %37
+         %33 = OpLabel
+         %35 = OpLoad %uint %x_4_param_1
+         %34 = OpFunctionCall %main_out %main_inner %35
+         %36 = OpCompositeExtract %v4float %34 0
+               OpStore %x_1_1_1 %36
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_Direct.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_Direct.spvasm.expected.spvasm
index 6416131..7a2afa5 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_Direct.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_Direct.spvasm.expected.spvasm
@@ -5,65 +5,65 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_4_param_1 %x_1_1_1 %vertex_point_size
+               OpName %x_4_param_1 "x_4_param_1"
+               OpName %x_1_1_1 "x_1_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_4 "x_4"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_1_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_4_param "x_4_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol BuiltIn VertexIndex
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %x_4_param_1 BuiltIn VertexIndex
+               OpDecorate %x_1_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %8 = OpConstantNull %int
-        %x_4 = OpVariable %_ptr_Private_int Private %8
-    %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-        %x_1 = OpVariable %_ptr_Private_v4float Private %12
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_4_param_1 = OpVariable %_ptr_Input_uint Input
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+          %8 = OpConstantNull %v4float
+    %x_1_1_1 = OpVariable %_ptr_Output_v4float Output %8
+%_ptr_Output_float = OpTypePointer Output %float
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
+        %int = OpTypeInt 32 1
+%_ptr_Private_int = OpTypePointer Private %int
+         %15 = OpConstantNull %int
+        %x_4 = OpVariable %_ptr_Private_int Private %15
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+        %x_1 = OpVariable %_ptr_Private_v4float Private %8
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %23 = OpTypeFunction %void %main_out
+         %23 = OpTypeFunction %main_out %uint
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
          %22 = OpLoad %int %x_4
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %23
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %23
+  %x_4_param = OpFunctionParameter %uint
          %27 = OpLabel
-         %28 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %28
-               OpReturn
+         %28 = OpBitcast %int %x_4_param
+               OpStore %x_4 %28
+         %29 = OpFunctionCall %void %main_1
+         %30 = OpLoad %v4float %x_1
+         %31 = OpCompositeConstruct %main_out %30
+               OpReturnValue %31
                OpFunctionEnd
        %main = OpFunction %void None %18
-         %30 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %33 = OpLoad %uint %tint_symbol
-         %32 = OpBitcast %int %33
-               OpStore %x_4 %32
-         %34 = OpFunctionCall %void %main_1
-         %36 = OpLoad %v4float %x_1
-         %37 = OpCompositeConstruct %main_out %36
-         %35 = OpFunctionCall %void %tint_symbol_3 %37
+         %33 = OpLabel
+         %35 = OpLoad %uint %x_4_param_1
+         %34 = OpFunctionCall %main_out %main_inner %35
+         %36 = OpCompositeExtract %v4float %34 0
+               OpStore %x_1_1_1 %36
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_AccessChain.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_AccessChain.spvasm.expected.spvasm
index 7fb3bc7..09aa967 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_AccessChain.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_AccessChain.spvasm.expected.spvasm
@@ -5,63 +5,63 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_4_param_1 %x_1_1_1 %vertex_point_size
+               OpName %x_4_param_1 "x_4_param_1"
+               OpName %x_1_1_1 "x_1_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_4 "x_4"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_1_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_4_param "x_4_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol BuiltIn VertexIndex
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %x_4_param_1 BuiltIn VertexIndex
+               OpDecorate %x_1_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
        %uint = OpTypeInt 32 0
-%_ptr_Private_uint = OpTypePointer Private %uint
-          %8 = OpConstantNull %uint
-        %x_4 = OpVariable %_ptr_Private_uint Private %8
-    %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-        %x_1 = OpVariable %_ptr_Private_v4float Private %12
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_4_param_1 = OpVariable %_ptr_Input_uint Input
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+          %8 = OpConstantNull %v4float
+    %x_1_1_1 = OpVariable %_ptr_Output_v4float Output %8
+%_ptr_Output_float = OpTypePointer Output %float
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
+%_ptr_Private_uint = OpTypePointer Private %uint
+         %14 = OpConstantNull %uint
+        %x_4 = OpVariable %_ptr_Private_uint Private %14
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+        %x_1 = OpVariable %_ptr_Private_v4float Private %8
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %22 = OpTypeFunction %void %main_out
+         %22 = OpTypeFunction %main_out %uint
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %17
          %20 = OpLabel
          %21 = OpLoad %uint %x_4
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %22
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %22
+  %x_4_param = OpFunctionParameter %uint
          %26 = OpLabel
-         %27 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %27
-               OpReturn
+               OpStore %x_4 %x_4_param
+         %27 = OpFunctionCall %void %main_1
+         %28 = OpLoad %v4float %x_1
+         %29 = OpCompositeConstruct %main_out %28
+               OpReturnValue %29
                OpFunctionEnd
        %main = OpFunction %void None %17
-         %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpLoad %uint %tint_symbol
-               OpStore %x_4 %31
-         %32 = OpFunctionCall %void %main_1
-         %34 = OpLoad %v4float %x_1
-         %35 = OpCompositeConstruct %main_out %34
-         %33 = OpFunctionCall %void %tint_symbol_3 %35
+         %31 = OpLabel
+         %33 = OpLoad %uint %x_4_param_1
+         %32 = OpFunctionCall %main_out %main_inner %33
+         %34 = OpCompositeExtract %v4float %32 0
+               OpStore %x_1_1_1 %34
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_CopyObject.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_CopyObject.spvasm.expected.spvasm
index 7fb3bc7..09aa967 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_CopyObject.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_CopyObject.spvasm.expected.spvasm
@@ -5,63 +5,63 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_4_param_1 %x_1_1_1 %vertex_point_size
+               OpName %x_4_param_1 "x_4_param_1"
+               OpName %x_1_1_1 "x_1_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_4 "x_4"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_1_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_4_param "x_4_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol BuiltIn VertexIndex
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %x_4_param_1 BuiltIn VertexIndex
+               OpDecorate %x_1_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
        %uint = OpTypeInt 32 0
-%_ptr_Private_uint = OpTypePointer Private %uint
-          %8 = OpConstantNull %uint
-        %x_4 = OpVariable %_ptr_Private_uint Private %8
-    %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-        %x_1 = OpVariable %_ptr_Private_v4float Private %12
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_4_param_1 = OpVariable %_ptr_Input_uint Input
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+          %8 = OpConstantNull %v4float
+    %x_1_1_1 = OpVariable %_ptr_Output_v4float Output %8
+%_ptr_Output_float = OpTypePointer Output %float
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
+%_ptr_Private_uint = OpTypePointer Private %uint
+         %14 = OpConstantNull %uint
+        %x_4 = OpVariable %_ptr_Private_uint Private %14
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+        %x_1 = OpVariable %_ptr_Private_v4float Private %8
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %22 = OpTypeFunction %void %main_out
+         %22 = OpTypeFunction %main_out %uint
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %17
          %20 = OpLabel
          %21 = OpLoad %uint %x_4
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %22
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %22
+  %x_4_param = OpFunctionParameter %uint
          %26 = OpLabel
-         %27 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %27
-               OpReturn
+               OpStore %x_4 %x_4_param
+         %27 = OpFunctionCall %void %main_1
+         %28 = OpLoad %v4float %x_1
+         %29 = OpCompositeConstruct %main_out %28
+               OpReturnValue %29
                OpFunctionEnd
        %main = OpFunction %void None %17
-         %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpLoad %uint %tint_symbol
-               OpStore %x_4 %31
-         %32 = OpFunctionCall %void %main_1
-         %34 = OpLoad %v4float %x_1
-         %35 = OpCompositeConstruct %main_out %34
-         %33 = OpFunctionCall %void %tint_symbol_3 %35
+         %31 = OpLabel
+         %33 = OpLoad %uint %x_4_param_1
+         %32 = OpFunctionCall %main_out %main_inner %33
+         %34 = OpCompositeExtract %v4float %32 0
+               OpStore %x_1_1_1 %34
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_Direct.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_Direct.spvasm.expected.spvasm
index 7fb3bc7..09aa967 100644
--- a/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_Direct.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_Direct.spvasm.expected.spvasm
@@ -5,63 +5,63 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_4_param_1 %x_1_1_1 %vertex_point_size
+               OpName %x_4_param_1 "x_4_param_1"
+               OpName %x_1_1_1 "x_1_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_4 "x_4"
                OpName %x_1 "x_1"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_1_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_4_param "x_4_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol BuiltIn VertexIndex
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %x_4_param_1 BuiltIn VertexIndex
+               OpDecorate %x_1_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
-      %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
        %uint = OpTypeInt 32 0
-%_ptr_Private_uint = OpTypePointer Private %uint
-          %8 = OpConstantNull %uint
-        %x_4 = OpVariable %_ptr_Private_uint Private %8
-    %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-        %x_1 = OpVariable %_ptr_Private_v4float Private %12
 %_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
+%x_4_param_1 = OpVariable %_ptr_Input_uint Input
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+          %8 = OpConstantNull %v4float
+    %x_1_1_1 = OpVariable %_ptr_Output_v4float Output %8
+%_ptr_Output_float = OpTypePointer Output %float
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
+%_ptr_Private_uint = OpTypePointer Private %uint
+         %14 = OpConstantNull %uint
+        %x_4 = OpVariable %_ptr_Private_uint Private %14
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+        %x_1 = OpVariable %_ptr_Private_v4float Private %8
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %22 = OpTypeFunction %void %main_out
+         %22 = OpTypeFunction %main_out %uint
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %17
          %20 = OpLabel
          %21 = OpLoad %uint %x_4
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %22
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %22
+  %x_4_param = OpFunctionParameter %uint
          %26 = OpLabel
-         %27 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %27
-               OpReturn
+               OpStore %x_4 %x_4_param
+         %27 = OpFunctionCall %void %main_1
+         %28 = OpLoad %v4float %x_1
+         %29 = OpCompositeConstruct %main_out %28
+               OpReturnValue %29
                OpFunctionEnd
        %main = OpFunction %void None %17
-         %29 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %31 = OpLoad %uint %tint_symbol
-               OpStore %x_4 %31
-         %32 = OpFunctionCall %void %main_1
-         %34 = OpLoad %v4float %x_1
-         %35 = OpCompositeConstruct %main_out %34
-         %33 = OpFunctionCall %void %tint_symbol_3 %35
+         %31 = OpLabel
+         %33 = OpLoad %uint %x_4_param_1
+         %32 = OpFunctionCall %main_out %main_inner %33
+         %34 = OpCompositeExtract %v4float %32 0
+               OpStore %x_1_1_1 %34
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_Vertex.spvasm.expected.spvasm b/test/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_Vertex.spvasm.expected.spvasm
index 8c45878..7ca42ed 100644
--- a/test/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_Vertex.spvasm.expected.spvasm
+++ b/test/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_Vertex.spvasm.expected.spvasm
@@ -1,55 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 28
+; Bound: 27
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol_1
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_2_1_1 %vertex_point_size
+               OpName %x_2_1_1 "x_2_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_2 "x_2"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_2_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol_1 BuiltIn Position
+               OpDecorate %x_2_1_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+          %5 = OpConstantNull %v4float
+    %x_2_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+        %x_2 = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %15 = OpTypeFunction %void %main_out
+         %15 = OpTypeFunction %main_out
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %15
-%tint_symbol = OpFunctionParameter %main_out
-         %19 = OpLabel
-         %20 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %20
-               OpReturn
+ %main_inner = OpFunction %main_out None %15
+         %18 = OpLabel
+         %19 = OpFunctionCall %void %main_1
+         %20 = OpLoad %v4float %x_2
+         %21 = OpCompositeConstruct %main_out %20
+               OpReturnValue %21
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %22 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %24 = OpFunctionCall %void %main_1
-         %26 = OpLoad %v4float %x_2
-         %27 = OpCompositeConstruct %main_out %26
-         %25 = OpFunctionCall %void %tint_symbol_2 %27
+         %23 = OpLabel
+         %24 = OpFunctionCall %main_out %main_inner
+         %25 = OpCompositeExtract %v4float %24 0
+               OpStore %x_2_1_1 %25
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/var/inferred/function-let.wgsl.expected.spvasm b/test/var/inferred/function-let.wgsl.expected.spvasm
index 4b590e8..3593a24 100644
--- a/test/var/inferred/function-let.wgsl.expected.spvasm
+++ b/test/var/inferred/function-let.wgsl.expected.spvasm
@@ -1,13 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 59
+; Bound: 58
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %value
                OpExecutionMode %main OriginUpperLeft
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
                OpName %ret_i32 "ret_i32"
                OpName %ret_u32 "ret_u32"
                OpName %ret_f32 "ret_f32"
@@ -16,17 +16,16 @@
                OpName %ret_MyStruct "ret_MyStruct"
                OpName %ret_MyArray "ret_MyArray"
                OpName %let_decls "let_decls"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %value Location 0
                OpMemberDecorate %MyStruct 0 Offset 0
                OpDecorate %_arr_float_uint_10 ArrayStride 4
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+      %value = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
           %6 = OpTypeFunction %int
       %int_1 = OpConstant %int 1
@@ -52,9 +51,9 @@
          %40 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %mat3v3float = OpTypeMatrix %v3float 3
          %43 = OpConstantComposite %MyStruct %float_1
-         %50 = OpTypeFunction %void %v4float
+         %50 = OpTypeFunction %v4float
     %float_0 = OpConstant %float 0
-         %58 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
+         %54 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
     %ret_i32 = OpFunction %int None %6
           %9 = OpLabel
                OpReturnValue %int_1
@@ -86,14 +85,13 @@
          %49 = OpFunctionCall %_arr_float_uint_10 %ret_MyArray
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %50
-%tint_symbol = OpFunctionParameter %v4float
-         %53 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+ %main_inner = OpFunction %v4float None %50
+         %52 = OpLabel
+               OpReturnValue %54
                OpFunctionEnd
        %main = OpFunction %void None %31
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %tint_symbol_2 %58
+         %56 = OpLabel
+         %57 = OpFunctionCall %v4float %main_inner
+               OpStore %value %57
                OpReturn
                OpFunctionEnd
diff --git a/test/var/inferred/function-var.wgsl.expected.spvasm b/test/var/inferred/function-var.wgsl.expected.spvasm
index 94534db..541efd3 100644
--- a/test/var/inferred/function-var.wgsl.expected.spvasm
+++ b/test/var/inferred/function-var.wgsl.expected.spvasm
@@ -1,13 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 93
+; Bound: 92
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %value
                OpExecutionMode %main OriginUpperLeft
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %value "value"
                OpName %ret_i32 "ret_i32"
                OpName %ret_u32 "ret_u32"
                OpName %ret_f32 "ret_f32"
@@ -31,17 +31,16 @@
                OpName %v13 "v13"
                OpName %v14 "v14"
                OpName %v15 "v15"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %value Location 0
                OpMemberDecorate %MyStruct 0 Offset 0
                OpDecorate %_arr_float_uint_10 ArrayStride 4
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+      %value = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
           %6 = OpTypeFunction %int
       %int_1 = OpConstant %int 1
@@ -83,9 +82,9 @@
          %67 = OpConstantComposite %MyStruct %float_1
 %_ptr_Function_MyStruct = OpTypePointer Function %MyStruct
 %_ptr_Function__arr_float_uint_10 = OpTypePointer Function %_arr_float_uint_10
-         %84 = OpTypeFunction %void %v4float
+         %84 = OpTypeFunction %v4float
     %float_0 = OpConstant %float 0
-         %92 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
+         %88 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
     %ret_i32 = OpFunction %int None %6
           %9 = OpLabel
                OpReturnValue %int_1
@@ -150,14 +149,13 @@
                OpStore %v15 %82
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %84
-%tint_symbol = OpFunctionParameter %v4float
-         %87 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+ %main_inner = OpFunction %v4float None %84
+         %86 = OpLabel
+               OpReturnValue %88
                OpFunctionEnd
        %main = OpFunction %void None %31
-         %89 = OpLabel
-         %90 = OpFunctionCall %void %tint_symbol_2 %92
+         %90 = OpLabel
+         %91 = OpFunctionCall %v4float %main_inner
+               OpStore %value %91
                OpReturn
                OpFunctionEnd
diff --git a/test/var/inferred/global-let.wgsl.expected.spvasm b/test/var/inferred/global-let.wgsl.expected.spvasm
index ecf6016..6bbf8ad 100644
--- a/test/var/inferred/global-let.wgsl.expected.spvasm
+++ b/test/var/inferred/global-let.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %value
                OpExecutionMode %main OriginUpperLeft
+               OpName %value "value"
                OpName %v1 "v1"
                OpName %v2 "v2"
                OpName %v3 "v3"
@@ -18,18 +19,20 @@
                OpMemberName %MyStruct 0 "f1"
                OpName %v8 "v8"
                OpName %v9 "v9"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %value Location 0
                OpMemberDecorate %MyStruct 0 Offset 0
                OpDecorate %_arr_float_uint_10 ArrayStride 4
-               OpDecorate %tint_symbol_1 Location 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
          %v1 = OpConstant %int 1
        %uint = OpTypeInt 32 0
          %v2 = OpConstant %uint 1
-      %float = OpTypeFloat 32
          %v3 = OpConstant %float 1
       %v3int = OpTypeVector %int 3
          %v4 = OpConstantComposite %v3int %v1 %v1 %v1
@@ -44,23 +47,18 @@
     %uint_10 = OpConstant %uint 10
 %_arr_float_uint_10 = OpTypeArray %float %uint_10
          %v9 = OpConstantNull %_arr_float_uint_10
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-         %23 = OpConstantNull %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %23
-       %void = OpTypeVoid
-         %24 = OpTypeFunction %void %v4float
-         %29 = OpTypeFunction %void
+         %24 = OpTypeFunction %v4float
     %float_0 = OpConstant %float 0
-         %34 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
-%tint_symbol_2 = OpFunction %void None %24
-%tint_symbol = OpFunctionParameter %v4float
-         %28 = OpLabel
-               OpStore %tint_symbol_1 %tint_symbol
-               OpReturn
+         %28 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
+       %void = OpTypeVoid
+         %29 = OpTypeFunction %void
+ %main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+               OpReturnValue %28
                OpFunctionEnd
        %main = OpFunction %void None %29
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %tint_symbol_2 %34
+         %32 = OpLabel
+         %33 = OpFunctionCall %v4float %main_inner
+               OpStore %value %33
                OpReturn
                OpFunctionEnd
diff --git a/test/var/initialization/workgroup/array.wgsl.expected.spvasm b/test/var/initialization/workgroup/array.wgsl.expected.spvasm
index 0633819..287835b 100644
--- a/test/var/initialization/workgroup/array.wgsl.expected.spvasm
+++ b/test/var/initialization/workgroup/array.wgsl.expected.spvasm
@@ -1,28 +1,30 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %local_invocation_index_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %v "v"
-               OpName %tint_symbol "tint_symbol"
-               OpName %main "main"
+               OpName %main_inner "main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %idx "idx"
+               OpName %main "main"
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
                OpDecorate %_arr_int_uint_3 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
-        %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
+        %int = OpTypeInt 32 1
      %uint_3 = OpConstant %uint 3
 %_arr_int_uint_3 = OpTypeArray %int %uint_3
 %_ptr_Workgroup__arr_int_uint_3 = OpTypePointer Workgroup %_arr_int_uint_3
           %v = OpVariable %_ptr_Workgroup__arr_int_uint_3 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
-          %9 = OpTypeFunction %void
+          %9 = OpTypeFunction %void %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
          %16 = OpConstantNull %uint
        %bool = OpTypeBool
@@ -31,11 +33,12 @@
      %uint_1 = OpConstant %uint 1
      %uint_2 = OpConstant %uint 2
    %uint_264 = OpConstant %uint 264
-       %main = OpFunction %void None %9
-         %12 = OpLabel
+         %39 = OpTypeFunction %void
+ %main_inner = OpFunction %void None %9
+%local_invocation_index = OpFunctionParameter %uint
+         %13 = OpLabel
         %idx = OpVariable %_ptr_Function_uint Function %16
-         %13 = OpLoad %uint %tint_symbol
-               OpStore %idx %13
+               OpStore %idx %local_invocation_index
                OpBranch %17
          %17 = OpLabel
                OpLoopMerge %18 %19 None
@@ -63,3 +66,9 @@
          %38 = OpLoad %_arr_int_uint_3 %v
                OpReturn
                OpFunctionEnd
+       %main = OpFunction %void None %39
+         %41 = OpLabel
+         %43 = OpLoad %uint %local_invocation_index_1
+         %42 = OpFunctionCall %void %main_inner %43
+               OpReturn
+               OpFunctionEnd
diff --git a/test/var/initialization/workgroup/matrix.wgsl.expected.spvasm b/test/var/initialization/workgroup/matrix.wgsl.expected.spvasm
index 93dfa40..f4f4ed4 100644
--- a/test/var/initialization/workgroup/matrix.wgsl.expected.spvasm
+++ b/test/var/initialization/workgroup/matrix.wgsl.expected.spvasm
@@ -1,33 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 19
+; Bound: 25
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main"
+               OpEntryPoint GLCompute %main "main" %local_invocation_index_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %v "v"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
       %float = OpTypeFloat 32
     %v3float = OpTypeVector %float 3
 %mat2v3float = OpTypeMatrix %v3float 2
 %_ptr_Workgroup_mat2v3float = OpTypePointer Workgroup %mat2v3float
           %v = OpVariable %_ptr_Workgroup_mat2v3float Workgroup
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
-          %9 = OpTypeFunction %void
-         %13 = OpConstantNull %mat2v3float
+          %9 = OpTypeFunction %void %uint
+         %14 = OpConstantNull %mat2v3float
      %uint_2 = OpConstant %uint 2
    %uint_264 = OpConstant %uint 264
-       %main = OpFunction %void None %9
-         %12 = OpLabel
-               OpStore %v %13
+         %20 = OpTypeFunction %void
+ %main_inner = OpFunction %void None %9
+%local_invocation_index = OpFunctionParameter %uint
+         %13 = OpLabel
+               OpStore %v %14
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %18 = OpLoad %mat2v3float %v
+         %19 = OpLoad %mat2v3float %v
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %20
+         %22 = OpLabel
+         %24 = OpLoad %uint %local_invocation_index_1
+         %23 = OpFunctionCall %void %main_inner %24
                OpReturn
                OpFunctionEnd
diff --git a/test/var/initialization/workgroup/scalar.wgsl.expected.spvasm b/test/var/initialization/workgroup/scalar.wgsl.expected.spvasm
index 3507eb6..5d37379 100644
--- a/test/var/initialization/workgroup/scalar.wgsl.expected.spvasm
+++ b/test/var/initialization/workgroup/scalar.wgsl.expected.spvasm
@@ -1,31 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 17
+; Bound: 23
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main"
+               OpEntryPoint GLCompute %main "main" %local_invocation_index_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %v "v"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
 %_ptr_Workgroup_int = OpTypePointer Workgroup %int
           %v = OpVariable %_ptr_Workgroup_int Workgroup
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
-          %7 = OpTypeFunction %void
-         %11 = OpConstantNull %int
+          %7 = OpTypeFunction %void %uint
+         %12 = OpConstantNull %int
      %uint_2 = OpConstant %uint 2
    %uint_264 = OpConstant %uint 264
-       %main = OpFunction %void None %7
-         %10 = OpLabel
-               OpStore %v %11
+         %18 = OpTypeFunction %void
+ %main_inner = OpFunction %void None %7
+%local_invocation_index = OpFunctionParameter %uint
+         %11 = OpLabel
+               OpStore %v %12
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %16 = OpLoad %int %v
+         %17 = OpLoad %int %v
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %18
+         %20 = OpLabel
+         %22 = OpLoad %uint %local_invocation_index_1
+         %21 = OpFunctionCall %void %main_inner %22
                OpReturn
                OpFunctionEnd
diff --git a/test/var/initialization/workgroup/struct.wgsl.expected.spvasm b/test/var/initialization/workgroup/struct.wgsl.expected.spvasm
index 9a3ca9e..5ff4989 100644
--- a/test/var/initialization/workgroup/struct.wgsl.expected.spvasm
+++ b/test/var/initialization/workgroup/struct.wgsl.expected.spvasm
@@ -1,38 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 19
+; Bound: 25
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main"
+               OpEntryPoint GLCompute %main "main" %local_invocation_index_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %S "S"
                OpMemberName %S 0 "a"
                OpMemberName %S 1 "b"
                OpName %v "v"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %main "main"
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
                OpMemberDecorate %S 0 Offset 0
                OpMemberDecorate %S 1 Offset 4
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
       %float = OpTypeFloat 32
           %S = OpTypeStruct %int %float
 %_ptr_Workgroup_S = OpTypePointer Workgroup %S
           %v = OpVariable %_ptr_Workgroup_S Workgroup
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
-          %9 = OpTypeFunction %void
-         %13 = OpConstantNull %S
+          %9 = OpTypeFunction %void %uint
+         %14 = OpConstantNull %S
      %uint_2 = OpConstant %uint 2
    %uint_264 = OpConstant %uint 264
-       %main = OpFunction %void None %9
-         %12 = OpLabel
-               OpStore %v %13
+         %20 = OpTypeFunction %void
+ %main_inner = OpFunction %void None %9
+%local_invocation_index = OpFunctionParameter %uint
+         %13 = OpLabel
+               OpStore %v %14
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %18 = OpLoad %S %v
+         %19 = OpLoad %S %v
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %20
+         %22 = OpLabel
+         %24 = OpLoad %uint %local_invocation_index_1
+         %23 = OpFunctionCall %void %main_inner %24
                OpReturn
                OpFunctionEnd
diff --git a/test/var/initialization/workgroup/vector.wgsl.expected.spvasm b/test/var/initialization/workgroup/vector.wgsl.expected.spvasm
index bc1cdc1..d4c5546 100644
--- a/test/var/initialization/workgroup/vector.wgsl.expected.spvasm
+++ b/test/var/initialization/workgroup/vector.wgsl.expected.spvasm
@@ -1,32 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 18
+; Bound: 24
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main"
+               OpEntryPoint GLCompute %main "main" %local_invocation_index_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %v "v"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
 %_ptr_Workgroup_v3int = OpTypePointer Workgroup %v3int
           %v = OpVariable %_ptr_Workgroup_v3int Workgroup
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
-          %8 = OpTypeFunction %void
-         %12 = OpConstantNull %v3int
+          %8 = OpTypeFunction %void %uint
+         %13 = OpConstantNull %v3int
      %uint_2 = OpConstant %uint 2
    %uint_264 = OpConstant %uint 264
-       %main = OpFunction %void None %8
-         %11 = OpLabel
-               OpStore %v %12
+         %19 = OpTypeFunction %void
+ %main_inner = OpFunction %void None %8
+%local_invocation_index = OpFunctionParameter %uint
+         %12 = OpLabel
+               OpStore %v %13
                OpControlBarrier %uint_2 %uint_2 %uint_264
-         %17 = OpLoad %v3int %v
+         %18 = OpLoad %v3int %v
+               OpReturn
+               OpFunctionEnd
+       %main = OpFunction %void None %19
+         %21 = OpLabel
+         %23 = OpLoad %uint %local_invocation_index_1
+         %22 = OpFunctionCall %void %main_inner %23
                OpReturn
                OpFunctionEnd
diff --git a/test/var/uses/workgroup.wgsl.expected.spvasm b/test/var/uses/workgroup.wgsl.expected.spvasm
index 855e0ad..e4669d1 100644
--- a/test/var/uses/workgroup.wgsl.expected.spvasm
+++ b/test/var/uses/workgroup.wgsl.expected.spvasm
@@ -1,52 +1,59 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 72
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main1 "main1"
-               OpEntryPoint GLCompute %main2 "main2"
-               OpEntryPoint GLCompute %main3 "main3"
+               OpEntryPoint GLCompute %main1 "main1" %local_invocation_index_3
+               OpEntryPoint GLCompute %main2 "main2" %local_invocation_index_1_1
+               OpEntryPoint GLCompute %main3 "main3" %local_invocation_index_2_1
                OpEntryPoint GLCompute %main4 "main4"
                OpExecutionMode %main1 LocalSize 1 1 1
                OpExecutionMode %main2 LocalSize 1 1 1
                OpExecutionMode %main3 LocalSize 1 1 1
                OpExecutionMode %main4 LocalSize 1 1 1
+               OpName %local_invocation_index_3 "local_invocation_index_3"
+               OpName %local_invocation_index_1_1 "local_invocation_index_1_1"
+               OpName %local_invocation_index_2_1 "local_invocation_index_2_1"
                OpName %a "a"
                OpName %b "b"
                OpName %c "c"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %uses_a "uses_a"
                OpName %uses_b "uses_b"
                OpName %uses_a_and_b "uses_a_and_b"
                OpName %no_uses "no_uses"
                OpName %outer "outer"
+               OpName %main1_inner "main1_inner"
+               OpName %local_invocation_index "local_invocation_index"
                OpName %main1 "main1"
+               OpName %main2_inner "main2_inner"
+               OpName %local_invocation_index_1 "local_invocation_index_1"
                OpName %main2 "main2"
+               OpName %main3_inner "main3_inner"
+               OpName %local_invocation_index_2 "local_invocation_index_2"
                OpName %main3 "main3"
                OpName %main4 "main4"
-               OpDecorate %tint_symbol BuiltIn LocalInvocationIndex
-               OpDecorate %tint_symbol_1 BuiltIn LocalInvocationIndex
-               OpDecorate %tint_symbol_2 BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_3 BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_1_1 BuiltIn LocalInvocationIndex
+               OpDecorate %local_invocation_index_2_1 BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+%_ptr_Input_uint = OpTypePointer Input %uint
+%local_invocation_index_3 = OpVariable %_ptr_Input_uint Input
+%local_invocation_index_1_1 = OpVariable %_ptr_Input_uint Input
+%local_invocation_index_2_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
 %_ptr_Workgroup_int = OpTypePointer Workgroup %int
           %a = OpVariable %_ptr_Workgroup_int Workgroup
           %b = OpVariable %_ptr_Workgroup_int Workgroup
           %c = OpVariable %_ptr_Workgroup_int Workgroup
-       %uint = OpTypeInt 32 0
-%_ptr_Input_uint = OpTypePointer Input %uint
-%tint_symbol = OpVariable %_ptr_Input_uint Input
-%tint_symbol_1 = OpVariable %_ptr_Input_uint Input
-%tint_symbol_2 = OpVariable %_ptr_Input_uint Input
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
       %int_2 = OpConstant %int 2
       %int_0 = OpConstant %int 0
-         %37 = OpConstantNull %int
+         %35 = OpTypeFunction %void %uint
+         %39 = OpConstantNull %int
      %uint_2 = OpConstant %uint 2
    %uint_264 = OpConstant %uint 264
      %int_42 = OpConstant %int 42
@@ -84,33 +91,54 @@
          %34 = OpFunctionCall %void %no_uses
                OpReturn
                OpFunctionEnd
-      %main1 = OpFunction %void None %11
-         %36 = OpLabel
-               OpStore %a %37
+%main1_inner = OpFunction %void None %35
+%local_invocation_index = OpFunctionParameter %uint
+         %38 = OpLabel
+               OpStore %a %39
                OpControlBarrier %uint_2 %uint_2 %uint_264
                OpStore %a %int_42
-         %42 = OpFunctionCall %void %uses_a
+         %44 = OpFunctionCall %void %uses_a
+               OpReturn
+               OpFunctionEnd
+      %main1 = OpFunction %void None %11
+         %46 = OpLabel
+         %48 = OpLoad %uint %local_invocation_index_3
+         %47 = OpFunctionCall %void %main1_inner %48
+               OpReturn
+               OpFunctionEnd
+%main2_inner = OpFunction %void None %35
+%local_invocation_index_1 = OpFunctionParameter %uint
+         %51 = OpLabel
+               OpStore %b %39
+               OpControlBarrier %uint_2 %uint_2 %uint_264
+               OpStore %b %int_7
+         %54 = OpFunctionCall %void %uses_b
                OpReturn
                OpFunctionEnd
       %main2 = OpFunction %void None %11
-         %44 = OpLabel
-               OpStore %b %37
+         %56 = OpLabel
+         %58 = OpLoad %uint %local_invocation_index_1_1
+         %57 = OpFunctionCall %void %main2_inner %58
+               OpReturn
+               OpFunctionEnd
+%main3_inner = OpFunction %void None %35
+%local_invocation_index_2 = OpFunctionParameter %uint
+         %61 = OpLabel
+               OpStore %a %39
+               OpStore %b %39
                OpControlBarrier %uint_2 %uint_2 %uint_264
-               OpStore %b %int_7
-         %47 = OpFunctionCall %void %uses_b
+         %63 = OpFunctionCall %void %outer
+         %64 = OpFunctionCall %void %no_uses
                OpReturn
                OpFunctionEnd
       %main3 = OpFunction %void None %11
-         %49 = OpLabel
-               OpStore %a %37
-               OpStore %b %37
-               OpControlBarrier %uint_2 %uint_2 %uint_264
-         %51 = OpFunctionCall %void %outer
-         %52 = OpFunctionCall %void %no_uses
+         %66 = OpLabel
+         %68 = OpLoad %uint %local_invocation_index_2_1
+         %67 = OpFunctionCall %void %main3_inner %68
                OpReturn
                OpFunctionEnd
       %main4 = OpFunction %void None %11
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %no_uses
+         %70 = OpLabel
+         %71 = OpFunctionCall %void %no_uses
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.spvasm.expected.spvasm b/test/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.spvasm.expected.spvasm
index a0529db..d9ecccd 100644
--- a/test/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.spvasm.expected.spvasm
@@ -5,60 +5,60 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2 %tint_symbol_3
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %position_param_1 %gl_Position_1 %frag_color_1_1 %vertex_point_size
+               OpName %position_param_1 "position_param_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %frag_color_1_1 "frag_color_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %position "position"
                OpName %frag_color "frag_color"
                OpName %block0 "block0"
                OpMemberName %block0 0 "in_color"
                OpName %x_8 "x_8"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
                OpMemberName %main_out 1 "frag_color_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %position_param "position_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %position_param_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %frag_color_1_1 Location 0
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %block0 Block
                OpMemberDecorate %block0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 BuiltIn Position
-               OpDecorate %tint_symbol_3 Location 0
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%position_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
+%frag_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Output_float = OpTypePointer Output %float
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %8
- %frag_color = OpVariable %_ptr_Private_v4float Private %8
+   %position = OpVariable %_ptr_Private_v4float Private %7
+ %frag_color = OpVariable %_ptr_Private_v4float Private %7
      %block0 = OpTypeStruct %v4float
 %_ptr_Uniform_block0 = OpTypePointer Uniform %block0
         %x_8 = OpVariable %_ptr_Uniform_block0 Uniform
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %8
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %8
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_0 = OpConstant %uint 0
 %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
    %main_out = OpTypeStruct %v4float %v4float
-         %29 = OpTypeFunction %void %main_out
+         %29 = OpTypeFunction %main_out %v4float
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
@@ -69,24 +69,24 @@
                OpStore %frag_color %28
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %29
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %29
+%position_param = OpFunctionParameter %v4float
          %33 = OpLabel
-         %34 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %34
-         %35 = OpCompositeExtract %v4float %tint_symbol_1 1
-               OpStore %tint_symbol_3 %35
-               OpReturn
+               OpStore %position %position_param
+         %34 = OpFunctionCall %void %main_1
+         %35 = OpLoad %v4float %gl_Position
+         %36 = OpLoad %v4float %frag_color
+         %37 = OpCompositeConstruct %main_out %35 %36
+               OpReturnValue %37
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %37 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %39 = OpLoad %v4float %tint_symbol
-               OpStore %position %39
-         %40 = OpFunctionCall %void %main_1
-         %42 = OpLoad %v4float %gl_Position
-         %43 = OpLoad %v4float %frag_color
-         %44 = OpCompositeConstruct %main_out %42 %43
-         %41 = OpFunctionCall %void %tint_symbol_4 %44
+         %39 = OpLabel
+         %41 = OpLoad %v4float %position_param_1
+         %40 = OpFunctionCall %main_out %main_inner %41
+         %42 = OpCompositeExtract %v4float %40 0
+               OpStore %gl_Position_1 %42
+         %43 = OpCompositeExtract %v4float %40 1
+               OpStore %frag_color_1_1 %43
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.wgsl.expected.spvasm b/test/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.wgsl.expected.spvasm
index a0529db..d9ecccd 100644
--- a/test/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.wgsl.expected.spvasm
@@ -5,60 +5,60 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2 %tint_symbol_3
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %position_param_1 %gl_Position_1 %frag_color_1_1 %vertex_point_size
+               OpName %position_param_1 "position_param_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %frag_color_1_1 "frag_color_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %position "position"
                OpName %frag_color "frag_color"
                OpName %block0 "block0"
                OpMemberName %block0 0 "in_color"
                OpName %x_8 "x_8"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
                OpMemberName %main_out 1 "frag_color_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %position_param "position_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %position_param_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %frag_color_1_1 Location 0
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %block0 Block
                OpMemberDecorate %block0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 BuiltIn Position
-               OpDecorate %tint_symbol_3 Location 0
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%position_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
+%frag_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Output_float = OpTypePointer Output %float
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %8
- %frag_color = OpVariable %_ptr_Private_v4float Private %8
+   %position = OpVariable %_ptr_Private_v4float Private %7
+ %frag_color = OpVariable %_ptr_Private_v4float Private %7
      %block0 = OpTypeStruct %v4float
 %_ptr_Uniform_block0 = OpTypePointer Uniform %block0
         %x_8 = OpVariable %_ptr_Uniform_block0 Uniform
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %8
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %8
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
      %uint_0 = OpConstant %uint 0
 %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
    %main_out = OpTypeStruct %v4float %v4float
-         %29 = OpTypeFunction %void %main_out
+         %29 = OpTypeFunction %main_out %v4float
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
@@ -69,24 +69,24 @@
                OpStore %frag_color %28
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %29
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %29
+%position_param = OpFunctionParameter %v4float
          %33 = OpLabel
-         %34 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %34
-         %35 = OpCompositeExtract %v4float %tint_symbol_1 1
-               OpStore %tint_symbol_3 %35
-               OpReturn
+               OpStore %position %position_param
+         %34 = OpFunctionCall %void %main_1
+         %35 = OpLoad %v4float %gl_Position
+         %36 = OpLoad %v4float %frag_color
+         %37 = OpCompositeConstruct %main_out %35 %36
+               OpReturnValue %37
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %37 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %39 = OpLoad %v4float %tint_symbol
-               OpStore %position %39
-         %40 = OpFunctionCall %void %main_1
-         %42 = OpLoad %v4float %gl_Position
-         %43 = OpLoad %v4float %frag_color
-         %44 = OpCompositeConstruct %main_out %42 %43
-         %41 = OpFunctionCall %void %tint_symbol_4 %44
+         %39 = OpLabel
+         %41 = OpLoad %v4float %position_param_1
+         %40 = OpFunctionCall %main_out %main_inner %41
+         %42 = OpCompositeExtract %v4float %40 0
+               OpStore %gl_Position_1 %42
+         %43 = OpCompositeExtract %v4float %40 1
+               OpStore %frag_color_1_1 %43
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.spvasm.expected.spvasm b/test/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.spvasm.expected.spvasm
index dd25b21..227546a 100644
--- a/test/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.spvasm.expected.spvasm
@@ -5,55 +5,55 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %frag_color_param_1 %final_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %frag_color_param_1 "frag_color_param_1"
+               OpName %final_color_1_1 "final_color_1_1"
                OpName %final_color "final_color"
                OpName %frag_color "frag_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "final_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %frag_color_param "frag_color_param"
                OpName %main "main"
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %frag_color_param_1 Location 0
+               OpDecorate %final_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%final_color = OpVariable %_ptr_Private_v4float Private %5
- %frag_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%frag_color_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%final_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%final_color = OpVariable %_ptr_Private_v4float Private %7
+ %frag_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %16 = OpTypeFunction %void %main_out
+         %16 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
          %15 = OpLoad %v4float %frag_color
                OpStore %final_color %15
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %16
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %16
+%frag_color_param = OpFunctionParameter %v4float
          %20 = OpLabel
-         %21 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %21
-               OpReturn
+               OpStore %frag_color %frag_color_param
+         %21 = OpFunctionCall %void %main_1
+         %22 = OpLoad %v4float %final_color
+         %23 = OpCompositeConstruct %main_out %22
+               OpReturnValue %23
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %23 = OpLabel
-         %24 = OpLoad %v4float %tint_symbol
-               OpStore %frag_color %24
-         %25 = OpFunctionCall %void %main_1
-         %27 = OpLoad %v4float %final_color
-         %28 = OpCompositeConstruct %main_out %27
-         %26 = OpFunctionCall %void %tint_symbol_3 %28
+         %25 = OpLabel
+         %27 = OpLoad %v4float %frag_color_param_1
+         %26 = OpFunctionCall %main_out %main_inner %27
+         %28 = OpCompositeExtract %v4float %26 0
+               OpStore %final_color_1_1 %28
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.wgsl.expected.spvasm b/test/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.wgsl.expected.spvasm
index dd25b21..227546a 100644
--- a/test/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.wgsl.expected.spvasm
@@ -5,55 +5,55 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %frag_color_param_1 %final_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %frag_color_param_1 "frag_color_param_1"
+               OpName %final_color_1_1 "final_color_1_1"
                OpName %final_color "final_color"
                OpName %frag_color "frag_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "final_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %frag_color_param "frag_color_param"
                OpName %main "main"
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %frag_color_param_1 Location 0
+               OpDecorate %final_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%final_color = OpVariable %_ptr_Private_v4float Private %5
- %frag_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%frag_color_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%final_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%final_color = OpVariable %_ptr_Private_v4float Private %7
+ %frag_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %16 = OpTypeFunction %void %main_out
+         %16 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
          %15 = OpLoad %v4float %frag_color
                OpStore %final_color %15
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %16
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %16
+%frag_color_param = OpFunctionParameter %v4float
          %20 = OpLabel
-         %21 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %21
-               OpReturn
+               OpStore %frag_color %frag_color_param
+         %21 = OpFunctionCall %void %main_1
+         %22 = OpLoad %v4float %final_color
+         %23 = OpCompositeConstruct %main_out %22
+               OpReturnValue %23
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %23 = OpLabel
-         %24 = OpLoad %v4float %tint_symbol
-               OpStore %frag_color %24
-         %25 = OpFunctionCall %void %main_1
-         %27 = OpLoad %v4float %final_color
-         %28 = OpCompositeConstruct %main_out %27
-         %26 = OpFunctionCall %void %tint_symbol_3 %28
+         %25 = OpLabel
+         %27 = OpLoad %v4float %frag_color_param_1
+         %26 = OpFunctionCall %main_out %main_inner %27
+         %28 = OpCompositeExtract %v4float %26 0
+               OpStore %final_color_1_1 %28
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/combined_operations/negintdivand/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/combined_operations/negintdivand/0-opt.spvasm.expected.spvasm
index ee8e353..3c0d01a 100644
--- a/test/vk-gl-cts/combined_operations/negintdivand/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/combined_operations/negintdivand/0-opt.spvasm.expected.spvasm
@@ -5,47 +5,47 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2 %tint_symbol_3
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %position_param_1 %gl_Position_1 %frag_color_1_1 %vertex_point_size
+               OpName %position_param_1 "position_param_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %frag_color_1_1 "frag_color_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %position "position"
                OpName %frag_color "frag_color"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
                OpMemberName %main_out 1 "frag_color_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %position_param "position_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 BuiltIn Position
-               OpDecorate %tint_symbol_3 Location 1
+               OpDecorate %position_param_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %frag_color_1_1 Location 1
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %8
- %frag_color = OpVariable %_ptr_Private_v4float Private %8
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%position_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %8
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %8
+          %7 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
+%frag_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Output_float = OpTypePointer Output %float
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %position = OpVariable %_ptr_Private_v4float Private %7
+ %frag_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
   %float_0_5 = OpConstant %float 0.5
    %main_out = OpTypeStruct %v4float %v4float
-         %24 = OpTypeFunction %void %main_out
+         %24 = OpTypeFunction %main_out %v4float
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %16
          %19 = OpLabel
@@ -56,24 +56,24 @@
                OpStore %frag_color %23
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %24
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %24
+%position_param = OpFunctionParameter %v4float
          %28 = OpLabel
-         %29 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %29
-         %30 = OpCompositeExtract %v4float %tint_symbol_1 1
-               OpStore %tint_symbol_3 %30
-               OpReturn
+               OpStore %position %position_param
+         %29 = OpFunctionCall %void %main_1
+         %30 = OpLoad %v4float %gl_Position
+         %31 = OpLoad %v4float %frag_color
+         %32 = OpCompositeConstruct %main_out %30 %31
+               OpReturnValue %32
                OpFunctionEnd
        %main = OpFunction %void None %16
-         %32 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %34 = OpLoad %v4float %tint_symbol
-               OpStore %position %34
-         %35 = OpFunctionCall %void %main_1
-         %37 = OpLoad %v4float %gl_Position
-         %38 = OpLoad %v4float %frag_color
-         %39 = OpCompositeConstruct %main_out %37 %38
-         %36 = OpFunctionCall %void %tint_symbol_4 %39
+         %34 = OpLabel
+         %36 = OpLoad %v4float %position_param_1
+         %35 = OpFunctionCall %main_out %main_inner %36
+         %37 = OpCompositeExtract %v4float %35 0
+               OpStore %gl_Position_1 %37
+         %38 = OpCompositeExtract %v4float %35 1
+               OpStore %frag_color_1_1 %38
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/combined_operations/negintdivand/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/combined_operations/negintdivand/0-opt.wgsl.expected.spvasm
index ee8e353..3c0d01a 100644
--- a/test/vk-gl-cts/combined_operations/negintdivand/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/combined_operations/negintdivand/0-opt.wgsl.expected.spvasm
@@ -5,47 +5,47 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2 %tint_symbol_3
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %position_param_1 %gl_Position_1 %frag_color_1_1 %vertex_point_size
+               OpName %position_param_1 "position_param_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %frag_color_1_1 "frag_color_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %position "position"
                OpName %frag_color "frag_color"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
                OpMemberName %main_out 1 "frag_color_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %position_param "position_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 BuiltIn Position
-               OpDecorate %tint_symbol_3 Location 1
+               OpDecorate %position_param_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %frag_color_1_1 Location 1
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %8
- %frag_color = OpVariable %_ptr_Private_v4float Private %8
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%position_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %8
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %8
+          %7 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
+%frag_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Output_float = OpTypePointer Output %float
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %position = OpVariable %_ptr_Private_v4float Private %7
+ %frag_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
   %float_0_5 = OpConstant %float 0.5
    %main_out = OpTypeStruct %v4float %v4float
-         %24 = OpTypeFunction %void %main_out
+         %24 = OpTypeFunction %main_out %v4float
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %16
          %19 = OpLabel
@@ -56,24 +56,24 @@
                OpStore %frag_color %23
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %24
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %24
+%position_param = OpFunctionParameter %v4float
          %28 = OpLabel
-         %29 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %29
-         %30 = OpCompositeExtract %v4float %tint_symbol_1 1
-               OpStore %tint_symbol_3 %30
-               OpReturn
+               OpStore %position %position_param
+         %29 = OpFunctionCall %void %main_1
+         %30 = OpLoad %v4float %gl_Position
+         %31 = OpLoad %v4float %frag_color
+         %32 = OpCompositeConstruct %main_out %30 %31
+               OpReturnValue %32
                OpFunctionEnd
        %main = OpFunction %void None %16
-         %32 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %34 = OpLoad %v4float %tint_symbol
-               OpStore %position %34
-         %35 = OpFunctionCall %void %main_1
-         %37 = OpLoad %v4float %gl_Position
-         %38 = OpLoad %v4float %frag_color
-         %39 = OpCompositeConstruct %main_out %37 %38
-         %36 = OpFunctionCall %void %tint_symbol_4 %39
+         %34 = OpLabel
+         %36 = OpLoad %v4float %position_param_1
+         %35 = OpFunctionCall %main_out %main_inner %36
+         %37 = OpCompositeExtract %v4float %35 0
+               OpStore %gl_Position_1 %37
+         %38 = OpCompositeExtract %v4float %35 1
+               OpStore %frag_color_1_1 %38
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/combined_operations/negintdivand/1.spvasm.expected.spvasm b/test/vk-gl-cts/combined_operations/negintdivand/1.spvasm.expected.spvasm
index 6d6715e..a53c84d 100644
--- a/test/vk-gl-cts/combined_operations/negintdivand/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/combined_operations/negintdivand/1.spvasm.expected.spvasm
@@ -5,32 +5,32 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %frag_color_param_1 %color_out_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %frag_color_param_1 "frag_color_param_1"
+               OpName %color_out_1_1 "color_out_1_1"
                OpName %frag_color "frag_color"
                OpName %color_out "color_out"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %iv "iv"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "color_out_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %frag_color_param "frag_color_param"
                OpName %main "main"
-               OpDecorate %tint_symbol Location 1
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %frag_color_param_1 Location 1
+               OpDecorate %color_out_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
- %frag_color = OpVariable %_ptr_Private_v4float Private %5
-  %color_out = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%frag_color_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%color_out_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+ %frag_color = OpVariable %_ptr_Private_v4float Private %7
+  %color_out = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -50,7 +50,7 @@
          %44 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %45 = OpConstantComposite %v4float %float_0 %float_1 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-         %46 = OpTypeFunction %void %main_out
+         %46 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
          %iv = OpVariable %_ptr_Function_v2int Function %19
@@ -77,20 +77,20 @@
          %39 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %46
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %46
+%frag_color_param = OpFunctionParameter %v4float
          %50 = OpLabel
-         %51 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %51
-               OpReturn
+               OpStore %frag_color %frag_color_param
+         %51 = OpFunctionCall %void %main_1
+         %52 = OpLoad %v4float %color_out
+         %53 = OpCompositeConstruct %main_out %52
+               OpReturnValue %53
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %53 = OpLabel
-         %54 = OpLoad %v4float %tint_symbol
-               OpStore %frag_color %54
-         %55 = OpFunctionCall %void %main_1
-         %57 = OpLoad %v4float %color_out
-         %58 = OpCompositeConstruct %main_out %57
-         %56 = OpFunctionCall %void %tint_symbol_3 %58
+         %55 = OpLabel
+         %57 = OpLoad %v4float %frag_color_param_1
+         %56 = OpFunctionCall %main_out %main_inner %57
+         %58 = OpCompositeExtract %v4float %56 0
+               OpStore %color_out_1_1 %58
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/combined_operations/negintdivand/1.wgsl.expected.spvasm b/test/vk-gl-cts/combined_operations/negintdivand/1.wgsl.expected.spvasm
index 6d6715e..a53c84d 100644
--- a/test/vk-gl-cts/combined_operations/negintdivand/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/combined_operations/negintdivand/1.wgsl.expected.spvasm
@@ -5,32 +5,32 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %frag_color_param_1 %color_out_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %frag_color_param_1 "frag_color_param_1"
+               OpName %color_out_1_1 "color_out_1_1"
                OpName %frag_color "frag_color"
                OpName %color_out "color_out"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %iv "iv"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "color_out_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %frag_color_param "frag_color_param"
                OpName %main "main"
-               OpDecorate %tint_symbol Location 1
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %frag_color_param_1 Location 1
+               OpDecorate %color_out_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
- %frag_color = OpVariable %_ptr_Private_v4float Private %5
-  %color_out = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%frag_color_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%color_out_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+ %frag_color = OpVariable %_ptr_Private_v4float Private %7
+  %color_out = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -50,7 +50,7 @@
          %44 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %45 = OpConstantComposite %v4float %float_0 %float_1 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-         %46 = OpTypeFunction %void %main_out
+         %46 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
          %iv = OpVariable %_ptr_Function_v2int Function %19
@@ -77,20 +77,20 @@
          %39 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %46
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %46
+%frag_color_param = OpFunctionParameter %v4float
          %50 = OpLabel
-         %51 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %51
-               OpReturn
+               OpStore %frag_color %frag_color_param
+         %51 = OpFunctionCall %void %main_1
+         %52 = OpLoad %v4float %color_out
+         %53 = OpCompositeConstruct %main_out %52
+               OpReturnValue %53
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %53 = OpLabel
-         %54 = OpLoad %v4float %tint_symbol
-               OpStore %frag_color %54
-         %55 = OpFunctionCall %void %main_1
-         %57 = OpLoad %v4float %color_out
-         %58 = OpCompositeConstruct %main_out %57
-         %56 = OpFunctionCall %void %tint_symbol_3 %58
+         %55 = OpLabel
+         %57 = OpLoad %v4float %frag_color_param_1
+         %56 = OpFunctionCall %main_out %main_inner %57
+         %58 = OpCompositeExtract %v4float %56 0
+               OpStore %color_out_1_1 %58
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.spvasm.expected.spvasm
index ee25aef..fbf1c80 100644
--- a/test/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.spvasm.expected.spvasm
@@ -1,31 +1,30 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
          %21 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x "x"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -39,7 +38,7 @@
     %float_0 = OpConstant %float 0
          %29 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %30 = OpTypeFunction %void %main_out
+         %30 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %x = OpVariable %_ptr_Function_int Function %15
@@ -56,18 +55,17 @@
                OpStore %x_GLF_color %29
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %30
-%tint_symbol = OpFunctionParameter %main_out
-         %34 = OpLabel
-         %35 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %35
-               OpReturn
+ %main_inner = OpFunction %main_out None %30
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %main_1
+         %35 = OpLoad %v4float %x_GLF_color
+         %36 = OpCompositeConstruct %main_out %35
+               OpReturnValue %36
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %main_1
-         %40 = OpLoad %v4float %x_GLF_color
-         %41 = OpCompositeConstruct %main_out %40
-         %39 = OpFunctionCall %void %tint_symbol_2 %41
+         %38 = OpLabel
+         %39 = OpFunctionCall %main_out %main_inner
+         %40 = OpCompositeExtract %v4float %39 0
+               OpStore %x_GLF_color_1_1 %40
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.wgsl.expected.spvasm
index ee25aef..fbf1c80 100644
--- a/test/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.wgsl.expected.spvasm
@@ -1,31 +1,30 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
          %21 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x "x"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -39,7 +38,7 @@
     %float_0 = OpConstant %float 0
          %29 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %30 = OpTypeFunction %void %main_out
+         %30 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %x = OpVariable %_ptr_Function_int Function %15
@@ -56,18 +55,17 @@
                OpStore %x_GLF_color %29
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %30
-%tint_symbol = OpFunctionParameter %main_out
-         %34 = OpLabel
-         %35 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %35
-               OpReturn
+ %main_inner = OpFunction %main_out None %30
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %main_1
+         %35 = OpLoad %v4float %x_GLF_color
+         %36 = OpCompositeConstruct %main_out %35
+               OpReturnValue %36
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %main_1
-         %40 = OpLoad %v4float %x_GLF_color
-         %41 = OpCompositeConstruct %main_out %40
-         %39 = OpFunctionCall %void %tint_symbol_2 %41
+         %38 = OpLabel
+         %39 = OpFunctionCall %main_out %main_inner
+         %40 = OpCompositeExtract %v4float %39 0
+               OpStore %x_GLF_color_1_1 %40
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.spvasm.expected.spvasm
index 18ca5d5..9670704 100644
--- a/test/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 177
+; Bound: 176
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_11 "x_11"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_24 "x_24"
                OpName %x_68 "x_68"
@@ -33,8 +33,7 @@
                OpName %x_93_phi "x_93_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
                OpName %binarySearch_struct_tmp_struct_i1_1_1_ "binarySearch_struct_tmp_struct_i1_1_1_"
                OpName %obj "obj"
@@ -48,26 +47,26 @@
                OpName %x_15_phi "x_15_phi"
                OpName %x_27_phi "x_27_phi"
                OpName %x_128_phi "x_128_phi"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_1 ArrayStride 4
                OpMemberDecorate %tmp_struct 0 Offset 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_11 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -103,9 +102,9 @@
         %103 = OpConstantComposite %v2float %float_1 %float_1
      %uint_2 = OpConstant %uint 2
    %main_out = OpTypeStruct %v4float
-        %123 = OpTypeFunction %void %main_out
+        %123 = OpTypeFunction %main_out
 %_ptr_Function_tmp_struct = OpTypePointer Function %tmp_struct
-        %135 = OpTypeFunction %int %_ptr_Function_tmp_struct
+        %134 = OpTypeFunction %int %_ptr_Function_tmp_struct
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
        %x_24 = OpVariable %_ptr_Function__arr_int_uint_1 Function %22
@@ -248,24 +247,23 @@
          %43 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %123
-%tint_symbol = OpFunctionParameter %main_out
-        %127 = OpLabel
-        %128 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %128
-               OpReturn
+ %main_inner = OpFunction %main_out None %123
+        %126 = OpLabel
+        %127 = OpFunctionCall %void %main_1
+        %128 = OpLoad %v4float %x_GLF_color
+        %129 = OpCompositeConstruct %main_out %128
+               OpReturnValue %129
                OpFunctionEnd
        %main = OpFunction %void None %12
-        %130 = OpLabel
-        %131 = OpFunctionCall %void %main_1
-        %133 = OpLoad %v4float %x_GLF_color
-        %134 = OpCompositeConstruct %main_out %133
-        %132 = OpFunctionCall %void %tint_symbol_2 %134
+        %131 = OpLabel
+        %132 = OpFunctionCall %main_out %main_inner
+        %133 = OpCompositeExtract %v4float %132 0
+               OpStore %x_GLF_color_1_1 %133
                OpReturn
                OpFunctionEnd
-%binarySearch_struct_tmp_struct_i1_1_1_ = OpFunction %int None %135
+%binarySearch_struct_tmp_struct_i1_1_1_ = OpFunction %int None %134
         %obj = OpFunctionParameter %_ptr_Function_tmp_struct
-        %139 = OpLabel
+        %138 = OpLabel
       %x_112 = OpVariable %_ptr_Function_bool Function %27
        %x_16 = OpVariable %_ptr_Function_int Function %30
         %one = OpVariable %_ptr_Function_int Function %30
@@ -278,68 +276,68 @@
   %x_128_phi = OpVariable %_ptr_Function_bool Function %27
                OpStore %x_112 %false
                OpStore %x_114_phi %false
-               OpBranch %147
-        %147 = OpLabel
-               OpLoopMerge %148 %149 None
-               OpBranch %150
-        %150 = OpLabel
-        %154 = OpLoad %bool %x_114_phi
+               OpBranch %146
+        %146 = OpLabel
+               OpLoopMerge %147 %148 None
+               OpBranch %149
+        %149 = OpLabel
+        %153 = OpLoad %bool %x_114_phi
                OpStore %one %int_1
                OpStore %x_15_phi %int_1
-               OpBranch %155
-        %155 = OpLabel
-               OpLoopMerge %156 %157 None
-               OpBranch %158
-        %158 = OpLabel
-        %159 = OpLoad %int %x_15_phi
+               OpBranch %154
+        %154 = OpLabel
+               OpLoopMerge %155 %156 None
+               OpBranch %157
+        %157 = OpLabel
+        %158 = OpLoad %int %x_15_phi
                OpStore %x_27_phi %int_0
-               OpStore %x_128_phi %154
-        %160 = OpSGreaterThan %bool %159 %int_10
-               OpSelectionMerge %161 None
-               OpBranchConditional %160 %162 %163
-        %162 = OpLabel
-               OpBranch %161
-        %163 = OpLabel
-               OpBranch %156
+               OpStore %x_128_phi %153
+        %159 = OpSGreaterThan %bool %158 %int_10
+               OpSelectionMerge %160 None
+               OpBranchConditional %159 %161 %162
         %161 = OpLabel
-        %164 = OpISub %int %159 %int_1
-               OpStore %zero %164
-        %166 = OpAccessChain %_ptr_Function_int %obj %uint_0 %164
-        %167 = OpLoad %int %166
-        %168 = OpIEqual %bool %167 %int_1
-               OpSelectionMerge %169 None
-               OpBranchConditional %168 %170 %169
-        %170 = OpLabel
+               OpBranch %160
+        %162 = OpLabel
+               OpBranch %155
+        %160 = OpLabel
+        %163 = OpISub %int %158 %int_1
+               OpStore %zero %163
+        %165 = OpAccessChain %_ptr_Function_int %obj %uint_0 %163
+        %166 = OpLoad %int %165
+        %167 = OpIEqual %bool %166 %int_1
+               OpSelectionMerge %168 None
+               OpBranchConditional %167 %169 %168
+        %169 = OpLabel
                OpStore %x_112 %true
                OpStore %x_16 %int_1
                OpStore %x_27_phi %int_1
                OpStore %x_128_phi %true
-               OpBranch %156
-        %169 = OpLabel
-               OpStore %one %164
-               OpBranch %157
-        %157 = OpLabel
-               OpStore %x_15_phi %164
                OpBranch %155
+        %168 = OpLabel
+               OpStore %one %163
+               OpBranch %156
         %156 = OpLabel
-        %171 = OpLoad %int %x_27_phi
-               OpStore %x_27 %171
-        %172 = OpLoad %bool %x_128_phi
-        %173 = OpLoad %int %x_27
-               OpStore %x_28_phi %173
-               OpSelectionMerge %174 None
-               OpBranchConditional %172 %175 %174
-        %175 = OpLabel
-               OpBranch %148
+               OpStore %x_15_phi %163
+               OpBranch %154
+        %155 = OpLabel
+        %170 = OpLoad %int %x_27_phi
+               OpStore %x_27 %170
+        %171 = OpLoad %bool %x_128_phi
+        %172 = OpLoad %int %x_27
+               OpStore %x_28_phi %172
+               OpSelectionMerge %173 None
+               OpBranchConditional %171 %174 %173
         %174 = OpLabel
+               OpBranch %147
+        %173 = OpLabel
                OpStore %x_112 %true
                OpStore %x_16 %int_n1
                OpStore %x_28_phi %int_n1
-               OpBranch %148
-        %149 = OpLabel
-               OpStore %x_114_phi %false
                OpBranch %147
         %148 = OpLabel
-        %176 = OpLoad %int %x_28_phi
-               OpReturnValue %176
+               OpStore %x_114_phi %false
+               OpBranch %146
+        %147 = OpLabel
+        %175 = OpLoad %int %x_28_phi
+               OpReturnValue %175
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.wgsl.expected.spvasm
index 18ca5d5..9670704 100644
--- a/test/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 177
+; Bound: 176
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_11 "x_11"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_24 "x_24"
                OpName %x_68 "x_68"
@@ -33,8 +33,7 @@
                OpName %x_93_phi "x_93_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
                OpName %binarySearch_struct_tmp_struct_i1_1_1_ "binarySearch_struct_tmp_struct_i1_1_1_"
                OpName %obj "obj"
@@ -48,26 +47,26 @@
                OpName %x_15_phi "x_15_phi"
                OpName %x_27_phi "x_27_phi"
                OpName %x_128_phi "x_128_phi"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_1 ArrayStride 4
                OpMemberDecorate %tmp_struct 0 Offset 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_11 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -103,9 +102,9 @@
         %103 = OpConstantComposite %v2float %float_1 %float_1
      %uint_2 = OpConstant %uint 2
    %main_out = OpTypeStruct %v4float
-        %123 = OpTypeFunction %void %main_out
+        %123 = OpTypeFunction %main_out
 %_ptr_Function_tmp_struct = OpTypePointer Function %tmp_struct
-        %135 = OpTypeFunction %int %_ptr_Function_tmp_struct
+        %134 = OpTypeFunction %int %_ptr_Function_tmp_struct
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
        %x_24 = OpVariable %_ptr_Function__arr_int_uint_1 Function %22
@@ -248,24 +247,23 @@
          %43 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %123
-%tint_symbol = OpFunctionParameter %main_out
-        %127 = OpLabel
-        %128 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %128
-               OpReturn
+ %main_inner = OpFunction %main_out None %123
+        %126 = OpLabel
+        %127 = OpFunctionCall %void %main_1
+        %128 = OpLoad %v4float %x_GLF_color
+        %129 = OpCompositeConstruct %main_out %128
+               OpReturnValue %129
                OpFunctionEnd
        %main = OpFunction %void None %12
-        %130 = OpLabel
-        %131 = OpFunctionCall %void %main_1
-        %133 = OpLoad %v4float %x_GLF_color
-        %134 = OpCompositeConstruct %main_out %133
-        %132 = OpFunctionCall %void %tint_symbol_2 %134
+        %131 = OpLabel
+        %132 = OpFunctionCall %main_out %main_inner
+        %133 = OpCompositeExtract %v4float %132 0
+               OpStore %x_GLF_color_1_1 %133
                OpReturn
                OpFunctionEnd
-%binarySearch_struct_tmp_struct_i1_1_1_ = OpFunction %int None %135
+%binarySearch_struct_tmp_struct_i1_1_1_ = OpFunction %int None %134
         %obj = OpFunctionParameter %_ptr_Function_tmp_struct
-        %139 = OpLabel
+        %138 = OpLabel
       %x_112 = OpVariable %_ptr_Function_bool Function %27
        %x_16 = OpVariable %_ptr_Function_int Function %30
         %one = OpVariable %_ptr_Function_int Function %30
@@ -278,68 +276,68 @@
   %x_128_phi = OpVariable %_ptr_Function_bool Function %27
                OpStore %x_112 %false
                OpStore %x_114_phi %false
-               OpBranch %147
-        %147 = OpLabel
-               OpLoopMerge %148 %149 None
-               OpBranch %150
-        %150 = OpLabel
-        %154 = OpLoad %bool %x_114_phi
+               OpBranch %146
+        %146 = OpLabel
+               OpLoopMerge %147 %148 None
+               OpBranch %149
+        %149 = OpLabel
+        %153 = OpLoad %bool %x_114_phi
                OpStore %one %int_1
                OpStore %x_15_phi %int_1
-               OpBranch %155
-        %155 = OpLabel
-               OpLoopMerge %156 %157 None
-               OpBranch %158
-        %158 = OpLabel
-        %159 = OpLoad %int %x_15_phi
+               OpBranch %154
+        %154 = OpLabel
+               OpLoopMerge %155 %156 None
+               OpBranch %157
+        %157 = OpLabel
+        %158 = OpLoad %int %x_15_phi
                OpStore %x_27_phi %int_0
-               OpStore %x_128_phi %154
-        %160 = OpSGreaterThan %bool %159 %int_10
-               OpSelectionMerge %161 None
-               OpBranchConditional %160 %162 %163
-        %162 = OpLabel
-               OpBranch %161
-        %163 = OpLabel
-               OpBranch %156
+               OpStore %x_128_phi %153
+        %159 = OpSGreaterThan %bool %158 %int_10
+               OpSelectionMerge %160 None
+               OpBranchConditional %159 %161 %162
         %161 = OpLabel
-        %164 = OpISub %int %159 %int_1
-               OpStore %zero %164
-        %166 = OpAccessChain %_ptr_Function_int %obj %uint_0 %164
-        %167 = OpLoad %int %166
-        %168 = OpIEqual %bool %167 %int_1
-               OpSelectionMerge %169 None
-               OpBranchConditional %168 %170 %169
-        %170 = OpLabel
+               OpBranch %160
+        %162 = OpLabel
+               OpBranch %155
+        %160 = OpLabel
+        %163 = OpISub %int %158 %int_1
+               OpStore %zero %163
+        %165 = OpAccessChain %_ptr_Function_int %obj %uint_0 %163
+        %166 = OpLoad %int %165
+        %167 = OpIEqual %bool %166 %int_1
+               OpSelectionMerge %168 None
+               OpBranchConditional %167 %169 %168
+        %169 = OpLabel
                OpStore %x_112 %true
                OpStore %x_16 %int_1
                OpStore %x_27_phi %int_1
                OpStore %x_128_phi %true
-               OpBranch %156
-        %169 = OpLabel
-               OpStore %one %164
-               OpBranch %157
-        %157 = OpLabel
-               OpStore %x_15_phi %164
                OpBranch %155
+        %168 = OpLabel
+               OpStore %one %163
+               OpBranch %156
         %156 = OpLabel
-        %171 = OpLoad %int %x_27_phi
-               OpStore %x_27 %171
-        %172 = OpLoad %bool %x_128_phi
-        %173 = OpLoad %int %x_27
-               OpStore %x_28_phi %173
-               OpSelectionMerge %174 None
-               OpBranchConditional %172 %175 %174
-        %175 = OpLabel
-               OpBranch %148
+               OpStore %x_15_phi %163
+               OpBranch %154
+        %155 = OpLabel
+        %170 = OpLoad %int %x_27_phi
+               OpStore %x_27 %170
+        %171 = OpLoad %bool %x_128_phi
+        %172 = OpLoad %int %x_27
+               OpStore %x_28_phi %172
+               OpSelectionMerge %173 None
+               OpBranchConditional %171 %174 %173
         %174 = OpLabel
+               OpBranch %147
+        %173 = OpLabel
                OpStore %x_112 %true
                OpStore %x_16 %int_n1
                OpStore %x_28_phi %int_n1
-               OpBranch %148
-        %149 = OpLabel
-               OpStore %x_114_phi %false
                OpBranch %147
         %148 = OpLabel
-        %176 = OpLoad %int %x_28_phi
-               OpReturnValue %176
+               OpStore %x_114_phi %false
+               OpBranch %146
+        %147 = OpLabel
+        %175 = OpLoad %int %x_28_phi
+               OpReturnValue %175
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.spvasm.expected.spvasm
index 7a0c9e6..cb0fe80 100644
--- a/test/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 235
+; Bound: 234
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %QuicksortObject "QuicksortObject"
                OpMemberName %QuicksortObject 0 "numbers"
                OpName %obj "obj"
@@ -14,7 +15,6 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_30 "x_30"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %swap_i1_i1_ "swap_i1_i1_"
                OpName %i "i"
                OpName %j "j"
@@ -41,9 +41,9 @@
                OpName %i_2 "i_2"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %QuicksortObject 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
@@ -51,27 +51,26 @@
                OpDecorate %x_30 NonWritable
                OpDecorate %x_30 DescriptorSet 0
                OpDecorate %x_30 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %QuicksortObject = OpTypeStruct %_arr_int_uint_10
 %_ptr_Private_QuicksortObject = OpTypePointer Private %QuicksortObject
-          %8 = OpConstantNull %QuicksortObject
-        %obj = OpVariable %_ptr_Private_QuicksortObject Private %8
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
+         %13 = OpConstantNull %QuicksortObject
+        %obj = OpVariable %_ptr_Private_QuicksortObject Private %13
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %13 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %13
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_30 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %13
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %20 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int
@@ -94,7 +93,7 @@
         %221 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %222 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %223 = OpTypeFunction %void %main_out
+        %223 = OpTypeFunction %main_out
 %swap_i1_i1_ = OpFunction %void None %20
           %i = OpFunctionParameter %_ptr_Function_int
           %j = OpFunctionParameter %_ptr_Function_int
@@ -350,18 +349,17 @@
         %216 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %223
-%tint_symbol = OpFunctionParameter %main_out
-        %227 = OpLabel
-        %228 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %228
-               OpReturn
+ %main_inner = OpFunction %main_out None %223
+        %226 = OpLabel
+        %227 = OpFunctionCall %void %main_1
+        %228 = OpLoad %v4float %x_GLF_color
+        %229 = OpCompositeConstruct %main_out %228
+               OpReturnValue %229
                OpFunctionEnd
        %main = OpFunction %void None %106
-        %230 = OpLabel
-        %231 = OpFunctionCall %void %main_1
-        %233 = OpLoad %v4float %x_GLF_color
-        %234 = OpCompositeConstruct %main_out %233
-        %232 = OpFunctionCall %void %tint_symbol_2 %234
+        %231 = OpLabel
+        %232 = OpFunctionCall %main_out %main_inner
+        %233 = OpCompositeExtract %v4float %232 0
+               OpStore %x_GLF_color_1_1 %233
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.wgsl.expected.spvasm
index 7a0c9e6..cb0fe80 100644
--- a/test/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 235
+; Bound: 234
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %QuicksortObject "QuicksortObject"
                OpMemberName %QuicksortObject 0 "numbers"
                OpName %obj "obj"
@@ -14,7 +15,6 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_30 "x_30"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %swap_i1_i1_ "swap_i1_i1_"
                OpName %i "i"
                OpName %j "j"
@@ -41,9 +41,9 @@
                OpName %i_2 "i_2"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %QuicksortObject 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
@@ -51,27 +51,26 @@
                OpDecorate %x_30 NonWritable
                OpDecorate %x_30 DescriptorSet 0
                OpDecorate %x_30 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %QuicksortObject = OpTypeStruct %_arr_int_uint_10
 %_ptr_Private_QuicksortObject = OpTypePointer Private %QuicksortObject
-          %8 = OpConstantNull %QuicksortObject
-        %obj = OpVariable %_ptr_Private_QuicksortObject Private %8
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
+         %13 = OpConstantNull %QuicksortObject
+        %obj = OpVariable %_ptr_Private_QuicksortObject Private %13
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %13 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %13
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_30 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %13
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %20 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int
@@ -94,7 +93,7 @@
         %221 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %222 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %223 = OpTypeFunction %void %main_out
+        %223 = OpTypeFunction %main_out
 %swap_i1_i1_ = OpFunction %void None %20
           %i = OpFunctionParameter %_ptr_Function_int
           %j = OpFunctionParameter %_ptr_Function_int
@@ -350,18 +349,17 @@
         %216 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %223
-%tint_symbol = OpFunctionParameter %main_out
-        %227 = OpLabel
-        %228 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %228
-               OpReturn
+ %main_inner = OpFunction %main_out None %223
+        %226 = OpLabel
+        %227 = OpFunctionCall %void %main_1
+        %228 = OpLoad %v4float %x_GLF_color
+        %229 = OpCompositeConstruct %main_out %228
+               OpReturnValue %229
                OpFunctionEnd
        %main = OpFunction %void None %106
-        %230 = OpLabel
-        %231 = OpFunctionCall %void %main_1
-        %233 = OpLoad %v4float %x_GLF_color
-        %234 = OpCompositeConstruct %main_out %233
-        %232 = OpFunctionCall %void %tint_symbol_2 %234
+        %231 = OpLabel
+        %232 = OpFunctionCall %main_out %main_inner
+        %233 = OpCompositeExtract %v4float %232 0
+               OpStore %x_GLF_color_1_1 %233
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.spvasm.expected.spvasm
index 068c255..2489f66 100644
--- a/test/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %50 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %func_ "func_"
                OpName %x "x"
                OpName %main_1 "main_1"
@@ -25,32 +25,32 @@
                OpName %x_82_phi "x_82_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v2float_uint_17 ArrayStride 8
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
          %15 = OpTypeFunction %float
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -81,7 +81,7 @@
         %125 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-        %138 = OpTypeFunction %void %main_out
+        %138 = OpTypeFunction %main_out %v4float
       %func_ = OpFunction %float None %15
          %17 = OpLabel
           %x = OpVariable %_ptr_Function_int Function %21
@@ -228,20 +228,20 @@
          %71 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %138
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %138
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %142 = OpLabel
-        %143 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %143
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %143 = OpFunctionCall %void %main_1
+        %144 = OpLoad %v4float %x_GLF_color
+        %145 = OpCompositeConstruct %main_out %144
+               OpReturnValue %145
                OpFunctionEnd
        %main = OpFunction %void None %58
-        %145 = OpLabel
-        %146 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %146
-        %147 = OpFunctionCall %void %main_1
-        %149 = OpLoad %v4float %x_GLF_color
-        %150 = OpCompositeConstruct %main_out %149
-        %148 = OpFunctionCall %void %tint_symbol_3 %150
+        %147 = OpLabel
+        %149 = OpLoad %v4float %gl_FragCoord_param_1
+        %148 = OpFunctionCall %main_out %main_inner %149
+        %150 = OpCompositeExtract %v4float %148 0
+               OpStore %x_GLF_color_1_1 %150
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.wgsl.expected.spvasm
index 068c255..2489f66 100644
--- a/test/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %50 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %func_ "func_"
                OpName %x "x"
                OpName %main_1 "main_1"
@@ -25,32 +25,32 @@
                OpName %x_82_phi "x_82_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v2float_uint_17 ArrayStride 8
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
          %15 = OpTypeFunction %float
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -81,7 +81,7 @@
         %125 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-        %138 = OpTypeFunction %void %main_out
+        %138 = OpTypeFunction %main_out %v4float
       %func_ = OpFunction %float None %15
          %17 = OpLabel
           %x = OpVariable %_ptr_Function_int Function %21
@@ -228,20 +228,20 @@
          %71 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %138
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %138
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %142 = OpLabel
-        %143 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %143
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %143 = OpFunctionCall %void %main_1
+        %144 = OpLoad %v4float %x_GLF_color
+        %145 = OpCompositeConstruct %main_out %144
+               OpReturnValue %145
                OpFunctionEnd
        %main = OpFunction %void None %58
-        %145 = OpLabel
-        %146 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %146
-        %147 = OpFunctionCall %void %main_1
-        %149 = OpLoad %v4float %x_GLF_color
-        %150 = OpCompositeConstruct %main_out %149
-        %148 = OpFunctionCall %void %tint_symbol_3 %150
+        %147 = OpLabel
+        %149 = OpLoad %v4float %gl_FragCoord_param_1
+        %148 = OpFunctionCall %main_out %main_inner %149
+        %150 = OpCompositeExtract %v4float %148 0
+               OpStore %x_GLF_color_1_1 %150
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.spvasm.expected.spvasm
index 0129c00..a711e79 100644
--- a/test/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.spvasm.expected.spvasm
@@ -5,14 +5,14 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %data "data"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %temp "temp"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %func_i1_ "func_i1_"
                OpName %a "a"
                OpName %b "b"
@@ -25,36 +25,36 @@
                OpName %param_1 "param_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_9 ArrayStride 4
                OpDecorate %_arr_int_uint_7 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_9 = OpConstant %uint 9
 %_arr_int_uint_9 = OpTypeArray %int %uint_9
 %_ptr_Private__arr_int_uint_9 = OpTypePointer Private %_arr_int_uint_9
-          %7 = OpConstantNull %_arr_int_uint_9
-       %data = OpVariable %_ptr_Private__arr_int_uint_9 Private %7
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
+         %14 = OpConstantNull %_arr_int_uint_9
+       %data = OpVariable %_ptr_Private__arr_int_uint_9 Private %14
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %12
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
      %uint_7 = OpConstant %uint 7
 %_arr_int_uint_7 = OpTypeArray %int %uint_7
 %_ptr_Private__arr_int_uint_7 = OpTypePointer Private %_arr_int_uint_7
-         %17 = OpConstantNull %_arr_int_uint_7
-       %temp = OpVariable %_ptr_Private__arr_int_uint_7 Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+         %21 = OpConstantNull %_arr_int_uint_7
+       %temp = OpVariable %_ptr_Private__arr_int_uint_7 Private %21
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpTypeFunction %float %_ptr_Function_int
          %29 = OpConstantNull %int
@@ -79,7 +79,7 @@
         %136 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %137 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %140 = OpTypeFunction %void %main_out
+        %140 = OpTypeFunction %main_out %v4float
    %func_i1_ = OpFunction %float None %23
           %a = OpFunctionParameter %_ptr_Function_int
          %27 = OpLabel
@@ -239,20 +239,20 @@
         %118 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %140
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %140
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %144 = OpLabel
-        %145 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %145
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %145 = OpFunctionCall %void %main_1
+        %146 = OpLoad %v4float %x_GLF_color
+        %147 = OpCompositeConstruct %main_out %146
+               OpReturnValue %147
                OpFunctionEnd
        %main = OpFunction %void None %110
-        %147 = OpLabel
-        %148 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %148
-        %149 = OpFunctionCall %void %main_1
-        %151 = OpLoad %v4float %x_GLF_color
-        %152 = OpCompositeConstruct %main_out %151
-        %150 = OpFunctionCall %void %tint_symbol_3 %152
+        %149 = OpLabel
+        %151 = OpLoad %v4float %gl_FragCoord_param_1
+        %150 = OpFunctionCall %main_out %main_inner %151
+        %152 = OpCompositeExtract %v4float %150 0
+               OpStore %x_GLF_color_1_1 %152
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.wgsl.expected.spvasm
index 0129c00..a711e79 100644
--- a/test/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.wgsl.expected.spvasm
@@ -5,14 +5,14 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %data "data"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %temp "temp"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %func_i1_ "func_i1_"
                OpName %a "a"
                OpName %b "b"
@@ -25,36 +25,36 @@
                OpName %param_1 "param_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_9 ArrayStride 4
                OpDecorate %_arr_int_uint_7 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_9 = OpConstant %uint 9
 %_arr_int_uint_9 = OpTypeArray %int %uint_9
 %_ptr_Private__arr_int_uint_9 = OpTypePointer Private %_arr_int_uint_9
-          %7 = OpConstantNull %_arr_int_uint_9
-       %data = OpVariable %_ptr_Private__arr_int_uint_9 Private %7
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
+         %14 = OpConstantNull %_arr_int_uint_9
+       %data = OpVariable %_ptr_Private__arr_int_uint_9 Private %14
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %12
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
      %uint_7 = OpConstant %uint 7
 %_arr_int_uint_7 = OpTypeArray %int %uint_7
 %_ptr_Private__arr_int_uint_7 = OpTypePointer Private %_arr_int_uint_7
-         %17 = OpConstantNull %_arr_int_uint_7
-       %temp = OpVariable %_ptr_Private__arr_int_uint_7 Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+         %21 = OpConstantNull %_arr_int_uint_7
+       %temp = OpVariable %_ptr_Private__arr_int_uint_7 Private %21
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpTypeFunction %float %_ptr_Function_int
          %29 = OpConstantNull %int
@@ -79,7 +79,7 @@
         %136 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %137 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %140 = OpTypeFunction %void %main_out
+        %140 = OpTypeFunction %main_out %v4float
    %func_i1_ = OpFunction %float None %23
           %a = OpFunctionParameter %_ptr_Function_int
          %27 = OpLabel
@@ -239,20 +239,20 @@
         %118 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %140
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %140
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %144 = OpLabel
-        %145 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %145
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %145 = OpFunctionCall %void %main_1
+        %146 = OpLoad %v4float %x_GLF_color
+        %147 = OpCompositeConstruct %main_out %146
+               OpReturnValue %147
                OpFunctionEnd
        %main = OpFunction %void None %110
-        %147 = OpLabel
-        %148 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %148
-        %149 = OpFunctionCall %void %main_1
-        %151 = OpLoad %v4float %x_GLF_color
-        %152 = OpCompositeConstruct %main_out %151
-        %150 = OpFunctionCall %void %tint_symbol_3 %152
+        %149 = OpLabel
+        %151 = OpLoad %v4float %gl_FragCoord_param_1
+        %150 = OpFunctionCall %main_out %main_inner %151
+        %152 = OpCompositeExtract %v4float %150 0
+               OpStore %x_GLF_color_1_1 %152
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.spvasm.expected.spvasm
index 8945024..8342f8b 100644
--- a/test/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.spvasm.expected.spvasm
@@ -1,15 +1,15 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 131
+; Bound: 130
 ; Schema: 0
                OpCapability Shader
          %56 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_i1_ "func_i1_"
                OpName %x "x"
                OpName %a "a"
@@ -23,20 +23,19 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_9 ArrayStride 4
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -66,7 +65,7 @@
          %99 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
         %100 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-        %119 = OpTypeFunction %void %main_out
+        %119 = OpTypeFunction %main_out
    %func_i1_ = OpFunction %void None %8
           %x = OpFunctionParameter %_ptr_Function_int
          %14 = OpLabel
@@ -203,18 +202,17 @@
         %106 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %119
-%tint_symbol = OpFunctionParameter %main_out
-        %123 = OpLabel
-        %124 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %124
-               OpReturn
+ %main_inner = OpFunction %main_out None %119
+        %122 = OpLabel
+        %123 = OpFunctionCall %void %main_1
+        %124 = OpLoad %v4float %x_GLF_color
+        %125 = OpCompositeConstruct %main_out %124
+               OpReturnValue %125
                OpFunctionEnd
        %main = OpFunction %void None %100
-        %126 = OpLabel
-        %127 = OpFunctionCall %void %main_1
-        %129 = OpLoad %v4float %x_GLF_color
-        %130 = OpCompositeConstruct %main_out %129
-        %128 = OpFunctionCall %void %tint_symbol_2 %130
+        %127 = OpLabel
+        %128 = OpFunctionCall %main_out %main_inner
+        %129 = OpCompositeExtract %v4float %128 0
+               OpStore %x_GLF_color_1_1 %129
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.wgsl.expected.spvasm
index 8945024..8342f8b 100644
--- a/test/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.wgsl.expected.spvasm
@@ -1,15 +1,15 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 131
+; Bound: 130
 ; Schema: 0
                OpCapability Shader
          %56 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_i1_ "func_i1_"
                OpName %x "x"
                OpName %a "a"
@@ -23,20 +23,19 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_9 ArrayStride 4
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -66,7 +65,7 @@
          %99 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
         %100 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-        %119 = OpTypeFunction %void %main_out
+        %119 = OpTypeFunction %main_out
    %func_i1_ = OpFunction %void None %8
           %x = OpFunctionParameter %_ptr_Function_int
          %14 = OpLabel
@@ -203,18 +202,17 @@
         %106 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %119
-%tint_symbol = OpFunctionParameter %main_out
-        %123 = OpLabel
-        %124 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %124
-               OpReturn
+ %main_inner = OpFunction %main_out None %119
+        %122 = OpLabel
+        %123 = OpFunctionCall %void %main_1
+        %124 = OpLoad %v4float %x_GLF_color
+        %125 = OpCompositeConstruct %main_out %124
+               OpReturnValue %125
                OpFunctionEnd
        %main = OpFunction %void None %100
-        %126 = OpLabel
-        %127 = OpFunctionCall %void %main_1
-        %129 = OpLoad %v4float %x_GLF_color
-        %130 = OpCompositeConstruct %main_out %129
-        %128 = OpFunctionCall %void %tint_symbol_2 %130
+        %127 = OpLabel
+        %128 = OpFunctionCall %main_out %main_inner
+        %129 = OpCompositeExtract %v4float %128 0
+               OpStore %x_GLF_color_1_1 %129
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/barrier-in-loop-with-break/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/barrier-in-loop-with-break/0-opt.spvasm.expected.spvasm
index 552cb1b..b830459 100644
--- a/test/vk-gl-cts/graphicsfuzz/barrier-in-loop-with-break/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/barrier-in-loop-with-break/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 81
+; Bound: 86
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %gl_LocalInvocationID_param_1
                OpExecutionMode %main LocalSize 16 1 1
+               OpName %gl_LocalInvocationID_param_1 "gl_LocalInvocationID_param_1"
                OpName %gl_LocalInvocationID "gl_LocalInvocationID"
                OpName %doesNotMatter "doesNotMatter"
                OpMemberName %doesNotMatter 0 "global_seed"
@@ -15,12 +16,14 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "injectionSwitch"
                OpName %x_10 "x_10"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
                OpName %lid "lid"
                OpName %val "val"
                OpName %i "i"
+               OpName %main_inner "main_inner"
+               OpName %gl_LocalInvocationID_param "gl_LocalInvocationID_param"
                OpName %main "main"
+               OpDecorate %gl_LocalInvocationID_param_1 BuiltIn LocalInvocationId
                OpDecorate %doesNotMatter Block
                OpMemberDecorate %doesNotMatter 0 Offset 0
                OpMemberDecorate %doesNotMatter 1 Offset 4
@@ -32,12 +35,13 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol BuiltIn LocalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%gl_LocalInvocationID_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-%gl_LocalInvocationID = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+%gl_LocalInvocationID = OpVariable %_ptr_Private_v3uint Private %7
         %int = OpTypeInt 32 1
 %_runtimearr_int = OpTypeRuntimeArray %int
 %doesNotMatter = OpTypeStruct %int %_runtimearr_int
@@ -48,8 +52,6 @@
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -67,6 +69,7 @@
      %uint_2 = OpConstant %uint 2
    %uint_264 = OpConstant %uint 264
      %int_42 = OpConstant %int 42
+         %77 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
         %lid = OpVariable %_ptr_Function_int Function %24
@@ -135,10 +138,16 @@
          %73 = OpLabel
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %77
+%gl_LocalInvocationID_param = OpFunctionParameter %v3uint
+         %80 = OpLabel
+               OpStore %gl_LocalInvocationID %gl_LocalInvocationID_param
+         %81 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %18
-         %78 = OpLabel
-         %79 = OpLoad %v3uint %tint_symbol
-               OpStore %gl_LocalInvocationID %79
-         %80 = OpFunctionCall %void %main_1
+         %83 = OpLabel
+         %85 = OpLoad %v3uint %gl_LocalInvocationID_param_1
+         %84 = OpFunctionCall %void %main_inner %85
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/barrier-in-loop-with-break/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/barrier-in-loop-with-break/0-opt.wgsl.expected.spvasm
index 552cb1b..b830459 100644
--- a/test/vk-gl-cts/graphicsfuzz/barrier-in-loop-with-break/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/barrier-in-loop-with-break/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 81
+; Bound: 86
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %gl_LocalInvocationID_param_1
                OpExecutionMode %main LocalSize 16 1 1
+               OpName %gl_LocalInvocationID_param_1 "gl_LocalInvocationID_param_1"
                OpName %gl_LocalInvocationID "gl_LocalInvocationID"
                OpName %doesNotMatter "doesNotMatter"
                OpMemberName %doesNotMatter 0 "global_seed"
@@ -15,12 +16,14 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "injectionSwitch"
                OpName %x_10 "x_10"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
                OpName %lid "lid"
                OpName %val "val"
                OpName %i "i"
+               OpName %main_inner "main_inner"
+               OpName %gl_LocalInvocationID_param "gl_LocalInvocationID_param"
                OpName %main "main"
+               OpDecorate %gl_LocalInvocationID_param_1 BuiltIn LocalInvocationId
                OpDecorate %doesNotMatter Block
                OpMemberDecorate %doesNotMatter 0 Offset 0
                OpMemberDecorate %doesNotMatter 1 Offset 4
@@ -32,12 +35,13 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol BuiltIn LocalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%gl_LocalInvocationID_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-%gl_LocalInvocationID = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+%gl_LocalInvocationID = OpVariable %_ptr_Private_v3uint Private %7
         %int = OpTypeInt 32 1
 %_runtimearr_int = OpTypeRuntimeArray %int
 %doesNotMatter = OpTypeStruct %int %_runtimearr_int
@@ -48,8 +52,6 @@
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -67,6 +69,7 @@
      %uint_2 = OpConstant %uint 2
    %uint_264 = OpConstant %uint 264
      %int_42 = OpConstant %int 42
+         %77 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
         %lid = OpVariable %_ptr_Function_int Function %24
@@ -135,10 +138,16 @@
          %73 = OpLabel
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %77
+%gl_LocalInvocationID_param = OpFunctionParameter %v3uint
+         %80 = OpLabel
+               OpStore %gl_LocalInvocationID %gl_LocalInvocationID_param
+         %81 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %18
-         %78 = OpLabel
-         %79 = OpLoad %v3uint %tint_symbol
-               OpStore %gl_LocalInvocationID %79
-         %80 = OpFunctionCall %void %main_1
+         %83 = OpLabel
+         %85 = OpLoad %v3uint %gl_LocalInvocationID_param_1
+         %84 = OpFunctionCall %void %main_inner %85
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.spvasm.expected.spvasm
index 8dd21f8..c48f0d6 100644
--- a/test/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.spvasm.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_5 "x_5"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %GLF_live12c5 "GLF_live12c5"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -51,7 +50,7 @@
 %_ptr_Uniform_float = OpTypePointer Uniform %float
       %false = OpConstantFalse %bool
    %main_out = OpTypeStruct %v4float
-         %41 = OpTypeFunction %void %main_out
+         %41 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
 %GLF_live12c5 = OpVariable %_ptr_Function_bool Function %19
@@ -84,18 +83,17 @@
          %24 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %41
-%tint_symbol = OpFunctionParameter %main_out
-         %45 = OpLabel
-         %46 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %46
-               OpReturn
+ %main_inner = OpFunction %main_out None %41
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %main_1
+         %46 = OpLoad %v4float %x_GLF_color
+         %47 = OpCompositeConstruct %main_out %46
+               OpReturnValue %47
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %main_1
-         %51 = OpLoad %v4float %x_GLF_color
-         %52 = OpCompositeConstruct %main_out %51
-         %50 = OpFunctionCall %void %tint_symbol_2 %52
+         %49 = OpLabel
+         %50 = OpFunctionCall %main_out %main_inner
+         %51 = OpCompositeExtract %v4float %50 0
+               OpStore %x_GLF_color_1_1 %51
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.wgsl.expected.spvasm
index 8dd21f8..c48f0d6 100644
--- a/test/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_5 "x_5"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %GLF_live12c5 "GLF_live12c5"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -51,7 +50,7 @@
 %_ptr_Uniform_float = OpTypePointer Uniform %float
       %false = OpConstantFalse %bool
    %main_out = OpTypeStruct %v4float
-         %41 = OpTypeFunction %void %main_out
+         %41 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
 %GLF_live12c5 = OpVariable %_ptr_Function_bool Function %19
@@ -84,18 +83,17 @@
          %24 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %41
-%tint_symbol = OpFunctionParameter %main_out
-         %45 = OpLabel
-         %46 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %46
-               OpReturn
+ %main_inner = OpFunction %main_out None %41
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %main_1
+         %46 = OpLoad %v4float %x_GLF_color
+         %47 = OpCompositeConstruct %main_out %46
+               OpReturnValue %47
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %main_1
-         %51 = OpLoad %v4float %x_GLF_color
-         %52 = OpCompositeConstruct %main_out %51
-         %50 = OpFunctionCall %void %tint_symbol_2 %52
+         %49 = OpLabel
+         %50 = OpFunctionCall %main_out %main_inner
+         %51 = OpCompositeExtract %v4float %50 0
+               OpStore %x_GLF_color_1_1 %51
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.spvasm.expected.spvasm
index 5378d74..6073859 100644
--- a/test/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.spvasm.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 51
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -48,7 +47,7 @@
       %false = OpConstantFalse %bool
          %38 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %39 = OpTypeFunction %void %main_out
+         %39 = OpTypeFunction %main_out
       %func_ = OpFunction %void None %11
          %14 = OpLabel
          %18 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0
@@ -84,18 +83,17 @@
                OpStore %x_GLF_color %38
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %39
-%tint_symbol = OpFunctionParameter %main_out
-         %43 = OpLabel
-         %44 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %44
-               OpReturn
+ %main_inner = OpFunction %main_out None %39
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %main_1
+         %44 = OpLoad %v4float %x_GLF_color
+         %45 = OpCompositeConstruct %main_out %44
+               OpReturnValue %45
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %main_1
-         %49 = OpLoad %v4float %x_GLF_color
-         %50 = OpCompositeConstruct %main_out %49
-         %48 = OpFunctionCall %void %tint_symbol_2 %50
+         %47 = OpLabel
+         %48 = OpFunctionCall %main_out %main_inner
+         %49 = OpCompositeExtract %v4float %48 0
+               OpStore %x_GLF_color_1_1 %49
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.wgsl.expected.spvasm
index 5378d74..6073859 100644
--- a/test/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 51
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -48,7 +47,7 @@
       %false = OpConstantFalse %bool
          %38 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %39 = OpTypeFunction %void %main_out
+         %39 = OpTypeFunction %main_out
       %func_ = OpFunction %void None %11
          %14 = OpLabel
          %18 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0
@@ -84,18 +83,17 @@
                OpStore %x_GLF_color %38
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %39
-%tint_symbol = OpFunctionParameter %main_out
-         %43 = OpLabel
-         %44 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %44
-               OpReturn
+ %main_inner = OpFunction %main_out None %39
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %main_1
+         %44 = OpLoad %v4float %x_GLF_color
+         %45 = OpCompositeConstruct %main_out %44
+               OpReturnValue %45
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %main_1
-         %49 = OpLoad %v4float %x_GLF_color
-         %50 = OpCompositeConstruct %main_out %49
-         %48 = OpFunctionCall %void %tint_symbol_2 %50
+         %47 = OpLabel
+         %48 = OpFunctionCall %main_out %main_inner
+         %49 = OpCompositeExtract %v4float %48 0
+               OpStore %x_GLF_color_1_1 %49
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/call-if-while-switch/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/call-if-while-switch/0-opt.spvasm.expected.spvasm
index 556a05f..c6107e4 100644
--- a/test/vk-gl-cts/graphicsfuzz/call-if-while-switch/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/call-if-while-switch/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 90
+; Bound: 89
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %data "data"
                OpName %x_40 "x_40"
@@ -23,28 +23,27 @@
                OpName %x_54_phi "x_54_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -67,7 +66,7 @@
     %float_0 = OpConstant %float 0
          %77 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %78 = OpTypeFunction %void %main_out
+         %78 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
        %data = OpVariable %_ptr_Function__arr_int_uint_10 Function %22
@@ -145,18 +144,17 @@
                OpStore %x_GLF_color %77
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %78
-%tint_symbol = OpFunctionParameter %main_out
-         %82 = OpLabel
-         %83 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %83
-               OpReturn
+ %main_inner = OpFunction %main_out None %78
+         %81 = OpLabel
+         %82 = OpFunctionCall %void %main_1
+         %83 = OpLoad %v4float %x_GLF_color
+         %84 = OpCompositeConstruct %main_out %83
+               OpReturnValue %84
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %85 = OpLabel
-         %86 = OpFunctionCall %void %main_1
-         %88 = OpLoad %v4float %x_GLF_color
-         %89 = OpCompositeConstruct %main_out %88
-         %87 = OpFunctionCall %void %tint_symbol_2 %89
+         %86 = OpLabel
+         %87 = OpFunctionCall %main_out %main_inner
+         %88 = OpCompositeExtract %v4float %87 0
+               OpStore %x_GLF_color_1_1 %88
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/call-if-while-switch/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/call-if-while-switch/0-opt.wgsl.expected.spvasm
index 556a05f..c6107e4 100644
--- a/test/vk-gl-cts/graphicsfuzz/call-if-while-switch/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/call-if-while-switch/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 90
+; Bound: 89
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %data "data"
                OpName %x_40 "x_40"
@@ -23,28 +23,27 @@
                OpName %x_54_phi "x_54_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -67,7 +66,7 @@
     %float_0 = OpConstant %float 0
          %77 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %78 = OpTypeFunction %void %main_out
+         %78 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
        %data = OpVariable %_ptr_Function__arr_int_uint_10 Function %22
@@ -145,18 +144,17 @@
                OpStore %x_GLF_color %77
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %78
-%tint_symbol = OpFunctionParameter %main_out
-         %82 = OpLabel
-         %83 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %83
-               OpReturn
+ %main_inner = OpFunction %main_out None %78
+         %81 = OpLabel
+         %82 = OpFunctionCall %void %main_1
+         %83 = OpLoad %v4float %x_GLF_color
+         %84 = OpCompositeConstruct %main_out %83
+               OpReturnValue %84
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %85 = OpLabel
-         %86 = OpFunctionCall %void %main_1
-         %88 = OpLoad %v4float %x_GLF_color
-         %89 = OpCompositeConstruct %main_out %88
-         %87 = OpFunctionCall %void %tint_symbol_2 %89
+         %86 = OpLabel
+         %87 = OpFunctionCall %main_out %main_inner
+         %88 = OpCompositeExtract %v4float %87 0
+               OpStore %x_GLF_color_1_1 %88
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/color-set-in-for-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/color-set-in-for-loop/0-opt.spvasm.expected.spvasm
index 5ae61bc..56304fb 100644
--- a/test/vk-gl-cts/graphicsfuzz/color-set-in-for-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/color-set-in-for-loop/0-opt.spvasm.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -47,7 +46,7 @@
          %31 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
          %32 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %33 = OpTypeFunction %void %main_out
+         %33 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
          %19 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %uint_0
@@ -71,18 +70,17 @@
                OpStore %x_GLF_color %32
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %33
-%tint_symbol = OpFunctionParameter %main_out
-         %37 = OpLabel
-         %38 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %38
-               OpReturn
+ %main_inner = OpFunction %main_out None %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %main_1
+         %38 = OpLoad %v4float %x_GLF_color
+         %39 = OpCompositeConstruct %main_out %38
+               OpReturnValue %39
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %main_1
-         %43 = OpLoad %v4float %x_GLF_color
-         %44 = OpCompositeConstruct %main_out %43
-         %42 = OpFunctionCall %void %tint_symbol_2 %44
+         %41 = OpLabel
+         %42 = OpFunctionCall %main_out %main_inner
+         %43 = OpCompositeExtract %v4float %42 0
+               OpStore %x_GLF_color_1_1 %43
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/color-set-in-for-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/color-set-in-for-loop/0-opt.wgsl.expected.spvasm
index 5ae61bc..56304fb 100644
--- a/test/vk-gl-cts/graphicsfuzz/color-set-in-for-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/color-set-in-for-loop/0-opt.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -47,7 +46,7 @@
          %31 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
          %32 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %33 = OpTypeFunction %void %main_out
+         %33 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
          %19 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %uint_0
@@ -71,18 +70,17 @@
                OpStore %x_GLF_color %32
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %33
-%tint_symbol = OpFunctionParameter %main_out
-         %37 = OpLabel
-         %38 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %38
-               OpReturn
+ %main_inner = OpFunction %main_out None %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %main_1
+         %38 = OpLoad %v4float %x_GLF_color
+         %39 = OpCompositeConstruct %main_out %38
+               OpReturnValue %39
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %main_1
-         %43 = OpLoad %v4float %x_GLF_color
-         %44 = OpCompositeConstruct %main_out %43
-         %42 = OpFunctionCall %void %tint_symbol_2 %44
+         %41 = OpLabel
+         %42 = OpFunctionCall %main_out %main_inner
+         %43 = OpCompositeExtract %v4float %42 0
+               OpStore %x_GLF_color_1_1 %43
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.spvasm.expected.spvasm
index c5af5ad..2d3c083 100644
--- a/test/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.spvasm.expected.spvasm
@@ -5,12 +5,12 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_51 "x_51"
                OpName %x_12_phi "x_12_phi"
@@ -25,11 +25,11 @@
                OpName %x_6 "x_6"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %S 0 Offset 0
                OpMemberDecorate %S 1 Offset 16
                OpMemberDecorate %S 1 ColMajor
@@ -37,14 +37,14 @@
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -74,7 +74,7 @@
    %int_1000 = OpConstant %int 1000
          %90 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %93 = OpTypeFunction %void %main_out
+         %93 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
        %x_51 = OpVariable %_ptr_Function_int Function %18
@@ -171,20 +171,20 @@
          %80 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %93
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %93
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %97 = OpLabel
-         %98 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %98
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %98 = OpFunctionCall %void %main_1
+         %99 = OpLoad %v4float %x_GLF_color
+        %100 = OpCompositeConstruct %main_out %99
+               OpReturnValue %100
                OpFunctionEnd
        %main = OpFunction %void None %11
-        %100 = OpLabel
-        %101 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %101
-        %102 = OpFunctionCall %void %main_1
-        %104 = OpLoad %v4float %x_GLF_color
-        %105 = OpCompositeConstruct %main_out %104
-        %103 = OpFunctionCall %void %tint_symbol_3 %105
+        %102 = OpLabel
+        %104 = OpLoad %v4float %gl_FragCoord_param_1
+        %103 = OpFunctionCall %main_out %main_inner %104
+        %105 = OpCompositeExtract %v4float %103 0
+               OpStore %x_GLF_color_1_1 %105
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.wgsl.expected.spvasm
index c5af5ad..2d3c083 100644
--- a/test/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.wgsl.expected.spvasm
@@ -5,12 +5,12 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_51 "x_51"
                OpName %x_12_phi "x_12_phi"
@@ -25,11 +25,11 @@
                OpName %x_6 "x_6"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %S 0 Offset 0
                OpMemberDecorate %S 1 Offset 16
                OpMemberDecorate %S 1 ColMajor
@@ -37,14 +37,14 @@
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -74,7 +74,7 @@
    %int_1000 = OpConstant %int 1000
          %90 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %93 = OpTypeFunction %void %main_out
+         %93 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
        %x_51 = OpVariable %_ptr_Function_int Function %18
@@ -171,20 +171,20 @@
          %80 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %93
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %93
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %97 = OpLabel
-         %98 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %98
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %98 = OpFunctionCall %void %main_1
+         %99 = OpLoad %v4float %x_GLF_color
+        %100 = OpCompositeConstruct %main_out %99
+               OpReturnValue %100
                OpFunctionEnd
        %main = OpFunction %void None %11
-        %100 = OpLabel
-        %101 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %101
-        %102 = OpFunctionCall %void %main_1
-        %104 = OpLoad %v4float %x_GLF_color
-        %105 = OpCompositeConstruct %main_out %104
-        %103 = OpFunctionCall %void %tint_symbol_3 %105
+        %102 = OpLabel
+        %104 = OpLoad %v4float %gl_FragCoord_param_1
+        %103 = OpFunctionCall %main_out %main_inner %104
+        %105 = OpCompositeExtract %v4float %103 0
+               OpStore %x_GLF_color_1_1 %105
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.spvasm.expected.spvasm
index 3e841df..6bca158 100644
--- a/test/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.spvasm.expected.spvasm
@@ -1,53 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 72
+; Bound: 71
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %GLF_live6tree "GLF_live6tree"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %GLF_live6search_ "GLF_live6search_"
                OpName %GLF_live6index "GLF_live6index"
                OpName %GLF_live6currentNode "GLF_live6currentNode"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %_ptr_Private__arr_int_uint_10 = OpTypePointer Private %_arr_int_uint_10
-          %7 = OpConstantNull %_arr_int_uint_10
-%GLF_live6tree = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-      %float = OpTypeFloat 32
+         %12 = OpConstantNull %_arr_int_uint_10
+%GLF_live6tree = OpVariable %_ptr_Private__arr_int_uint_10 Private %12
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
          %19 = OpTypeFunction %int
 %_ptr_Function_int = OpTypePointer Function %int
          %24 = OpConstantNull %int
@@ -64,7 +63,7 @@
     %float_0 = OpConstant %float 0
          %59 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %60 = OpTypeFunction %void %main_out
+         %60 = OpTypeFunction %main_out
 %GLF_live6search_ = OpFunction %int None %19
          %21 = OpLabel
 %GLF_live6index = OpVariable %_ptr_Function_int Function %24
@@ -114,18 +113,17 @@
                OpStore %x_GLF_color %59
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %60
-%tint_symbol = OpFunctionParameter %main_out
-         %64 = OpLabel
-         %65 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %65
-               OpReturn
+ %main_inner = OpFunction %main_out None %60
+         %63 = OpLabel
+         %64 = OpFunctionCall %void %main_1
+         %65 = OpLoad %v4float %x_GLF_color
+         %66 = OpCompositeConstruct %main_out %65
+               OpReturnValue %66
                OpFunctionEnd
        %main = OpFunction %void None %45
-         %67 = OpLabel
-         %68 = OpFunctionCall %void %main_1
-         %70 = OpLoad %v4float %x_GLF_color
-         %71 = OpCompositeConstruct %main_out %70
-         %69 = OpFunctionCall %void %tint_symbol_2 %71
+         %68 = OpLabel
+         %69 = OpFunctionCall %main_out %main_inner
+         %70 = OpCompositeExtract %v4float %69 0
+               OpStore %x_GLF_color_1_1 %70
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.wgsl.expected.spvasm
index 3e841df..6bca158 100644
--- a/test/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.wgsl.expected.spvasm
@@ -1,53 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 72
+; Bound: 71
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %GLF_live6tree "GLF_live6tree"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %GLF_live6search_ "GLF_live6search_"
                OpName %GLF_live6index "GLF_live6index"
                OpName %GLF_live6currentNode "GLF_live6currentNode"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %_ptr_Private__arr_int_uint_10 = OpTypePointer Private %_arr_int_uint_10
-          %7 = OpConstantNull %_arr_int_uint_10
-%GLF_live6tree = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-      %float = OpTypeFloat 32
+         %12 = OpConstantNull %_arr_int_uint_10
+%GLF_live6tree = OpVariable %_ptr_Private__arr_int_uint_10 Private %12
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
          %19 = OpTypeFunction %int
 %_ptr_Function_int = OpTypePointer Function %int
          %24 = OpConstantNull %int
@@ -64,7 +63,7 @@
     %float_0 = OpConstant %float 0
          %59 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %60 = OpTypeFunction %void %main_out
+         %60 = OpTypeFunction %main_out
 %GLF_live6search_ = OpFunction %int None %19
          %21 = OpLabel
 %GLF_live6index = OpVariable %_ptr_Function_int Function %24
@@ -114,18 +113,17 @@
                OpStore %x_GLF_color %59
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %60
-%tint_symbol = OpFunctionParameter %main_out
-         %64 = OpLabel
-         %65 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %65
-               OpReturn
+ %main_inner = OpFunction %main_out None %60
+         %63 = OpLabel
+         %64 = OpFunctionCall %void %main_1
+         %65 = OpLoad %v4float %x_GLF_color
+         %66 = OpCompositeConstruct %main_out %65
+               OpReturnValue %66
                OpFunctionEnd
        %main = OpFunction %void None %45
-         %67 = OpLabel
-         %68 = OpFunctionCall %void %main_1
-         %70 = OpLoad %v4float %x_GLF_color
-         %71 = OpCompositeConstruct %main_out %70
-         %69 = OpFunctionCall %void %tint_symbol_2 %71
+         %68 = OpLabel
+         %69 = OpFunctionCall %main_out %main_inner
+         %70 = OpCompositeExtract %v4float %69 0
+               OpStore %x_GLF_color_1_1 %70
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.spvasm
index ba3b2d9..1379bb5 100644
--- a/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_25 "x_25"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %drawShape_vf2_ "drawShape_vf2_"
                OpName %pos "pos"
                OpName %c2 "c2"
@@ -50,32 +50,32 @@
                OpName %param_2 "param_2"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_25 NonWritable
                OpDecorate %x_25 DescriptorSet 0
                OpDecorate %x_25 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_float_uint_9 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_25 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %15 = OpTypeFunction %v3float %_ptr_Function_v2float
@@ -125,7 +125,7 @@
      %int_25 = OpConstant %int 25
         %375 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %376 = OpTypeFunction %void %main_out
+        %376 = OpTypeFunction %main_out %v4float
 %drawShape_vf2_ = OpFunction %v3float None %15
         %pos = OpFunctionParameter %_ptr_Function_v2float
          %20 = OpLabel
@@ -609,20 +609,20 @@
                OpStore %x_GLF_color %375
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %376
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %376
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %380 = OpLabel
-        %381 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %381
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %381 = OpFunctionCall %void %main_1
+        %382 = OpLoad %v4float %x_GLF_color
+        %383 = OpCompositeConstruct %main_out %382
+               OpReturnValue %383
                OpFunctionEnd
        %main = OpFunction %void None %334
-        %383 = OpLabel
-        %384 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %384
-        %385 = OpFunctionCall %void %main_1
-        %387 = OpLoad %v4float %x_GLF_color
-        %388 = OpCompositeConstruct %main_out %387
-        %386 = OpFunctionCall %void %tint_symbol_3 %388
+        %385 = OpLabel
+        %387 = OpLoad %v4float %gl_FragCoord_param_1
+        %386 = OpFunctionCall %main_out %main_inner %387
+        %388 = OpCompositeExtract %v4float %386 0
+               OpStore %x_GLF_color_1_1 %388
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.wgsl.expected.spvasm
index 694e352..99d77e1 100644
--- a/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_25 "x_25"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %drawShape_vf2_ "drawShape_vf2_"
                OpName %pos "pos"
                OpName %c2 "c2"
@@ -50,32 +50,32 @@
                OpName %param_2 "param_2"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_25 NonWritable
                OpDecorate %x_25 DescriptorSet 0
                OpDecorate %x_25 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_float_uint_9 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_25 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %15 = OpTypeFunction %v3float %_ptr_Function_v2float
@@ -125,7 +125,7 @@
      %int_25 = OpConstant %int 25
         %389 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %390 = OpTypeFunction %void %main_out
+        %390 = OpTypeFunction %main_out %v4float
 %drawShape_vf2_ = OpFunction %v3float None %15
         %pos = OpFunctionParameter %_ptr_Function_v2float
          %20 = OpLabel
@@ -644,20 +644,20 @@
                OpStore %x_GLF_color %389
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %390
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %390
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %394 = OpLabel
-        %395 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %395
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %395 = OpFunctionCall %void %main_1
+        %396 = OpLoad %v4float %x_GLF_color
+        %397 = OpCompositeConstruct %main_out %396
+               OpReturnValue %397
                OpFunctionEnd
        %main = OpFunction %void None %348
-        %397 = OpLabel
-        %398 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %398
-        %399 = OpFunctionCall %void %main_1
-        %401 = OpLoad %v4float %x_GLF_color
-        %402 = OpCompositeConstruct %main_out %401
-        %400 = OpFunctionCall %void %tint_symbol_3 %402
+        %399 = OpLabel
+        %401 = OpLoad %v4float %gl_FragCoord_param_1
+        %400 = OpFunctionCall %main_out %main_inner %401
+        %402 = OpCompositeExtract %v4float %400 0
+               OpStore %x_GLF_color_1_1 %402
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cosh-return-inf-unused/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cosh-return-inf-unused/0-opt.spvasm.expected.spvasm
index 94105cd..8b27838 100644
--- a/test/vk-gl-cts/graphicsfuzz/cosh-return-inf-unused/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cosh-return-inf-unused/0-opt.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %56 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_11 "x_11"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %func_i1_ "func_i1_"
                OpName %b "b"
                OpName %ndx "ndx"
@@ -26,30 +26,30 @@
                OpName %param_1 "param_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_11 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
          %14 = OpTypeFunction %float %_ptr_Function_int
@@ -80,7 +80,7 @@
      %int_10 = OpConstant %int 10
         %147 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %148 = OpTypeFunction %void %main_out
+        %148 = OpTypeFunction %main_out %v4float
    %func_i1_ = OpFunction %float None %14
           %b = OpFunctionParameter %_ptr_Function_int
          %19 = OpLabel
@@ -256,20 +256,20 @@
         %144 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %148
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %148
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %152 = OpLabel
-        %153 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %153
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %153 = OpFunctionCall %void %main_1
+        %154 = OpLoad %v4float %x_GLF_color
+        %155 = OpCompositeConstruct %main_out %154
+               OpReturnValue %155
                OpFunctionEnd
        %main = OpFunction %void None %82
-        %155 = OpLabel
-        %156 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %156
-        %157 = OpFunctionCall %void %main_1
-        %159 = OpLoad %v4float %x_GLF_color
-        %160 = OpCompositeConstruct %main_out %159
-        %158 = OpFunctionCall %void %tint_symbol_3 %160
+        %157 = OpLabel
+        %159 = OpLoad %v4float %gl_FragCoord_param_1
+        %158 = OpFunctionCall %main_out %main_inner %159
+        %160 = OpCompositeExtract %v4float %158 0
+               OpStore %x_GLF_color_1_1 %160
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cosh-return-inf-unused/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cosh-return-inf-unused/0-opt.wgsl.expected.spvasm
index 94105cd..8b27838 100644
--- a/test/vk-gl-cts/graphicsfuzz/cosh-return-inf-unused/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cosh-return-inf-unused/0-opt.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %56 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_11 "x_11"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %func_i1_ "func_i1_"
                OpName %b "b"
                OpName %ndx "ndx"
@@ -26,30 +26,30 @@
                OpName %param_1 "param_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_11 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
          %14 = OpTypeFunction %float %_ptr_Function_int
@@ -80,7 +80,7 @@
      %int_10 = OpConstant %int 10
         %147 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %148 = OpTypeFunction %void %main_out
+        %148 = OpTypeFunction %main_out %v4float
    %func_i1_ = OpFunction %float None %14
           %b = OpFunctionParameter %_ptr_Function_int
          %19 = OpLabel
@@ -256,20 +256,20 @@
         %144 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %148
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %148
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %152 = OpLabel
-        %153 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %153
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %153 = OpFunctionCall %void %main_1
+        %154 = OpLoad %v4float %x_GLF_color
+        %155 = OpCompositeConstruct %main_out %154
+               OpReturnValue %155
                OpFunctionEnd
        %main = OpFunction %void None %82
-        %155 = OpLabel
-        %156 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %156
-        %157 = OpFunctionCall %void %main_1
-        %159 = OpLoad %v4float %x_GLF_color
-        %160 = OpCompositeConstruct %main_out %159
-        %158 = OpFunctionCall %void %tint_symbol_3 %160
+        %157 = OpLabel
+        %159 = OpLoad %v4float %gl_FragCoord_param_1
+        %158 = OpFunctionCall %main_out %main_inner %159
+        %160 = OpCompositeExtract %v4float %158 0
+               OpStore %x_GLF_color_1_1 %160
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.spvasm.expected.spvasm
index cad1211..7d9d490 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 112
+; Bound: 111
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -14,16 +15,15 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %numbers "numbers"
                OpName %a "a"
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -36,9 +36,13 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_3_0 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -46,17 +50,12 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
        %buf0 = OpTypeStruct %_arr_float_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_arr_int_uint_3_0 = OpTypeArray %int %uint_3
@@ -77,7 +76,7 @@
     %float_0 = OpConstant %float 0
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-        %100 = OpTypeFunction %void %main_out
+        %100 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
     %numbers = OpVariable %_ptr_Function__arr_int_uint_3_0 Function %26
@@ -153,18 +152,17 @@
          %80 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %100
-%tint_symbol = OpFunctionParameter %main_out
-        %104 = OpLabel
-        %105 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %105
-               OpReturn
+ %main_inner = OpFunction %main_out None %100
+        %103 = OpLabel
+        %104 = OpFunctionCall %void %main_1
+        %105 = OpLoad %v4float %x_GLF_color
+        %106 = OpCompositeConstruct %main_out %105
+               OpReturnValue %106
                OpFunctionEnd
        %main = OpFunction %void None %19
-        %107 = OpLabel
-        %108 = OpFunctionCall %void %main_1
-        %110 = OpLoad %v4float %x_GLF_color
-        %111 = OpCompositeConstruct %main_out %110
-        %109 = OpFunctionCall %void %tint_symbol_2 %111
+        %108 = OpLabel
+        %109 = OpFunctionCall %main_out %main_inner
+        %110 = OpCompositeExtract %v4float %109 0
+               OpStore %x_GLF_color_1_1 %110
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.wgsl.expected.spvasm
index cad1211..7d9d490 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 112
+; Bound: 111
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -14,16 +15,15 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %numbers "numbers"
                OpName %a "a"
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -36,9 +36,13 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_3_0 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -46,17 +50,12 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
        %buf0 = OpTypeStruct %_arr_float_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_arr_int_uint_3_0 = OpTypeArray %int %uint_3
@@ -77,7 +76,7 @@
     %float_0 = OpConstant %float 0
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-        %100 = OpTypeFunction %void %main_out
+        %100 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
     %numbers = OpVariable %_ptr_Function__arr_int_uint_3_0 Function %26
@@ -153,18 +152,17 @@
          %80 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %100
-%tint_symbol = OpFunctionParameter %main_out
-        %104 = OpLabel
-        %105 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %105
-               OpReturn
+ %main_inner = OpFunction %main_out None %100
+        %103 = OpLabel
+        %104 = OpFunctionCall %void %main_1
+        %105 = OpLoad %v4float %x_GLF_color
+        %106 = OpCompositeConstruct %main_out %105
+               OpReturnValue %106
                OpFunctionEnd
        %main = OpFunction %void None %19
-        %107 = OpLabel
-        %108 = OpFunctionCall %void %main_1
-        %110 = OpLoad %v4float %x_GLF_color
-        %111 = OpCompositeConstruct %main_out %110
-        %109 = OpFunctionCall %void %tint_symbol_2 %111
+        %108 = OpLabel
+        %109 = OpFunctionCall %main_out %main_inner
+        %110 = OpCompositeExtract %v4float %109 0
+               OpStore %x_GLF_color_1_1 %110
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.spvasm.expected.spvasm
index d7c1363..e614433 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 94
+; Bound: 93
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %s "s"
                OpName %i "i"
@@ -20,27 +20,26 @@
                OpName %c "c"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
          %12 = OpTypeFunction %float
 %_ptr_Function_float = OpTypePointer Function %float
          %17 = OpConstantNull %float
@@ -63,7 +62,7 @@
     %float_5 = OpConstant %float 5
          %81 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %82 = OpTypeFunction %void %main_out
+         %82 = OpTypeFunction %main_out
       %func_ = OpFunction %float None %12
          %14 = OpLabel
           %s = OpVariable %_ptr_Function_float Function %17
@@ -133,7 +132,7 @@
                OpFunctionEnd
      %main_1 = OpFunction %void None %64
          %67 = OpLabel
-          %c = OpVariable %_ptr_Function_v4float Function %9
+          %c = OpVariable %_ptr_Function_v4float Function %5
          %70 = OpFunctionCall %float %func_
          %73 = OpCompositeConstruct %v4float %70 %float_0 %float_0 %float_1
                OpStore %c %73
@@ -151,18 +150,17 @@
          %77 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %82
-%tint_symbol = OpFunctionParameter %main_out
-         %86 = OpLabel
-         %87 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %87
-               OpReturn
+ %main_inner = OpFunction %main_out None %82
+         %85 = OpLabel
+         %86 = OpFunctionCall %void %main_1
+         %87 = OpLoad %v4float %x_GLF_color
+         %88 = OpCompositeConstruct %main_out %87
+               OpReturnValue %88
                OpFunctionEnd
        %main = OpFunction %void None %64
-         %89 = OpLabel
-         %90 = OpFunctionCall %void %main_1
-         %92 = OpLoad %v4float %x_GLF_color
-         %93 = OpCompositeConstruct %main_out %92
-         %91 = OpFunctionCall %void %tint_symbol_2 %93
+         %90 = OpLabel
+         %91 = OpFunctionCall %main_out %main_inner
+         %92 = OpCompositeExtract %v4float %91 0
+               OpStore %x_GLF_color_1_1 %92
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.wgsl.expected.spvasm
index d7c1363..e614433 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 94
+; Bound: 93
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %s "s"
                OpName %i "i"
@@ -20,27 +20,26 @@
                OpName %c "c"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
          %12 = OpTypeFunction %float
 %_ptr_Function_float = OpTypePointer Function %float
          %17 = OpConstantNull %float
@@ -63,7 +62,7 @@
     %float_5 = OpConstant %float 5
          %81 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %82 = OpTypeFunction %void %main_out
+         %82 = OpTypeFunction %main_out
       %func_ = OpFunction %float None %12
          %14 = OpLabel
           %s = OpVariable %_ptr_Function_float Function %17
@@ -133,7 +132,7 @@
                OpFunctionEnd
      %main_1 = OpFunction %void None %64
          %67 = OpLabel
-          %c = OpVariable %_ptr_Function_v4float Function %9
+          %c = OpVariable %_ptr_Function_v4float Function %5
          %70 = OpFunctionCall %float %func_
          %73 = OpCompositeConstruct %v4float %70 %float_0 %float_0 %float_1
                OpStore %c %73
@@ -151,18 +150,17 @@
          %77 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %82
-%tint_symbol = OpFunctionParameter %main_out
-         %86 = OpLabel
-         %87 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %87
-               OpReturn
+ %main_inner = OpFunction %main_out None %82
+         %85 = OpLabel
+         %86 = OpFunctionCall %void %main_1
+         %87 = OpLoad %v4float %x_GLF_color
+         %88 = OpCompositeConstruct %main_out %87
+               OpReturnValue %88
                OpFunctionEnd
        %main = OpFunction %void None %64
-         %89 = OpLabel
-         %90 = OpFunctionCall %void %main_1
-         %92 = OpLoad %v4float %x_GLF_color
-         %93 = OpCompositeConstruct %main_out %92
-         %91 = OpFunctionCall %void %tint_symbol_2 %93
+         %90 = OpLabel
+         %91 = OpFunctionCall %main_out %main_inner
+         %92 = OpCompositeExtract %v4float %91 0
+               OpStore %x_GLF_color_1_1 %92
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.spvasm.expected.spvasm
index c4e8344..c00bb8c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
@@ -15,15 +17,15 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
@@ -36,31 +38,29 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
        %buf1 = OpTypeStruct %_arr_float_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
@@ -78,7 +78,7 @@
     %v2float = OpTypeVector %float 2
 %_ptr_Function_int = OpTypePointer Function %int
    %main_out = OpTypeStruct %v4float
-         %88 = OpTypeFunction %void %main_out
+         %88 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
           %v = OpVariable %_ptr_Function_v2int Function %30
@@ -137,20 +137,20 @@
          %42 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %88
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %88
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %92 = OpLabel
-         %93 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %93
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %93 = OpFunctionCall %void %main_1
+         %94 = OpLoad %v4float %x_GLF_color
+         %95 = OpCompositeConstruct %main_out %94
+               OpReturnValue %95
                OpFunctionEnd
        %main = OpFunction %void None %23
-         %95 = OpLabel
-         %96 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %96
-         %97 = OpFunctionCall %void %main_1
-         %99 = OpLoad %v4float %x_GLF_color
-        %100 = OpCompositeConstruct %main_out %99
-         %98 = OpFunctionCall %void %tint_symbol_3 %100
+         %97 = OpLabel
+         %99 = OpLoad %v4float %gl_FragCoord_param_1
+         %98 = OpFunctionCall %main_out %main_inner %99
+        %100 = OpCompositeExtract %v4float %98 0
+               OpStore %x_GLF_color_1_1 %100
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.wgsl.expected.spvasm
index c4e8344..c00bb8c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
@@ -15,15 +17,15 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
@@ -36,31 +38,29 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
        %buf1 = OpTypeStruct %_arr_float_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
@@ -78,7 +78,7 @@
     %v2float = OpTypeVector %float 2
 %_ptr_Function_int = OpTypePointer Function %int
    %main_out = OpTypeStruct %v4float
-         %88 = OpTypeFunction %void %main_out
+         %88 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
           %v = OpVariable %_ptr_Function_v2int Function %30
@@ -137,20 +137,20 @@
          %42 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %88
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %88
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %92 = OpLabel
-         %93 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %93
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %93 = OpFunctionCall %void %main_1
+         %94 = OpLoad %v4float %x_GLF_color
+         %95 = OpCompositeConstruct %main_out %94
+               OpReturnValue %95
                OpFunctionEnd
        %main = OpFunction %void None %23
-         %95 = OpLabel
-         %96 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %96
-         %97 = OpFunctionCall %void %main_1
-         %99 = OpLoad %v4float %x_GLF_color
-        %100 = OpCompositeConstruct %main_out %99
-         %98 = OpFunctionCall %void %tint_symbol_3 %100
+         %97 = OpLabel
+         %99 = OpLoad %v4float %gl_FragCoord_param_1
+         %98 = OpFunctionCall %main_out %main_inner %99
+        %100 = OpCompositeExtract %v4float %98 0
+               OpStore %x_GLF_color_1_1 %100
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.spvasm.expected.spvasm
index abe5509..a83eaf8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.spvasm.expected.spvasm
@@ -1,44 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 64
+; Bound: 63
 ; Schema: 0
                OpCapability Shader
          %29 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "two"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %d "d"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -63,7 +62,7 @@
          %50 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %51 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %52 = OpTypeFunction %void %main_out
+         %52 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %v = OpVariable %_ptr_Function_v2float Function %19
@@ -90,18 +89,17 @@
          %45 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %52
-%tint_symbol = OpFunctionParameter %main_out
-         %56 = OpLabel
-         %57 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %57
-               OpReturn
+ %main_inner = OpFunction %main_out None %52
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %main_1
+         %57 = OpLoad %v4float %x_GLF_color
+         %58 = OpCompositeConstruct %main_out %57
+               OpReturnValue %58
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %59 = OpLabel
-         %60 = OpFunctionCall %void %main_1
-         %62 = OpLoad %v4float %x_GLF_color
-         %63 = OpCompositeConstruct %main_out %62
-         %61 = OpFunctionCall %void %tint_symbol_2 %63
+         %60 = OpLabel
+         %61 = OpFunctionCall %main_out %main_inner
+         %62 = OpCompositeExtract %v4float %61 0
+               OpStore %x_GLF_color_1_1 %62
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.wgsl.expected.spvasm
index abe5509..a83eaf8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.wgsl.expected.spvasm
@@ -1,44 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 64
+; Bound: 63
 ; Schema: 0
                OpCapability Shader
          %29 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "two"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %d "d"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -63,7 +62,7 @@
          %50 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %51 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %52 = OpTypeFunction %void %main_out
+         %52 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %v = OpVariable %_ptr_Function_v2float Function %19
@@ -90,18 +89,17 @@
          %45 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %52
-%tint_symbol = OpFunctionParameter %main_out
-         %56 = OpLabel
-         %57 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %57
-               OpReturn
+ %main_inner = OpFunction %main_out None %52
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %main_1
+         %57 = OpLoad %v4float %x_GLF_color
+         %58 = OpCompositeConstruct %main_out %57
+               OpReturnValue %58
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %59 = OpLabel
-         %60 = OpFunctionCall %void %main_1
-         %62 = OpLoad %v4float %x_GLF_color
-         %63 = OpCompositeConstruct %main_out %62
-         %61 = OpFunctionCall %void %tint_symbol_2 %63
+         %60 = OpLabel
+         %61 = OpFunctionCall %main_out %main_inner
+         %62 = OpCompositeExtract %v4float %61 0
+               OpStore %x_GLF_color_1_1 %62
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-mix-nan/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-mix-nan/0-opt.spvasm.expected.spvasm
index a076bbb..637b8df 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-mix-nan/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-mix-nan/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 126
+; Bound: 125
 ; Schema: 0
                OpCapability Shader
          %64 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
@@ -15,7 +16,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %nan "nan"
                OpName %undefined "undefined"
@@ -23,9 +23,9 @@
                OpName %x_84_phi "x_84_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 16
@@ -38,8 +38,12 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
@@ -47,18 +51,13 @@
        %buf1 = OpTypeStruct %_arr_int_uint_10
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_7 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -82,11 +81,11 @@
 %_ptr_Uniform_float = OpTypePointer Uniform %float
       %int_8 = OpConstant %int 8
    %main_out = OpTypeStruct %v4float
-        %114 = OpTypeFunction %void %main_out
+        %114 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
         %nan = OpVariable %_ptr_Function_float Function %26
-  %undefined = OpVariable %_ptr_Function_v4float Function %17
+  %undefined = OpVariable %_ptr_Function_v4float Function %5
        %x_83 = OpVariable %_ptr_Function_bool Function %32
    %x_84_phi = OpVariable %_ptr_Function_bool Function %32
          %34 = OpBitcast %float %int_n1
@@ -170,18 +169,17 @@
          %93 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %114
-%tint_symbol = OpFunctionParameter %main_out
-        %118 = OpLabel
-        %119 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %119
-               OpReturn
+ %main_inner = OpFunction %main_out None %114
+        %117 = OpLabel
+        %118 = OpFunctionCall %void %main_1
+        %119 = OpLoad %v4float %x_GLF_color
+        %120 = OpCompositeConstruct %main_out %119
+               OpReturnValue %120
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %121 = OpLabel
-        %122 = OpFunctionCall %void %main_1
-        %124 = OpLoad %v4float %x_GLF_color
-        %125 = OpCompositeConstruct %main_out %124
-        %123 = OpFunctionCall %void %tint_symbol_2 %125
+        %122 = OpLabel
+        %123 = OpFunctionCall %main_out %main_inner
+        %124 = OpCompositeExtract %v4float %123 0
+               OpStore %x_GLF_color_1_1 %124
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-mix-nan/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-mix-nan/0-opt.wgsl.expected.spvasm
index a076bbb..637b8df 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-mix-nan/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-mix-nan/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 126
+; Bound: 125
 ; Schema: 0
                OpCapability Shader
          %64 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
@@ -15,7 +16,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %nan "nan"
                OpName %undefined "undefined"
@@ -23,9 +23,9 @@
                OpName %x_84_phi "x_84_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 16
@@ -38,8 +38,12 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
@@ -47,18 +51,13 @@
        %buf1 = OpTypeStruct %_arr_int_uint_10
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_7 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -82,11 +81,11 @@
 %_ptr_Uniform_float = OpTypePointer Uniform %float
       %int_8 = OpConstant %int 8
    %main_out = OpTypeStruct %v4float
-        %114 = OpTypeFunction %void %main_out
+        %114 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
         %nan = OpVariable %_ptr_Function_float Function %26
-  %undefined = OpVariable %_ptr_Function_v4float Function %17
+  %undefined = OpVariable %_ptr_Function_v4float Function %5
        %x_83 = OpVariable %_ptr_Function_bool Function %32
    %x_84_phi = OpVariable %_ptr_Function_bool Function %32
          %34 = OpBitcast %float %int_n1
@@ -170,18 +169,17 @@
          %93 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %114
-%tint_symbol = OpFunctionParameter %main_out
-        %118 = OpLabel
-        %119 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %119
-               OpReturn
+ %main_inner = OpFunction %main_out None %114
+        %117 = OpLabel
+        %118 = OpFunctionCall %void %main_1
+        %119 = OpLoad %v4float %x_GLF_color
+        %120 = OpCompositeConstruct %main_out %119
+               OpReturnValue %120
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %121 = OpLabel
-        %122 = OpFunctionCall %void %main_1
-        %124 = OpLoad %v4float %x_GLF_color
-        %125 = OpCompositeConstruct %main_out %124
-        %123 = OpFunctionCall %void %tint_symbol_2 %125
+        %122 = OpLabel
+        %123 = OpFunctionCall %main_out %main_inner
+        %124 = OpCompositeExtract %v4float %123 0
+               OpStore %x_GLF_color_1_1 %124
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.spvasm.expected.spvasm
index 1e78c0a..90ce459 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 93
+; Bound: 92
 ; Schema: 0
                OpCapability Shader
          %35 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -15,16 +16,15 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %undefined "undefined"
                OpName %x_51 "x_51"
                OpName %x_52_phi "x_52_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -37,8 +37,12 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -46,18 +50,13 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -73,7 +72,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Uniform_float = OpTypePointer Uniform %float
    %main_out = OpTypeStruct %v4float
-         %81 = OpTypeFunction %void %main_out
+         %81 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
   %undefined = OpVariable %_ptr_Function_float Function %26
@@ -135,18 +134,17 @@
          %61 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %81
-%tint_symbol = OpFunctionParameter %main_out
-         %85 = OpLabel
-         %86 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %86
-               OpReturn
+ %main_inner = OpFunction %main_out None %81
+         %84 = OpLabel
+         %85 = OpFunctionCall %void %main_1
+         %86 = OpLoad %v4float %x_GLF_color
+         %87 = OpCompositeConstruct %main_out %86
+               OpReturnValue %87
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %88 = OpLabel
-         %89 = OpFunctionCall %void %main_1
-         %91 = OpLoad %v4float %x_GLF_color
-         %92 = OpCompositeConstruct %main_out %91
-         %90 = OpFunctionCall %void %tint_symbol_2 %92
+         %89 = OpLabel
+         %90 = OpFunctionCall %main_out %main_inner
+         %91 = OpCompositeExtract %v4float %90 0
+               OpStore %x_GLF_color_1_1 %91
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.wgsl.expected.spvasm
index 5d524ab..b89cc7a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 89
+; Bound: 88
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -14,16 +15,15 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %undefined "undefined"
                OpName %x_51 "x_51"
                OpName %x_52_phi "x_52_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -36,8 +36,12 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -45,18 +49,13 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -72,7 +71,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Uniform_float = OpTypePointer Uniform %float
    %main_out = OpTypeStruct %v4float
-         %77 = OpTypeFunction %void %main_out
+         %77 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
   %undefined = OpVariable %_ptr_Function_float Function %26
@@ -131,18 +130,17 @@
          %57 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %77
-%tint_symbol = OpFunctionParameter %main_out
-         %81 = OpLabel
-         %82 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %82
-               OpReturn
+ %main_inner = OpFunction %main_out None %77
+         %80 = OpLabel
+         %81 = OpFunctionCall %void %main_1
+         %82 = OpLoad %v4float %x_GLF_color
+         %83 = OpCompositeConstruct %main_out %82
+               OpReturnValue %83
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %84 = OpLabel
-         %85 = OpFunctionCall %void %main_1
-         %87 = OpLoad %v4float %x_GLF_color
-         %88 = OpCompositeConstruct %main_out %87
-         %86 = OpFunctionCall %void %tint_symbol_2 %88
+         %85 = OpLabel
+         %86 = OpFunctionCall %main_out %main_inner
+         %87 = OpCompositeExtract %v4float %86 0
+               OpStore %x_GLF_color_1_1 %87
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.spvasm
index a8b7c7b..154c791 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 131
+; Bound: 130
 ; Schema: 0
                OpCapability Shader
          %37 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
@@ -15,7 +16,6 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_10 "x_10"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f0 "f0"
                OpName %s1 "s1"
@@ -28,9 +28,9 @@
                OpName %x_72_phi "x_72_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -43,12 +43,13 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
@@ -62,8 +63,6 @@
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -83,7 +82,7 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
       %int_0 = OpConstant %int 0
    %main_out = OpTypeStruct %v4float
-        %119 = OpTypeFunction %void %main_out
+        %119 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
          %f0 = OpVariable %_ptr_Function_float Function %26
@@ -197,18 +196,17 @@
          %95 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %119
-%tint_symbol = OpFunctionParameter %main_out
-        %123 = OpLabel
-        %124 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %124
-               OpReturn
+ %main_inner = OpFunction %main_out None %119
+        %122 = OpLabel
+        %123 = OpFunctionCall %void %main_1
+        %124 = OpLoad %v4float %x_GLF_color
+        %125 = OpCompositeConstruct %main_out %124
+               OpReturnValue %125
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %126 = OpLabel
-        %127 = OpFunctionCall %void %main_1
-        %129 = OpLoad %v4float %x_GLF_color
-        %130 = OpCompositeConstruct %main_out %129
-        %128 = OpFunctionCall %void %tint_symbol_2 %130
+        %127 = OpLabel
+        %128 = OpFunctionCall %main_out %main_inner
+        %129 = OpCompositeExtract %v4float %128 0
+               OpStore %x_GLF_color_1_1 %129
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.wgsl.expected.spvasm
index f346779..6489e94 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 132
+; Bound: 131
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
@@ -14,7 +15,6 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_10 "x_10"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f0 "f0"
                OpName %s1 "s1"
@@ -27,9 +27,9 @@
                OpName %x_72_phi "x_72_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -42,12 +42,13 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
@@ -61,8 +62,6 @@
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -82,7 +81,7 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
       %int_0 = OpConstant %int 0
    %main_out = OpTypeStruct %v4float
-        %120 = OpTypeFunction %void %main_out
+        %120 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
          %f0 = OpVariable %_ptr_Function_float Function %26
@@ -210,18 +209,17 @@
          %96 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %120
-%tint_symbol = OpFunctionParameter %main_out
-        %124 = OpLabel
-        %125 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %125
-               OpReturn
+ %main_inner = OpFunction %main_out None %120
+        %123 = OpLabel
+        %124 = OpFunctionCall %void %main_1
+        %125 = OpLoad %v4float %x_GLF_color
+        %126 = OpCompositeConstruct %main_out %125
+               OpReturnValue %126
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %127 = OpLabel
-        %128 = OpFunctionCall %void %main_1
-        %130 = OpLoad %v4float %x_GLF_color
-        %131 = OpCompositeConstruct %main_out %130
-        %129 = OpFunctionCall %void %tint_symbol_2 %131
+        %128 = OpLabel
+        %129 = OpFunctionCall %main_out %main_inner
+        %130 = OpCompositeExtract %v4float %129 0
+               OpStore %x_GLF_color_1_1 %130
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.spvasm.expected.spvasm
index dcddef3..bd2d69d 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 107
+; Bound: 106
 ; Schema: 0
                OpCapability Shader
          %54 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %I "I"
                OpName %N "N"
@@ -23,9 +23,9 @@
                OpName %ref "ref"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_5 ArrayStride 16
@@ -38,8 +38,12 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
@@ -47,18 +51,13 @@
        %buf0 = OpTypeStruct %_arr_int_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
        %buf1 = OpTypeStruct %_arr_float_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -76,13 +75,13 @@
       %int_0 = OpConstant %int 0
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %95 = OpTypeFunction %void %main_out
+         %95 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
-          %I = OpVariable %_ptr_Function_v4float Function %17
-          %N = OpVariable %_ptr_Function_v4float Function %17
-          %R = OpVariable %_ptr_Function_v4float Function %17
-        %ref = OpVariable %_ptr_Function_v4float Function %17
+          %I = OpVariable %_ptr_Function_v4float Function %5
+          %N = OpVariable %_ptr_Function_v4float Function %5
+          %R = OpVariable %_ptr_Function_v4float Function %5
+        %ref = OpVariable %_ptr_Function_v4float Function %5
          %32 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2
          %33 = OpLoad %int %32
          %35 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3
@@ -147,18 +146,17 @@
          %75 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %95
-%tint_symbol = OpFunctionParameter %main_out
-         %99 = OpLabel
-        %100 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %100
-               OpReturn
+ %main_inner = OpFunction %main_out None %95
+         %98 = OpLabel
+         %99 = OpFunctionCall %void %main_1
+        %100 = OpLoad %v4float %x_GLF_color
+        %101 = OpCompositeConstruct %main_out %100
+               OpReturnValue %101
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %102 = OpLabel
-        %103 = OpFunctionCall %void %main_1
-        %105 = OpLoad %v4float %x_GLF_color
-        %106 = OpCompositeConstruct %main_out %105
-        %104 = OpFunctionCall %void %tint_symbol_2 %106
+        %103 = OpLabel
+        %104 = OpFunctionCall %main_out %main_inner
+        %105 = OpCompositeExtract %v4float %104 0
+               OpStore %x_GLF_color_1_1 %105
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.wgsl.expected.spvasm
index dcddef3..bd2d69d 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 107
+; Bound: 106
 ; Schema: 0
                OpCapability Shader
          %54 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %I "I"
                OpName %N "N"
@@ -23,9 +23,9 @@
                OpName %ref "ref"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_5 ArrayStride 16
@@ -38,8 +38,12 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
@@ -47,18 +51,13 @@
        %buf0 = OpTypeStruct %_arr_int_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
        %buf1 = OpTypeStruct %_arr_float_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -76,13 +75,13 @@
       %int_0 = OpConstant %int 0
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %95 = OpTypeFunction %void %main_out
+         %95 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
-          %I = OpVariable %_ptr_Function_v4float Function %17
-          %N = OpVariable %_ptr_Function_v4float Function %17
-          %R = OpVariable %_ptr_Function_v4float Function %17
-        %ref = OpVariable %_ptr_Function_v4float Function %17
+          %I = OpVariable %_ptr_Function_v4float Function %5
+          %N = OpVariable %_ptr_Function_v4float Function %5
+          %R = OpVariable %_ptr_Function_v4float Function %5
+        %ref = OpVariable %_ptr_Function_v4float Function %5
          %32 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2
          %33 = OpLoad %int %32
          %35 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3
@@ -147,18 +146,17 @@
          %75 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %95
-%tint_symbol = OpFunctionParameter %main_out
-         %99 = OpLabel
-        %100 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %100
-               OpReturn
+ %main_inner = OpFunction %main_out None %95
+         %98 = OpLabel
+         %99 = OpFunctionCall %void %main_1
+        %100 = OpLoad %v4float %x_GLF_color
+        %101 = OpCompositeConstruct %main_out %100
+               OpReturnValue %101
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %102 = OpLabel
-        %103 = OpFunctionCall %void %main_1
-        %105 = OpLoad %v4float %x_GLF_color
-        %106 = OpCompositeConstruct %main_out %105
-        %104 = OpFunctionCall %void %tint_symbol_2 %106
+        %103 = OpLabel
+        %104 = OpFunctionCall %main_out %main_inner
+        %105 = OpCompositeExtract %v4float %104 0
+               OpStore %x_GLF_color_1_1 %105
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.spvasm.expected.spvasm
index c418795..b87ac77 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 84
+; Bound: 83
 ; Schema: 0
                OpCapability Shader
          %33 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -15,16 +16,15 @@
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %undefined "undefined"
                OpName %x_45 "x_45"
                OpName %x_46_phi "x_46_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -37,8 +37,12 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -46,18 +50,13 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf1 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -72,7 +71,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Uniform_float = OpTypePointer Uniform %float
    %main_out = OpTypeStruct %v4float
-         %72 = OpTypeFunction %void %main_out
+         %72 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
   %undefined = OpVariable %_ptr_Function_float Function %26
@@ -126,18 +125,17 @@
          %52 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %72
-%tint_symbol = OpFunctionParameter %main_out
-         %76 = OpLabel
-         %77 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %77
-               OpReturn
+ %main_inner = OpFunction %main_out None %72
+         %75 = OpLabel
+         %76 = OpFunctionCall %void %main_1
+         %77 = OpLoad %v4float %x_GLF_color
+         %78 = OpCompositeConstruct %main_out %77
+               OpReturnValue %78
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %79 = OpLabel
-         %80 = OpFunctionCall %void %main_1
-         %82 = OpLoad %v4float %x_GLF_color
-         %83 = OpCompositeConstruct %main_out %82
-         %81 = OpFunctionCall %void %tint_symbol_2 %83
+         %80 = OpLabel
+         %81 = OpFunctionCall %main_out %main_inner
+         %82 = OpCompositeExtract %v4float %81 0
+               OpStore %x_GLF_color_1_1 %82
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.wgsl.expected.spvasm
index d03d7ff..03787ca 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 84
+; Bound: 83
 ; Schema: 0
                OpCapability Shader
          %33 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -15,16 +16,15 @@
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %undefined "undefined"
                OpName %x_45 "x_45"
                OpName %x_46_phi "x_46_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -37,8 +37,12 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -46,18 +50,13 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf1 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -72,7 +71,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Uniform_float = OpTypePointer Uniform %float
    %main_out = OpTypeStruct %v4float
-         %72 = OpTypeFunction %void %main_out
+         %72 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
   %undefined = OpVariable %_ptr_Function_float Function %26
@@ -126,18 +125,17 @@
          %52 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %72
-%tint_symbol = OpFunctionParameter %main_out
-         %76 = OpLabel
-         %77 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %77
-               OpReturn
+ %main_inner = OpFunction %main_out None %72
+         %75 = OpLabel
+         %76 = OpFunctionCall %void %main_1
+         %77 = OpLoad %v4float %x_GLF_color
+         %78 = OpCompositeConstruct %main_out %77
+               OpReturnValue %78
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %79 = OpLabel
-         %80 = OpFunctionCall %void %main_1
-         %82 = OpLoad %v4float %x_GLF_color
-         %83 = OpCompositeConstruct %main_out %82
-         %81 = OpFunctionCall %void %tint_symbol_2 %83
+         %80 = OpLabel
+         %81 = OpFunctionCall %main_out %main_inner
+         %82 = OpCompositeExtract %v4float %81 0
+               OpStore %x_GLF_color_1_1 %82
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.spvasm
index ad52ff1..e89c0bd 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.spvasm
@@ -1,33 +1,32 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 65
+; Bound: 64
 ; Schema: 0
                OpCapability Shader
          %27 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %dist1 "dist1"
                OpName %dist2 "dist2"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -49,7 +48,7 @@
          %51 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %52 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %53 = OpTypeFunction %void %main_out
+         %53 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %v = OpVariable %_ptr_Function_v4float Function %5
@@ -85,18 +84,17 @@
          %47 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %53
-%tint_symbol = OpFunctionParameter %main_out
-         %57 = OpLabel
-         %58 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %58
-               OpReturn
+ %main_inner = OpFunction %main_out None %53
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %main_1
+         %58 = OpLoad %v4float %x_GLF_color
+         %59 = OpCompositeConstruct %main_out %58
+               OpReturnValue %59
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %60 = OpLabel
-         %61 = OpFunctionCall %void %main_1
-         %63 = OpLoad %v4float %x_GLF_color
-         %64 = OpCompositeConstruct %main_out %63
-         %62 = OpFunctionCall %void %tint_symbol_2 %64
+         %61 = OpLabel
+         %62 = OpFunctionCall %main_out %main_inner
+         %63 = OpCompositeExtract %v4float %62 0
+               OpStore %x_GLF_color_1_1 %63
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.wgsl.expected.spvasm
index 1f2f4f7..d72db82 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.wgsl.expected.spvasm
@@ -1,33 +1,32 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 67
+; Bound: 66
 ; Schema: 0
                OpCapability Shader
          %27 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %dist1 "dist1"
                OpName %dist2 "dist2"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -49,7 +48,7 @@
          %53 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %54 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %55 = OpTypeFunction %void %main_out
+         %55 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %v = OpVariable %_ptr_Function_v4float Function %5
@@ -90,18 +89,17 @@
          %49 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %55
-%tint_symbol = OpFunctionParameter %main_out
-         %59 = OpLabel
-         %60 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %60
-               OpReturn
+ %main_inner = OpFunction %main_out None %55
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %main_1
+         %60 = OpLoad %v4float %x_GLF_color
+         %61 = OpCompositeConstruct %main_out %60
+               OpReturnValue %61
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %62 = OpLabel
-         %63 = OpFunctionCall %void %main_1
-         %65 = OpLoad %v4float %x_GLF_color
-         %66 = OpCompositeConstruct %main_out %65
-         %64 = OpFunctionCall %void %tint_symbol_2 %66
+         %63 = OpLabel
+         %64 = OpFunctionCall %main_out %main_inner
+         %65 = OpCompositeExtract %v4float %64 0
+               OpStore %x_GLF_color_1_1 %65
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.spvasm.expected.spvasm
index 5f8230b..f914586 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 175
+; Bound: 174
 ; Schema: 0
                OpCapability Shader
          %96 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_15 "x_15"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m0 "m0"
                OpName %m1 "m1"
@@ -27,9 +27,9 @@
                OpName %v3 "v3"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_12 ArrayStride 16
@@ -42,8 +42,12 @@
                OpDecorate %x_15 NonWritable
                OpDecorate %x_15 DescriptorSet 0
                OpDecorate %x_15 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_12 = OpConstant %uint 12
@@ -51,18 +55,13 @@
        %buf1 = OpTypeStruct %_arr_int_uint_12
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_15 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %mat3v4float = OpTypeMatrix %v4float 3
@@ -99,17 +98,17 @@
 %_ptr_Uniform_float = OpTypePointer Uniform %float
 %_ptr_Private_float = OpTypePointer Private %float
    %main_out = OpTypeStruct %v4float
-        %163 = OpTypeFunction %void %main_out
+        %163 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
          %m0 = OpVariable %_ptr_Function_mat3v4float Function %27
          %m1 = OpVariable %_ptr_Function_mat3v4float Function %27
   %undefined = OpVariable %_ptr_Function_v3float Function %32
     %defined = OpVariable %_ptr_Function_v3float Function %32
-         %v0 = OpVariable %_ptr_Function_v4float Function %12
-         %v1 = OpVariable %_ptr_Function_v4float Function %12
-         %v2 = OpVariable %_ptr_Function_v4float Function %12
-         %v3 = OpVariable %_ptr_Function_v4float Function %12
+         %v0 = OpVariable %_ptr_Function_v4float Function %5
+         %v1 = OpVariable %_ptr_Function_v4float Function %5
+         %v2 = OpVariable %_ptr_Function_v4float Function %5
+         %v3 = OpVariable %_ptr_Function_v4float Function %5
          %42 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_4
          %43 = OpLoad %int %42
          %45 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_5
@@ -227,18 +226,17 @@
         %156 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %163
-%tint_symbol = OpFunctionParameter %main_out
-        %167 = OpLabel
-        %168 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %168
-               OpReturn
+ %main_inner = OpFunction %main_out None %163
+        %166 = OpLabel
+        %167 = OpFunctionCall %void %main_1
+        %168 = OpLoad %v4float %x_GLF_color
+        %169 = OpCompositeConstruct %main_out %168
+               OpReturnValue %169
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %170 = OpLabel
-        %171 = OpFunctionCall %void %main_1
-        %173 = OpLoad %v4float %x_GLF_color
-        %174 = OpCompositeConstruct %main_out %173
-        %172 = OpFunctionCall %void %tint_symbol_2 %174
+        %171 = OpLabel
+        %172 = OpFunctionCall %main_out %main_inner
+        %173 = OpCompositeExtract %v4float %172 0
+               OpStore %x_GLF_color_1_1 %173
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.wgsl.expected.spvasm
index 5f8230b..f914586 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 175
+; Bound: 174
 ; Schema: 0
                OpCapability Shader
          %96 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_15 "x_15"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m0 "m0"
                OpName %m1 "m1"
@@ -27,9 +27,9 @@
                OpName %v3 "v3"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_12 ArrayStride 16
@@ -42,8 +42,12 @@
                OpDecorate %x_15 NonWritable
                OpDecorate %x_15 DescriptorSet 0
                OpDecorate %x_15 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_12 = OpConstant %uint 12
@@ -51,18 +55,13 @@
        %buf1 = OpTypeStruct %_arr_int_uint_12
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_15 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %mat3v4float = OpTypeMatrix %v4float 3
@@ -99,17 +98,17 @@
 %_ptr_Uniform_float = OpTypePointer Uniform %float
 %_ptr_Private_float = OpTypePointer Private %float
    %main_out = OpTypeStruct %v4float
-        %163 = OpTypeFunction %void %main_out
+        %163 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
          %m0 = OpVariable %_ptr_Function_mat3v4float Function %27
          %m1 = OpVariable %_ptr_Function_mat3v4float Function %27
   %undefined = OpVariable %_ptr_Function_v3float Function %32
     %defined = OpVariable %_ptr_Function_v3float Function %32
-         %v0 = OpVariable %_ptr_Function_v4float Function %12
-         %v1 = OpVariable %_ptr_Function_v4float Function %12
-         %v2 = OpVariable %_ptr_Function_v4float Function %12
-         %v3 = OpVariable %_ptr_Function_v4float Function %12
+         %v0 = OpVariable %_ptr_Function_v4float Function %5
+         %v1 = OpVariable %_ptr_Function_v4float Function %5
+         %v2 = OpVariable %_ptr_Function_v4float Function %5
+         %v3 = OpVariable %_ptr_Function_v4float Function %5
          %42 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_4
          %43 = OpLoad %int %42
          %45 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_5
@@ -227,18 +226,17 @@
         %156 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %163
-%tint_symbol = OpFunctionParameter %main_out
-        %167 = OpLabel
-        %168 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %168
-               OpReturn
+ %main_inner = OpFunction %main_out None %163
+        %166 = OpLabel
+        %167 = OpFunctionCall %void %main_1
+        %168 = OpLoad %v4float %x_GLF_color
+        %169 = OpCompositeConstruct %main_out %168
+               OpReturnValue %169
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %170 = OpLabel
-        %171 = OpFunctionCall %void %main_1
-        %173 = OpLoad %v4float %x_GLF_color
-        %174 = OpCompositeConstruct %main_out %173
-        %172 = OpFunctionCall %void %tint_symbol_2 %174
+        %171 = OpLabel
+        %172 = OpFunctionCall %main_out %main_inner
+        %173 = OpCompositeExtract %v4float %172 0
+               OpStore %x_GLF_color_1_1 %173
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.spvasm.expected.spvasm
index 1b6c2cf..e81d465 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.spvasm.expected.spvasm
@@ -1,34 +1,38 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 85
+; Bound: 84
 ; Schema: 0
                OpCapability Shader
          %43 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -36,13 +40,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -57,11 +56,11 @@
 %_ptr_Function_float = OpTypePointer Function %float
       %int_0 = OpConstant %int 0
    %main_out = OpTypeStruct %v4float
-         %73 = OpTypeFunction %void %main_out
+         %73 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %21
-          %v = OpVariable %_ptr_Function_v4float Function %12
+          %v = OpVariable %_ptr_Function_v4float Function %5
          %27 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
          %28 = OpLoad %int %27
                OpStore %i %28
@@ -121,18 +120,17 @@
                OpStore %x_GLF_color %72
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %73
-%tint_symbol = OpFunctionParameter %main_out
-         %77 = OpLabel
-         %78 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %78
-               OpReturn
+ %main_inner = OpFunction %main_out None %73
+         %76 = OpLabel
+         %77 = OpFunctionCall %void %main_1
+         %78 = OpLoad %v4float %x_GLF_color
+         %79 = OpCompositeConstruct %main_out %78
+               OpReturnValue %79
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %80 = OpLabel
-         %81 = OpFunctionCall %void %main_1
-         %83 = OpLoad %v4float %x_GLF_color
-         %84 = OpCompositeConstruct %main_out %83
-         %82 = OpFunctionCall %void %tint_symbol_2 %84
+         %81 = OpLabel
+         %82 = OpFunctionCall %main_out %main_inner
+         %83 = OpCompositeExtract %v4float %82 0
+               OpStore %x_GLF_color_1_1 %83
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.wgsl.expected.spvasm
index 1b6c2cf..e81d465 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.wgsl.expected.spvasm
@@ -1,34 +1,38 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 85
+; Bound: 84
 ; Schema: 0
                OpCapability Shader
          %43 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -36,13 +40,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -57,11 +56,11 @@
 %_ptr_Function_float = OpTypePointer Function %float
       %int_0 = OpConstant %int 0
    %main_out = OpTypeStruct %v4float
-         %73 = OpTypeFunction %void %main_out
+         %73 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %21
-          %v = OpVariable %_ptr_Function_v4float Function %12
+          %v = OpVariable %_ptr_Function_v4float Function %5
          %27 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
          %28 = OpLoad %int %27
                OpStore %i %28
@@ -121,18 +120,17 @@
                OpStore %x_GLF_color %72
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %73
-%tint_symbol = OpFunctionParameter %main_out
-         %77 = OpLabel
-         %78 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %78
-               OpReturn
+ %main_inner = OpFunction %main_out None %73
+         %76 = OpLabel
+         %77 = OpFunctionCall %void %main_1
+         %78 = OpLoad %v4float %x_GLF_color
+         %79 = OpCompositeConstruct %main_out %78
+               OpReturnValue %79
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %80 = OpLabel
-         %81 = OpFunctionCall %void %main_1
-         %83 = OpLoad %v4float %x_GLF_color
-         %84 = OpCompositeConstruct %main_out %83
-         %82 = OpFunctionCall %void %tint_symbol_2 %84
+         %81 = OpLabel
+         %82 = OpFunctionCall %main_out %main_inner
+         %83 = OpCompositeExtract %v4float %82 0
+               OpStore %x_GLF_color_1_1 %83
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.spvasm.expected.spvasm
index 5b91fa9..c84ec50 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %75 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
@@ -16,8 +18,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_11 "x_11"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %arr "arr"
                OpName %a "a"
@@ -25,9 +25,11 @@
                OpName %c "c"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -40,10 +42,15 @@
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_3_0 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -51,21 +58,14 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %12
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf1 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_11 = OpVariable %_ptr_Uniform_buf1 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
 %_arr_int_uint_3_0 = OpTypeArray %int %uint_3
@@ -82,7 +82,7 @@
        %bool = OpTypeBool
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %98 = OpTypeFunction %void %main_out
+         %98 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
         %arr = OpVariable %_ptr_Function__arr_int_uint_3_0 Function %30
@@ -154,20 +154,20 @@
                OpStore %x_GLF_color %97
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %98
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %98
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %102 = OpLabel
-        %103 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %103
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %103 = OpFunctionCall %void %main_1
+        %104 = OpLoad %v4float %x_GLF_color
+        %105 = OpCompositeConstruct %main_out %104
+               OpReturnValue %105
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %105 = OpLabel
-        %106 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %106
-        %107 = OpFunctionCall %void %main_1
-        %109 = OpLoad %v4float %x_GLF_color
-        %110 = OpCompositeConstruct %main_out %109
-        %108 = OpFunctionCall %void %tint_symbol_3 %110
+        %107 = OpLabel
+        %109 = OpLoad %v4float %gl_FragCoord_param_1
+        %108 = OpFunctionCall %main_out %main_inner %109
+        %110 = OpCompositeExtract %v4float %108 0
+               OpStore %x_GLF_color_1_1 %110
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.wgsl.expected.spvasm
index 5b91fa9..c84ec50 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %75 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
@@ -16,8 +18,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_11 "x_11"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %arr "arr"
                OpName %a "a"
@@ -25,9 +25,11 @@
                OpName %c "c"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -40,10 +42,15 @@
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_3_0 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -51,21 +58,14 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %12
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf1 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_11 = OpVariable %_ptr_Uniform_buf1 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
 %_arr_int_uint_3_0 = OpTypeArray %int %uint_3
@@ -82,7 +82,7 @@
        %bool = OpTypeBool
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %98 = OpTypeFunction %void %main_out
+         %98 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
         %arr = OpVariable %_ptr_Function__arr_int_uint_3_0 Function %30
@@ -154,20 +154,20 @@
                OpStore %x_GLF_color %97
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %98
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %98
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %102 = OpLabel
-        %103 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %103
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %103 = OpFunctionCall %void %main_1
+        %104 = OpLoad %v4float %x_GLF_color
+        %105 = OpCompositeConstruct %main_out %104
+               OpReturnValue %105
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %105 = OpLabel
-        %106 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %106
-        %107 = OpFunctionCall %void %main_1
-        %109 = OpLoad %v4float %x_GLF_color
-        %110 = OpCompositeConstruct %main_out %109
-        %108 = OpFunctionCall %void %tint_symbol_3 %110
+        %107 = OpLabel
+        %109 = OpLoad %v4float %gl_FragCoord_param_1
+        %108 = OpFunctionCall %main_out %main_inner %109
+        %110 = OpCompositeExtract %v4float %108 0
+               OpStore %x_GLF_color_1_1 %110
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.spvasm.expected.spvasm
index e2c5551..4698e5c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 321
+; Bound: 320
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -14,7 +15,6 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "one"
                OpName %x_19 "x_19"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %arr0 "arr0"
                OpName %arr1 "arr1"
@@ -32,9 +32,9 @@
                OpName %x_278_phi "x_278_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_20 ArrayStride 16
@@ -46,9 +46,13 @@
                OpDecorate %x_19 NonWritable
                OpDecorate %x_19 DescriptorSet 0
                OpDecorate %x_19 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_20 = OpConstant %uint 20
@@ -56,16 +60,11 @@
        %buf0 = OpTypeStruct %_arr_int_uint_20
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %buf1 = OpTypeStruct %int
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_19 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
     %uint_10 = OpConstant %uint 10
@@ -100,7 +99,7 @@
 %_ptr_Function_bool = OpTypePointer Function %bool
         %273 = OpConstantNull %bool
    %main_out = OpTypeStruct %v4float
-        %309 = OpTypeFunction %void %main_out
+        %309 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
        %arr0 = OpVariable %_ptr_Function__arr_int_uint_10 Function %26
@@ -460,18 +459,17 @@
         %268 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %309
-%tint_symbol = OpFunctionParameter %main_out
-        %313 = OpLabel
-        %314 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %314
-               OpReturn
+ %main_inner = OpFunction %main_out None %309
+        %312 = OpLabel
+        %313 = OpFunctionCall %void %main_1
+        %314 = OpLoad %v4float %x_GLF_color
+        %315 = OpCompositeConstruct %main_out %314
+               OpReturnValue %315
                OpFunctionEnd
        %main = OpFunction %void None %18
-        %316 = OpLabel
-        %317 = OpFunctionCall %void %main_1
-        %319 = OpLoad %v4float %x_GLF_color
-        %320 = OpCompositeConstruct %main_out %319
-        %318 = OpFunctionCall %void %tint_symbol_2 %320
+        %317 = OpLabel
+        %318 = OpFunctionCall %main_out %main_inner
+        %319 = OpCompositeExtract %v4float %318 0
+               OpStore %x_GLF_color_1_1 %319
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.wgsl.expected.spvasm
index e2c5551..4698e5c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 321
+; Bound: 320
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -14,7 +15,6 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "one"
                OpName %x_19 "x_19"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %arr0 "arr0"
                OpName %arr1 "arr1"
@@ -32,9 +32,9 @@
                OpName %x_278_phi "x_278_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_20 ArrayStride 16
@@ -46,9 +46,13 @@
                OpDecorate %x_19 NonWritable
                OpDecorate %x_19 DescriptorSet 0
                OpDecorate %x_19 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_20 = OpConstant %uint 20
@@ -56,16 +60,11 @@
        %buf0 = OpTypeStruct %_arr_int_uint_20
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %buf1 = OpTypeStruct %int
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_19 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
     %uint_10 = OpConstant %uint 10
@@ -100,7 +99,7 @@
 %_ptr_Function_bool = OpTypePointer Function %bool
         %273 = OpConstantNull %bool
    %main_out = OpTypeStruct %v4float
-        %309 = OpTypeFunction %void %main_out
+        %309 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
        %arr0 = OpVariable %_ptr_Function__arr_int_uint_10 Function %26
@@ -460,18 +459,17 @@
         %268 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %309
-%tint_symbol = OpFunctionParameter %main_out
-        %313 = OpLabel
-        %314 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %314
-               OpReturn
+ %main_inner = OpFunction %main_out None %309
+        %312 = OpLabel
+        %313 = OpFunctionCall %void %main_1
+        %314 = OpLoad %v4float %x_GLF_color
+        %315 = OpCompositeConstruct %main_out %314
+               OpReturnValue %315
                OpFunctionEnd
        %main = OpFunction %void None %18
-        %316 = OpLabel
-        %317 = OpFunctionCall %void %main_1
-        %319 = OpLoad %v4float %x_GLF_color
-        %320 = OpCompositeConstruct %main_out %319
-        %318 = OpFunctionCall %void %tint_symbol_2 %320
+        %317 = OpLabel
+        %318 = OpFunctionCall %main_out %main_inner
+        %319 = OpCompositeExtract %v4float %318 0
+               OpStore %x_GLF_color_1_1 %319
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.spvasm.expected.spvasm
index f43127a..a954c3c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.spvasm.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 143
+; Bound: 142
 ; Schema: 0
                OpCapability Shader
          %60 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v1 "v1"
                OpName %v2 "v2"
@@ -28,30 +28,29 @@
                OpName %x_94_phi "x_94_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_7 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_7 = OpConstant %uint 7
 %_arr_float_uint_7 = OpTypeArray %float %uint_7
        %buf0 = OpTypeStruct %_arr_float_uint_7
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -77,13 +76,13 @@
      %uint_3 = OpConstant %uint 3
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-        %131 = OpTypeFunction %void %main_out
+        %131 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
-         %v1 = OpVariable %_ptr_Function_v4float Function %11
-         %v2 = OpVariable %_ptr_Function_v4float Function %11
-         %v3 = OpVariable %_ptr_Function_v4float Function %11
-         %v4 = OpVariable %_ptr_Function_v4float Function %11
+         %v1 = OpVariable %_ptr_Function_v4float Function %5
+         %v2 = OpVariable %_ptr_Function_v4float Function %5
+         %v3 = OpVariable %_ptr_Function_v4float Function %5
+         %v4 = OpVariable %_ptr_Function_v4float Function %5
        %x_69 = OpVariable %_ptr_Function_bool Function %26
        %x_77 = OpVariable %_ptr_Function_bool Function %26
        %x_85 = OpVariable %_ptr_Function_bool Function %26
@@ -207,18 +206,17 @@
         %115 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %131
-%tint_symbol = OpFunctionParameter %main_out
-        %135 = OpLabel
-        %136 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %136
-               OpReturn
+ %main_inner = OpFunction %main_out None %131
+        %134 = OpLabel
+        %135 = OpFunctionCall %void %main_1
+        %136 = OpLoad %v4float %x_GLF_color
+        %137 = OpCompositeConstruct %main_out %136
+               OpReturnValue %137
                OpFunctionEnd
        %main = OpFunction %void None %14
-        %138 = OpLabel
-        %139 = OpFunctionCall %void %main_1
-        %141 = OpLoad %v4float %x_GLF_color
-        %142 = OpCompositeConstruct %main_out %141
-        %140 = OpFunctionCall %void %tint_symbol_2 %142
+        %139 = OpLabel
+        %140 = OpFunctionCall %main_out %main_inner
+        %141 = OpCompositeExtract %v4float %140 0
+               OpStore %x_GLF_color_1_1 %141
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.wgsl.expected.spvasm
index 9c23d5b..3d79753 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.wgsl.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 143
+; Bound: 142
 ; Schema: 0
                OpCapability Shader
          %60 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v1 "v1"
                OpName %v2 "v2"
@@ -28,30 +28,29 @@
                OpName %x_94_phi "x_94_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_7 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_7 = OpConstant %uint 7
 %_arr_float_uint_7 = OpTypeArray %float %uint_7
        %buf0 = OpTypeStruct %_arr_float_uint_7
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -77,13 +76,13 @@
      %uint_3 = OpConstant %uint 3
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-        %131 = OpTypeFunction %void %main_out
+        %131 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
-         %v1 = OpVariable %_ptr_Function_v4float Function %11
-         %v2 = OpVariable %_ptr_Function_v4float Function %11
-         %v3 = OpVariable %_ptr_Function_v4float Function %11
-         %v4 = OpVariable %_ptr_Function_v4float Function %11
+         %v1 = OpVariable %_ptr_Function_v4float Function %5
+         %v2 = OpVariable %_ptr_Function_v4float Function %5
+         %v3 = OpVariable %_ptr_Function_v4float Function %5
+         %v4 = OpVariable %_ptr_Function_v4float Function %5
        %x_69 = OpVariable %_ptr_Function_bool Function %26
        %x_77 = OpVariable %_ptr_Function_bool Function %26
        %x_85 = OpVariable %_ptr_Function_bool Function %26
@@ -207,18 +206,17 @@
         %115 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %131
-%tint_symbol = OpFunctionParameter %main_out
-        %135 = OpLabel
-        %136 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %136
-               OpReturn
+ %main_inner = OpFunction %main_out None %131
+        %134 = OpLabel
+        %135 = OpFunctionCall %void %main_1
+        %136 = OpLoad %v4float %x_GLF_color
+        %137 = OpCompositeConstruct %main_out %136
+               OpReturnValue %137
                OpFunctionEnd
        %main = OpFunction %void None %14
-        %138 = OpLabel
-        %139 = OpFunctionCall %void %main_1
-        %141 = OpLoad %v4float %x_GLF_color
-        %142 = OpCompositeConstruct %main_out %141
-        %140 = OpFunctionCall %void %tint_symbol_2 %142
+        %139 = OpLabel
+        %140 = OpFunctionCall %main_out %main_inner
+        %141 = OpCompositeExtract %v4float %140 0
+               OpStore %x_GLF_color_1_1 %141
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.spvasm.expected.spvasm
index f01fd57..a7b854b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 100
+; Bound: 99
 ; Schema: 0
                OpCapability Shader
          %49 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %f "f"
@@ -23,9 +23,9 @@
                OpName %x_57_phi "x_57_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -38,8 +38,12 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -47,17 +51,12 @@
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf0 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -73,10 +72,10 @@
 %_ptr_Uniform_float = OpTypePointer Uniform %float
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %88 = OpTypeFunction %void %main_out
+         %88 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
-          %v = OpVariable %_ptr_Function_v4float Function %16
+          %v = OpVariable %_ptr_Function_v4float Function %5
           %f = OpVariable %_ptr_Function_float Function %27
        %x_56 = OpVariable %_ptr_Function_bool Function %31
    %x_57_phi = OpVariable %_ptr_Function_bool Function %31
@@ -144,18 +143,17 @@
          %68 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %88
-%tint_symbol = OpFunctionParameter %main_out
-         %92 = OpLabel
-         %93 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %93
-               OpReturn
+ %main_inner = OpFunction %main_out None %88
+         %91 = OpLabel
+         %92 = OpFunctionCall %void %main_1
+         %93 = OpLoad %v4float %x_GLF_color
+         %94 = OpCompositeConstruct %main_out %93
+               OpReturnValue %94
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %95 = OpLabel
-         %96 = OpFunctionCall %void %main_1
-         %98 = OpLoad %v4float %x_GLF_color
-         %99 = OpCompositeConstruct %main_out %98
-         %97 = OpFunctionCall %void %tint_symbol_2 %99
+         %96 = OpLabel
+         %97 = OpFunctionCall %main_out %main_inner
+         %98 = OpCompositeExtract %v4float %97 0
+               OpStore %x_GLF_color_1_1 %98
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.wgsl.expected.spvasm
index f01fd57..a7b854b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 100
+; Bound: 99
 ; Schema: 0
                OpCapability Shader
          %49 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %f "f"
@@ -23,9 +23,9 @@
                OpName %x_57_phi "x_57_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -38,8 +38,12 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -47,17 +51,12 @@
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf0 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -73,10 +72,10 @@
 %_ptr_Uniform_float = OpTypePointer Uniform %float
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %88 = OpTypeFunction %void %main_out
+         %88 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
-          %v = OpVariable %_ptr_Function_v4float Function %16
+          %v = OpVariable %_ptr_Function_v4float Function %5
           %f = OpVariable %_ptr_Function_float Function %27
        %x_56 = OpVariable %_ptr_Function_bool Function %31
    %x_57_phi = OpVariable %_ptr_Function_bool Function %31
@@ -144,18 +143,17 @@
          %68 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %88
-%tint_symbol = OpFunctionParameter %main_out
-         %92 = OpLabel
-         %93 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %93
-               OpReturn
+ %main_inner = OpFunction %main_out None %88
+         %91 = OpLabel
+         %92 = OpFunctionCall %void %main_1
+         %93 = OpLoad %v4float %x_GLF_color
+         %94 = OpCompositeConstruct %main_out %93
+               OpReturnValue %94
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %95 = OpLabel
-         %96 = OpFunctionCall %void %main_1
-         %98 = OpLoad %v4float %x_GLF_color
-         %99 = OpCompositeConstruct %main_out %98
-         %97 = OpFunctionCall %void %tint_symbol_2 %99
+         %96 = OpLabel
+         %97 = OpFunctionCall %main_out %main_inner
+         %98 = OpCompositeExtract %v4float %97 0
+               OpStore %x_GLF_color_1_1 %98
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.spvasm.expected.spvasm
index f8a6cea..8eb3378 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 80
+; Bound: 79
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_i1_ "func_i1_"
                OpName %x "x"
                OpName %main_1 "main_1"
@@ -22,27 +22,26 @@
                OpName %x_35_phi "x_35_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Function_int = OpTypePointer Function %int
          %12 = OpTypeFunction %int %_ptr_Function_int
      %int_10 = OpConstant %int 10
@@ -62,7 +61,7 @@
          %66 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %67 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %68 = OpTypeFunction %void %main_out
+         %68 = OpTypeFunction %main_out
    %func_i1_ = OpFunction %int None %12
           %x = OpFunctionParameter %_ptr_Function_int
          %16 = OpLabel
@@ -128,18 +127,17 @@
          %61 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %68
-%tint_symbol = OpFunctionParameter %main_out
-         %72 = OpLabel
-         %73 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %73
-               OpReturn
+ %main_inner = OpFunction %main_out None %68
+         %71 = OpLabel
+         %72 = OpFunctionCall %void %main_1
+         %73 = OpLoad %v4float %x_GLF_color
+         %74 = OpCompositeConstruct %main_out %73
+               OpReturnValue %74
                OpFunctionEnd
        %main = OpFunction %void None %26
-         %75 = OpLabel
-         %76 = OpFunctionCall %void %main_1
-         %78 = OpLoad %v4float %x_GLF_color
-         %79 = OpCompositeConstruct %main_out %78
-         %77 = OpFunctionCall %void %tint_symbol_2 %79
+         %76 = OpLabel
+         %77 = OpFunctionCall %main_out %main_inner
+         %78 = OpCompositeExtract %v4float %77 0
+               OpStore %x_GLF_color_1_1 %78
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.wgsl.expected.spvasm
index f8a6cea..8eb3378 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 80
+; Bound: 79
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_i1_ "func_i1_"
                OpName %x "x"
                OpName %main_1 "main_1"
@@ -22,27 +22,26 @@
                OpName %x_35_phi "x_35_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Function_int = OpTypePointer Function %int
          %12 = OpTypeFunction %int %_ptr_Function_int
      %int_10 = OpConstant %int 10
@@ -62,7 +61,7 @@
          %66 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %67 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %68 = OpTypeFunction %void %main_out
+         %68 = OpTypeFunction %main_out
    %func_i1_ = OpFunction %int None %12
           %x = OpFunctionParameter %_ptr_Function_int
          %16 = OpLabel
@@ -128,18 +127,17 @@
          %61 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %68
-%tint_symbol = OpFunctionParameter %main_out
-         %72 = OpLabel
-         %73 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %73
-               OpReturn
+ %main_inner = OpFunction %main_out None %68
+         %71 = OpLabel
+         %72 = OpFunctionCall %void %main_1
+         %73 = OpLoad %v4float %x_GLF_color
+         %74 = OpCompositeConstruct %main_out %73
+               OpReturnValue %74
                OpFunctionEnd
        %main = OpFunction %void None %26
-         %75 = OpLabel
-         %76 = OpFunctionCall %void %main_1
-         %78 = OpLoad %v4float %x_GLF_color
-         %79 = OpCompositeConstruct %main_out %78
-         %77 = OpFunctionCall %void %tint_symbol_2 %79
+         %76 = OpLabel
+         %77 = OpFunctionCall %main_out %main_inner
+         %78 = OpCompositeExtract %v4float %77 0
+               OpStore %x_GLF_color_1_1 %78
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.spvasm.expected.spvasm
index f6ad901..d915897 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
@@ -15,8 +17,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_11 "x_11"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %f1_ "f1_"
                OpName %a "a"
                OpName %i "i"
@@ -24,9 +24,11 @@
                OpName %a_1 "a_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_1 ArrayStride 16
@@ -39,14 +41,16 @@
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
@@ -59,11 +63,7 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_11 = OpVariable %_ptr_Uniform_buf1 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
          %23 = OpTypeFunction %int
 %_ptr_Function_int = OpTypePointer Function %int
          %28 = OpConstantNull %int
@@ -79,7 +79,7 @@
          %58 = OpTypeFunction %void
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %89 = OpTypeFunction %void %main_out
+         %89 = OpTypeFunction %main_out %v4float
         %f1_ = OpFunction %int None %23
          %25 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %28
@@ -152,20 +152,20 @@
          %69 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %89
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %89
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %93 = OpLabel
-         %94 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %94
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %94 = OpFunctionCall %void %main_1
+         %95 = OpLoad %v4float %x_GLF_color
+         %96 = OpCompositeConstruct %main_out %95
+               OpReturnValue %96
                OpFunctionEnd
        %main = OpFunction %void None %58
-         %96 = OpLabel
-         %97 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %97
-         %98 = OpFunctionCall %void %main_1
-        %100 = OpLoad %v4float %x_GLF_color
-        %101 = OpCompositeConstruct %main_out %100
-         %99 = OpFunctionCall %void %tint_symbol_3 %101
+         %98 = OpLabel
+        %100 = OpLoad %v4float %gl_FragCoord_param_1
+         %99 = OpFunctionCall %main_out %main_inner %100
+        %101 = OpCompositeExtract %v4float %99 0
+               OpStore %x_GLF_color_1_1 %101
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.wgsl.expected.spvasm
index f6ad901..d915897 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
@@ -15,8 +17,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_11 "x_11"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %f1_ "f1_"
                OpName %a "a"
                OpName %i "i"
@@ -24,9 +24,11 @@
                OpName %a_1 "a_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_1 ArrayStride 16
@@ -39,14 +41,16 @@
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
@@ -59,11 +63,7 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_11 = OpVariable %_ptr_Uniform_buf1 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
          %23 = OpTypeFunction %int
 %_ptr_Function_int = OpTypePointer Function %int
          %28 = OpConstantNull %int
@@ -79,7 +79,7 @@
          %58 = OpTypeFunction %void
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %89 = OpTypeFunction %void %main_out
+         %89 = OpTypeFunction %main_out %v4float
         %f1_ = OpFunction %int None %23
          %25 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %28
@@ -152,20 +152,20 @@
          %69 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %89
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %89
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %93 = OpLabel
-         %94 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %94
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %94 = OpFunctionCall %void %main_1
+         %95 = OpLoad %v4float %x_GLF_color
+         %96 = OpCompositeConstruct %main_out %95
+               OpReturnValue %96
                OpFunctionEnd
        %main = OpFunction %void None %58
-         %96 = OpLabel
-         %97 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %97
-         %98 = OpFunctionCall %void %main_1
-        %100 = OpLoad %v4float %x_GLF_color
-        %101 = OpCompositeConstruct %main_out %100
-         %99 = OpFunctionCall %void %tint_symbol_3 %101
+         %98 = OpLabel
+        %100 = OpLoad %v4float %gl_FragCoord_param_1
+         %99 = OpFunctionCall %main_out %main_inner %100
+        %101 = OpCompositeExtract %v4float %99 0
+               OpStore %x_GLF_color_1_1 %101
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.spvasm.expected.spvasm
index 5d23f77..1a4c3c6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.spvasm.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 94
+; Bound: 93
 ; Schema: 0
                OpCapability Shader
          %27 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_28 "x_28"
                OpName %x_29 "x_29"
@@ -22,17 +22,21 @@
                OpName %x_32 "x_32"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -40,13 +44,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -59,7 +58,7 @@
       %int_0 = OpConstant %int 0
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %82 = OpTypeFunction %void %main_out
+         %82 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %x_28 = OpVariable %_ptr_Function_int Function %21
@@ -144,18 +143,17 @@
          %68 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %82
-%tint_symbol = OpFunctionParameter %main_out
-         %86 = OpLabel
-         %87 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %87
-               OpReturn
+ %main_inner = OpFunction %main_out None %82
+         %85 = OpLabel
+         %86 = OpFunctionCall %void %main_1
+         %87 = OpLoad %v4float %x_GLF_color
+         %88 = OpCompositeConstruct %main_out %87
+               OpReturnValue %88
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %89 = OpLabel
-         %90 = OpFunctionCall %void %main_1
-         %92 = OpLoad %v4float %x_GLF_color
-         %93 = OpCompositeConstruct %main_out %92
-         %91 = OpFunctionCall %void %tint_symbol_2 %93
+         %90 = OpLabel
+         %91 = OpFunctionCall %main_out %main_inner
+         %92 = OpCompositeExtract %v4float %91 0
+               OpStore %x_GLF_color_1_1 %92
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.wgsl.expected.spvasm
index 5d23f77..1a4c3c6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.wgsl.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 94
+; Bound: 93
 ; Schema: 0
                OpCapability Shader
          %27 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_28 "x_28"
                OpName %x_29 "x_29"
@@ -22,17 +22,21 @@
                OpName %x_32 "x_32"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -40,13 +44,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -59,7 +58,7 @@
       %int_0 = OpConstant %int 0
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %82 = OpTypeFunction %void %main_out
+         %82 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %x_28 = OpVariable %_ptr_Function_int Function %21
@@ -144,18 +143,17 @@
          %68 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %82
-%tint_symbol = OpFunctionParameter %main_out
-         %86 = OpLabel
-         %87 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %87
-               OpReturn
+ %main_inner = OpFunction %main_out None %82
+         %85 = OpLabel
+         %86 = OpFunctionCall %void %main_1
+         %87 = OpLoad %v4float %x_GLF_color
+         %88 = OpCompositeConstruct %main_out %87
+               OpReturnValue %88
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %89 = OpLabel
-         %90 = OpFunctionCall %void %main_1
-         %92 = OpLoad %v4float %x_GLF_color
-         %93 = OpCompositeConstruct %main_out %92
-         %91 = OpFunctionCall %void %tint_symbol_2 %93
+         %90 = OpLabel
+         %91 = OpFunctionCall %main_out %main_inner
+         %92 = OpCompositeExtract %v4float %91 0
+               OpStore %x_GLF_color_1_1 %92
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.spvasm.expected.spvasm
index 2144540..083d97c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 89
+; Bound: 88
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf2 "buf2"
                OpMemberName %buf2 0 "zero"
                OpName %x_6 "x_6"
@@ -17,15 +18,14 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %x_32 "x_32"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf2 Block
                OpMemberDecorate %buf2 0 Offset 0
                OpDecorate %x_6 NonWritable
@@ -43,9 +43,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf2 = OpTypeStruct %float
 %_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2
         %x_6 = OpVariable %_ptr_Uniform_buf2 Uniform
@@ -61,12 +64,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %20 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %20
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %20
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -78,7 +77,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %77 = OpTypeFunction %void %main_out
+         %77 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %29
@@ -138,18 +137,17 @@
          %57 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %77
-%tint_symbol = OpFunctionParameter %main_out
-         %81 = OpLabel
-         %82 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %82
-               OpReturn
+ %main_inner = OpFunction %main_out None %77
+         %80 = OpLabel
+         %81 = OpFunctionCall %void %main_1
+         %82 = OpLoad %v4float %x_GLF_color
+         %83 = OpCompositeConstruct %main_out %82
+               OpReturnValue %83
                OpFunctionEnd
        %main = OpFunction %void None %23
-         %84 = OpLabel
-         %85 = OpFunctionCall %void %main_1
-         %87 = OpLoad %v4float %x_GLF_color
-         %88 = OpCompositeConstruct %main_out %87
-         %86 = OpFunctionCall %void %tint_symbol_2 %88
+         %85 = OpLabel
+         %86 = OpFunctionCall %main_out %main_inner
+         %87 = OpCompositeExtract %v4float %86 0
+               OpStore %x_GLF_color_1_1 %87
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.wgsl.expected.spvasm
index 2144540..083d97c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 89
+; Bound: 88
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf2 "buf2"
                OpMemberName %buf2 0 "zero"
                OpName %x_6 "x_6"
@@ -17,15 +18,14 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %x_32 "x_32"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf2 Block
                OpMemberDecorate %buf2 0 Offset 0
                OpDecorate %x_6 NonWritable
@@ -43,9 +43,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf2 = OpTypeStruct %float
 %_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2
         %x_6 = OpVariable %_ptr_Uniform_buf2 Uniform
@@ -61,12 +64,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %20 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %20
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %20
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -78,7 +77,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %77 = OpTypeFunction %void %main_out
+         %77 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %29
@@ -138,18 +137,17 @@
          %57 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %77
-%tint_symbol = OpFunctionParameter %main_out
-         %81 = OpLabel
-         %82 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %82
-               OpReturn
+ %main_inner = OpFunction %main_out None %77
+         %80 = OpLabel
+         %81 = OpFunctionCall %void %main_1
+         %82 = OpLoad %v4float %x_GLF_color
+         %83 = OpCompositeConstruct %main_out %82
+               OpReturnValue %83
                OpFunctionEnd
        %main = OpFunction %void None %23
-         %84 = OpLabel
-         %85 = OpFunctionCall %void %main_1
-         %87 = OpLoad %v4float %x_GLF_color
-         %88 = OpCompositeConstruct %main_out %87
-         %86 = OpFunctionCall %void %tint_symbol_2 %88
+         %85 = OpLabel
+         %86 = OpFunctionCall %main_out %main_inner
+         %87 = OpCompositeExtract %v4float %86 0
+               OpStore %x_GLF_color_1_1 %87
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.spvasm.expected.spvasm
index fba9af9..3cf4812 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.spvasm.expected.spvasm
@@ -5,12 +5,12 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %c "c"
                OpName %a "a"
@@ -24,22 +24,22 @@
                OpName %i8_1 "i8_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -60,10 +60,10 @@
    %float_n1 = OpConstant %float -1
      %uint_1 = OpConstant %uint 1
    %main_out = OpTypeStruct %v4float
-        %149 = OpTypeFunction %void %main_out
+        %149 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
-          %c = OpVariable %_ptr_Function_v4float Function %5
+          %c = OpVariable %_ptr_Function_v4float Function %7
           %a = OpVariable %_ptr_Function_int Function %20
          %i1 = OpVariable %_ptr_Function_int Function %20
          %i2 = OpVariable %_ptr_Function_int Function %20
@@ -285,20 +285,20 @@
                OpStore %x_GLF_color %148
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %149
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %149
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %153 = OpLabel
-        %154 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %154
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %154 = OpFunctionCall %void %main_1
+        %155 = OpLoad %v4float %x_GLF_color
+        %156 = OpCompositeConstruct %main_out %155
+               OpReturnValue %156
                OpFunctionEnd
        %main = OpFunction %void None %11
-        %156 = OpLabel
-        %157 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %157
-        %158 = OpFunctionCall %void %main_1
-        %160 = OpLoad %v4float %x_GLF_color
-        %161 = OpCompositeConstruct %main_out %160
-        %159 = OpFunctionCall %void %tint_symbol_3 %161
+        %158 = OpLabel
+        %160 = OpLoad %v4float %gl_FragCoord_param_1
+        %159 = OpFunctionCall %main_out %main_inner %160
+        %161 = OpCompositeExtract %v4float %159 0
+               OpStore %x_GLF_color_1_1 %161
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.wgsl.expected.spvasm
index fba9af9..3cf4812 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.wgsl.expected.spvasm
@@ -5,12 +5,12 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %c "c"
                OpName %a "a"
@@ -24,22 +24,22 @@
                OpName %i8_1 "i8_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -60,10 +60,10 @@
    %float_n1 = OpConstant %float -1
      %uint_1 = OpConstant %uint 1
    %main_out = OpTypeStruct %v4float
-        %149 = OpTypeFunction %void %main_out
+        %149 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
-          %c = OpVariable %_ptr_Function_v4float Function %5
+          %c = OpVariable %_ptr_Function_v4float Function %7
           %a = OpVariable %_ptr_Function_int Function %20
          %i1 = OpVariable %_ptr_Function_int Function %20
          %i2 = OpVariable %_ptr_Function_int Function %20
@@ -285,20 +285,20 @@
                OpStore %x_GLF_color %148
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %149
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %149
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %153 = OpLabel
-        %154 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %154
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %154 = OpFunctionCall %void %main_1
+        %155 = OpLoad %v4float %x_GLF_color
+        %156 = OpCompositeConstruct %main_out %155
+               OpReturnValue %156
                OpFunctionEnd
        %main = OpFunction %void None %11
-        %156 = OpLabel
-        %157 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %157
-        %158 = OpFunctionCall %void %main_1
-        %160 = OpLoad %v4float %x_GLF_color
-        %161 = OpCompositeConstruct %main_out %160
-        %159 = OpFunctionCall %void %tint_symbol_3 %161
+        %158 = OpLabel
+        %160 = OpLoad %v4float %gl_FragCoord_param_1
+        %159 = OpFunctionCall %main_out %main_inner %160
+        %161 = OpCompositeExtract %v4float %159 0
+               OpStore %x_GLF_color_1_1 %161
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.spvasm.expected.spvasm
index 7c6e615..e8871b6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 205
+; Bound: 204
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -14,7 +15,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %sums "sums"
                OpName %a "a"
@@ -27,9 +27,9 @@
                OpName %x_159_phi "x_159_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
@@ -42,9 +42,13 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -52,18 +56,13 @@
        %buf1 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
        %buf0 = OpTypeStruct %_arr_float_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
@@ -89,7 +88,7 @@
       %int_3 = OpConstant %int 3
     %float_0 = OpConstant %float 0
    %main_out = OpTypeStruct %v4float
-        %193 = OpTypeFunction %void %main_out
+        %193 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
        %sums = OpVariable %_ptr_Function__arr_float_uint_2 Function %28
@@ -303,18 +302,17 @@
         %173 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %193
-%tint_symbol = OpFunctionParameter %main_out
-        %197 = OpLabel
-        %198 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %198
-               OpReturn
+ %main_inner = OpFunction %main_out None %193
+        %196 = OpLabel
+        %197 = OpFunctionCall %void %main_1
+        %198 = OpLoad %v4float %x_GLF_color
+        %199 = OpCompositeConstruct %main_out %198
+               OpReturnValue %199
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %200 = OpLabel
-        %201 = OpFunctionCall %void %main_1
-        %203 = OpLoad %v4float %x_GLF_color
-        %204 = OpCompositeConstruct %main_out %203
-        %202 = OpFunctionCall %void %tint_symbol_2 %204
+        %201 = OpLabel
+        %202 = OpFunctionCall %main_out %main_inner
+        %203 = OpCompositeExtract %v4float %202 0
+               OpStore %x_GLF_color_1_1 %203
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.wgsl.expected.spvasm
index 7c6e615..e8871b6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 205
+; Bound: 204
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -14,7 +15,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %sums "sums"
                OpName %a "a"
@@ -27,9 +27,9 @@
                OpName %x_159_phi "x_159_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
@@ -42,9 +42,13 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -52,18 +56,13 @@
        %buf1 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
        %buf0 = OpTypeStruct %_arr_float_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
@@ -89,7 +88,7 @@
       %int_3 = OpConstant %int 3
     %float_0 = OpConstant %float 0
    %main_out = OpTypeStruct %v4float
-        %193 = OpTypeFunction %void %main_out
+        %193 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
        %sums = OpVariable %_ptr_Function__arr_float_uint_2 Function %28
@@ -303,18 +302,17 @@
         %173 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %193
-%tint_symbol = OpFunctionParameter %main_out
-        %197 = OpLabel
-        %198 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %198
-               OpReturn
+ %main_inner = OpFunction %main_out None %193
+        %196 = OpLabel
+        %197 = OpFunctionCall %void %main_1
+        %198 = OpLoad %v4float %x_GLF_color
+        %199 = OpCompositeConstruct %main_out %198
+               OpReturnValue %199
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %200 = OpLabel
-        %201 = OpFunctionCall %void %main_1
-        %203 = OpLoad %v4float %x_GLF_color
-        %204 = OpCompositeConstruct %main_out %203
-        %202 = OpFunctionCall %void %tint_symbol_2 %204
+        %201 = OpLabel
+        %202 = OpFunctionCall %main_out %main_inner
+        %203 = OpCompositeExtract %v4float %202 0
+               OpStore %x_GLF_color_1_1 %203
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.spvasm.expected.spvasm
index 7f8bc30..cbd0178 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.spvasm.expected.spvasm
@@ -1,36 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 65
+; Bound: 64
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
@@ -39,8 +40,6 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -53,7 +52,7 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
       %int_0 = OpConstant %int 0
    %main_out = OpTypeStruct %v4float
-         %53 = OpTypeFunction %void %main_out
+         %53 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %21
@@ -90,18 +89,17 @@
          %29 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %53
-%tint_symbol = OpFunctionParameter %main_out
-         %57 = OpLabel
-         %58 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %58
-               OpReturn
+ %main_inner = OpFunction %main_out None %53
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %main_1
+         %58 = OpLoad %v4float %x_GLF_color
+         %59 = OpCompositeConstruct %main_out %58
+               OpReturnValue %59
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %60 = OpLabel
-         %61 = OpFunctionCall %void %main_1
-         %63 = OpLoad %v4float %x_GLF_color
-         %64 = OpCompositeConstruct %main_out %63
-         %62 = OpFunctionCall %void %tint_symbol_2 %64
+         %61 = OpLabel
+         %62 = OpFunctionCall %main_out %main_inner
+         %63 = OpCompositeExtract %v4float %62 0
+               OpStore %x_GLF_color_1_1 %63
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.wgsl.expected.spvasm
index 7f8bc30..cbd0178 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.wgsl.expected.spvasm
@@ -1,36 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 65
+; Bound: 64
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
@@ -39,8 +40,6 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -53,7 +52,7 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
       %int_0 = OpConstant %int 0
    %main_out = OpTypeStruct %v4float
-         %53 = OpTypeFunction %void %main_out
+         %53 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %21
@@ -90,18 +89,17 @@
          %29 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %53
-%tint_symbol = OpFunctionParameter %main_out
-         %57 = OpLabel
-         %58 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %58
-               OpReturn
+ %main_inner = OpFunction %main_out None %53
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %main_1
+         %58 = OpLoad %v4float %x_GLF_color
+         %59 = OpCompositeConstruct %main_out %58
+               OpReturnValue %59
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %60 = OpLabel
-         %61 = OpFunctionCall %void %main_1
-         %63 = OpLoad %v4float %x_GLF_color
-         %64 = OpCompositeConstruct %main_out %63
-         %62 = OpFunctionCall %void %tint_symbol_2 %64
+         %61 = OpLabel
+         %62 = OpFunctionCall %main_out %main_inner
+         %63 = OpCompositeExtract %v4float %62 0
+               OpStore %x_GLF_color_1_1 %63
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.spvasm.expected.spvasm
index 9bb7464..46ff9ef 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 123
+; Bound: 122
 ; Schema: 0
                OpCapability Shader
          %56 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,16 +16,15 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %sums "sums"
                OpName %i "i"
                OpName %indexable "indexable"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -37,10 +37,13 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_3 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -53,12 +56,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
@@ -79,7 +78,7 @@
     %float_0 = OpConstant %float 0
 %_ptr_Function_float = OpTypePointer Function %float
    %main_out = OpTypeStruct %v4float
-        %111 = OpTypeFunction %void %main_out
+        %111 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
        %sums = OpVariable %_ptr_Function__arr_float_uint_3 Function %27
@@ -173,18 +172,17 @@
          %91 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %111
-%tint_symbol = OpFunctionParameter %main_out
-        %115 = OpLabel
-        %116 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %116
-               OpReturn
+ %main_inner = OpFunction %main_out None %111
+        %114 = OpLabel
+        %115 = OpFunctionCall %void %main_1
+        %116 = OpLoad %v4float %x_GLF_color
+        %117 = OpCompositeConstruct %main_out %116
+               OpReturnValue %117
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %118 = OpLabel
-        %119 = OpFunctionCall %void %main_1
-        %121 = OpLoad %v4float %x_GLF_color
-        %122 = OpCompositeConstruct %main_out %121
-        %120 = OpFunctionCall %void %tint_symbol_2 %122
+        %119 = OpLabel
+        %120 = OpFunctionCall %main_out %main_inner
+        %121 = OpCompositeExtract %v4float %120 0
+               OpStore %x_GLF_color_1_1 %121
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.wgsl.expected.spvasm
index 9bb7464..46ff9ef 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 123
+; Bound: 122
 ; Schema: 0
                OpCapability Shader
          %56 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,16 +16,15 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %sums "sums"
                OpName %i "i"
                OpName %indexable "indexable"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -37,10 +37,13 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_3 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -53,12 +56,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
@@ -79,7 +78,7 @@
     %float_0 = OpConstant %float 0
 %_ptr_Function_float = OpTypePointer Function %float
    %main_out = OpTypeStruct %v4float
-        %111 = OpTypeFunction %void %main_out
+        %111 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
        %sums = OpVariable %_ptr_Function__arr_float_uint_3 Function %27
@@ -173,18 +172,17 @@
          %91 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %111
-%tint_symbol = OpFunctionParameter %main_out
-        %115 = OpLabel
-        %116 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %116
-               OpReturn
+ %main_inner = OpFunction %main_out None %111
+        %114 = OpLabel
+        %115 = OpFunctionCall %void %main_1
+        %116 = OpLoad %v4float %x_GLF_color
+        %117 = OpCompositeConstruct %main_out %116
+               OpReturnValue %117
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %118 = OpLabel
-        %119 = OpFunctionCall %void %main_1
-        %121 = OpLoad %v4float %x_GLF_color
-        %122 = OpCompositeConstruct %main_out %121
-        %120 = OpFunctionCall %void %tint_symbol_2 %122
+        %119 = OpLabel
+        %120 = OpFunctionCall %main_out %main_inner
+        %121 = OpCompositeExtract %v4float %120 0
+               OpStore %x_GLF_color_1_1 %121
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.spvasm.expected.spvasm
index 81d2e09..ebf3385 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 79
+; Bound: 78
 ; Schema: 0
                OpCapability Shader
          %35 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_7 "x_7"
@@ -15,15 +16,14 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -36,26 +36,25 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf1 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_7 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -70,7 +69,7 @@
       %int_0 = OpConstant %int 0
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %67 = OpTypeFunction %void %main_out
+         %67 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %25
@@ -115,18 +114,17 @@
          %44 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %67
-%tint_symbol = OpFunctionParameter %main_out
-         %71 = OpLabel
-         %72 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %72
-               OpReturn
+ %main_inner = OpFunction %main_out None %67
+         %70 = OpLabel
+         %71 = OpFunctionCall %void %main_1
+         %72 = OpLoad %v4float %x_GLF_color
+         %73 = OpCompositeConstruct %main_out %72
+               OpReturnValue %73
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %74 = OpLabel
-         %75 = OpFunctionCall %void %main_1
-         %77 = OpLoad %v4float %x_GLF_color
-         %78 = OpCompositeConstruct %main_out %77
-         %76 = OpFunctionCall %void %tint_symbol_2 %78
+         %75 = OpLabel
+         %76 = OpFunctionCall %main_out %main_inner
+         %77 = OpCompositeExtract %v4float %76 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.wgsl.expected.spvasm
index 81d2e09..ebf3385 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 79
+; Bound: 78
 ; Schema: 0
                OpCapability Shader
          %35 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_7 "x_7"
@@ -15,15 +16,14 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -36,26 +36,25 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf1 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_7 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -70,7 +69,7 @@
       %int_0 = OpConstant %int 0
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %67 = OpTypeFunction %void %main_out
+         %67 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %25
@@ -115,18 +114,17 @@
          %44 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %67
-%tint_symbol = OpFunctionParameter %main_out
-         %71 = OpLabel
-         %72 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %72
-               OpReturn
+ %main_inner = OpFunction %main_out None %67
+         %70 = OpLabel
+         %71 = OpFunctionCall %void %main_1
+         %72 = OpLoad %v4float %x_GLF_color
+         %73 = OpCompositeConstruct %main_out %72
+               OpReturnValue %73
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %74 = OpLabel
-         %75 = OpFunctionCall %void %main_1
-         %77 = OpLoad %v4float %x_GLF_color
-         %78 = OpCompositeConstruct %main_out %77
-         %76 = OpFunctionCall %void %tint_symbol_2 %78
+         %75 = OpLabel
+         %76 = OpFunctionCall %main_out %main_inner
+         %77 = OpCompositeExtract %v4float %76 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.spvasm.expected.spvasm
index fa87ce8..d98ac5c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 155
+; Bound: 154
 ; Schema: 0
                OpCapability Shader
         %109 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -15,15 +16,14 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_5 ArrayStride 16
@@ -36,8 +36,12 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
@@ -45,18 +49,13 @@
        %buf1 = OpTypeStruct %_arr_int_uint_5
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf0 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -75,10 +74,10 @@
 %_ptr_Function_float = OpTypePointer Function %float
      %v4bool = OpTypeVector %bool 4
    %main_out = OpTypeStruct %v4float
-        %143 = OpTypeFunction %void %main_out
+        %143 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
-          %v = OpVariable %_ptr_Function_v4float Function %17
+          %v = OpVariable %_ptr_Function_v4float Function %5
           %i = OpVariable %_ptr_Function_int Function %28
          %32 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
          %33 = OpLoad %int %32
@@ -205,18 +204,17 @@
         %123 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %143
-%tint_symbol = OpFunctionParameter %main_out
-        %147 = OpLabel
-        %148 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %148
-               OpReturn
+ %main_inner = OpFunction %main_out None %143
+        %146 = OpLabel
+        %147 = OpFunctionCall %void %main_1
+        %148 = OpLoad %v4float %x_GLF_color
+        %149 = OpCompositeConstruct %main_out %148
+               OpReturnValue %149
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %150 = OpLabel
-        %151 = OpFunctionCall %void %main_1
-        %153 = OpLoad %v4float %x_GLF_color
-        %154 = OpCompositeConstruct %main_out %153
-        %152 = OpFunctionCall %void %tint_symbol_2 %154
+        %151 = OpLabel
+        %152 = OpFunctionCall %main_out %main_inner
+        %153 = OpCompositeExtract %v4float %152 0
+               OpStore %x_GLF_color_1_1 %153
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.wgsl.expected.spvasm
index fa87ce8..d98ac5c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 155
+; Bound: 154
 ; Schema: 0
                OpCapability Shader
         %109 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -15,15 +16,14 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_5 ArrayStride 16
@@ -36,8 +36,12 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
@@ -45,18 +49,13 @@
        %buf1 = OpTypeStruct %_arr_int_uint_5
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf0 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -75,10 +74,10 @@
 %_ptr_Function_float = OpTypePointer Function %float
      %v4bool = OpTypeVector %bool 4
    %main_out = OpTypeStruct %v4float
-        %143 = OpTypeFunction %void %main_out
+        %143 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
-          %v = OpVariable %_ptr_Function_v4float Function %17
+          %v = OpVariable %_ptr_Function_v4float Function %5
           %i = OpVariable %_ptr_Function_int Function %28
          %32 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
          %33 = OpLoad %int %32
@@ -205,18 +204,17 @@
         %123 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %143
-%tint_symbol = OpFunctionParameter %main_out
-        %147 = OpLabel
-        %148 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %148
-               OpReturn
+ %main_inner = OpFunction %main_out None %143
+        %146 = OpLabel
+        %147 = OpFunctionCall %void %main_1
+        %148 = OpLoad %v4float %x_GLF_color
+        %149 = OpCompositeConstruct %main_out %148
+               OpReturnValue %149
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %150 = OpLabel
-        %151 = OpFunctionCall %void %main_1
-        %153 = OpLoad %v4float %x_GLF_color
-        %154 = OpCompositeConstruct %main_out %153
-        %152 = OpFunctionCall %void %tint_symbol_2 %154
+        %151 = OpLabel
+        %152 = OpFunctionCall %main_out %main_inner
+        %153 = OpCompositeExtract %v4float %152 0
+               OpStore %x_GLF_color_1_1 %153
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.spvasm.expected.spvasm
index 5cf6c3e..111a318 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 88
+; Bound: 87
 ; Schema: 0
                OpCapability Shader
          %41 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,15 +16,14 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v0 "v0"
                OpName %v1 "v1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -36,26 +36,25 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf1 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -73,7 +72,7 @@
        %bool = OpTypeBool
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %76 = OpTypeFunction %void %main_out
+         %76 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
          %v0 = OpVariable %_ptr_Function_v2float Function %26
@@ -124,18 +123,17 @@
          %55 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %76
-%tint_symbol = OpFunctionParameter %main_out
-         %80 = OpLabel
-         %81 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %81
-               OpReturn
+ %main_inner = OpFunction %main_out None %76
+         %79 = OpLabel
+         %80 = OpFunctionCall %void %main_1
+         %81 = OpLoad %v4float %x_GLF_color
+         %82 = OpCompositeConstruct %main_out %81
+               OpReturnValue %82
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %83 = OpLabel
-         %84 = OpFunctionCall %void %main_1
-         %86 = OpLoad %v4float %x_GLF_color
-         %87 = OpCompositeConstruct %main_out %86
-         %85 = OpFunctionCall %void %tint_symbol_2 %87
+         %84 = OpLabel
+         %85 = OpFunctionCall %main_out %main_inner
+         %86 = OpCompositeExtract %v4float %85 0
+               OpStore %x_GLF_color_1_1 %86
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.wgsl.expected.spvasm
index 5cf6c3e..111a318 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 88
+; Bound: 87
 ; Schema: 0
                OpCapability Shader
          %41 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,15 +16,14 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v0 "v0"
                OpName %v1 "v1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -36,26 +36,25 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf1 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -73,7 +72,7 @@
        %bool = OpTypeBool
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %76 = OpTypeFunction %void %main_out
+         %76 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
          %v0 = OpVariable %_ptr_Function_v2float Function %26
@@ -124,18 +123,17 @@
          %55 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %76
-%tint_symbol = OpFunctionParameter %main_out
-         %80 = OpLabel
-         %81 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %81
-               OpReturn
+ %main_inner = OpFunction %main_out None %76
+         %79 = OpLabel
+         %80 = OpFunctionCall %void %main_1
+         %81 = OpLoad %v4float %x_GLF_color
+         %82 = OpCompositeConstruct %main_out %81
+               OpReturnValue %82
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %83 = OpLabel
-         %84 = OpFunctionCall %void %main_1
-         %86 = OpLoad %v4float %x_GLF_color
-         %87 = OpCompositeConstruct %main_out %86
-         %85 = OpFunctionCall %void %tint_symbol_2 %87
+         %84 = OpLabel
+         %85 = OpFunctionCall %main_out %main_inner
+         %86 = OpCompositeExtract %v4float %85 0
+               OpStore %x_GLF_color_1_1 %86
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.spvasm.expected.spvasm
index 758face..6b231fb 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 92
+; Bound: 91
 ; Schema: 0
                OpCapability Shader
          %41 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,15 +16,14 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v0 "v0"
                OpName %v1 "v1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
@@ -36,27 +36,26 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
        %buf1 = OpTypeStruct %_arr_float_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -76,7 +75,7 @@
      %v2bool = OpTypeVector %bool 2
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %80 = OpTypeFunction %void %main_out
+         %80 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
          %v0 = OpVariable %_ptr_Function_v2float Function %27
@@ -128,18 +127,17 @@
          %59 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %80
-%tint_symbol = OpFunctionParameter %main_out
-         %84 = OpLabel
-         %85 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %85
-               OpReturn
+ %main_inner = OpFunction %main_out None %80
+         %83 = OpLabel
+         %84 = OpFunctionCall %void %main_1
+         %85 = OpLoad %v4float %x_GLF_color
+         %86 = OpCompositeConstruct %main_out %85
+               OpReturnValue %86
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %87 = OpLabel
-         %88 = OpFunctionCall %void %main_1
-         %90 = OpLoad %v4float %x_GLF_color
-         %91 = OpCompositeConstruct %main_out %90
-         %89 = OpFunctionCall %void %tint_symbol_2 %91
+         %88 = OpLabel
+         %89 = OpFunctionCall %main_out %main_inner
+         %90 = OpCompositeExtract %v4float %89 0
+               OpStore %x_GLF_color_1_1 %90
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.wgsl.expected.spvasm
index 758face..6b231fb 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 92
+; Bound: 91
 ; Schema: 0
                OpCapability Shader
          %41 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,15 +16,14 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v0 "v0"
                OpName %v1 "v1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
@@ -36,27 +36,26 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
        %buf1 = OpTypeStruct %_arr_float_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -76,7 +75,7 @@
      %v2bool = OpTypeVector %bool 2
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %80 = OpTypeFunction %void %main_out
+         %80 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
          %v0 = OpVariable %_ptr_Function_v2float Function %27
@@ -128,18 +127,17 @@
          %59 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %80
-%tint_symbol = OpFunctionParameter %main_out
-         %84 = OpLabel
-         %85 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %85
-               OpReturn
+ %main_inner = OpFunction %main_out None %80
+         %83 = OpLabel
+         %84 = OpFunctionCall %void %main_1
+         %85 = OpLoad %v4float %x_GLF_color
+         %86 = OpCompositeConstruct %main_out %85
+               OpReturnValue %86
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %87 = OpLabel
-         %88 = OpFunctionCall %void %main_1
-         %90 = OpLoad %v4float %x_GLF_color
-         %91 = OpCompositeConstruct %main_out %90
-         %89 = OpFunctionCall %void %tint_symbol_2 %91
+         %88 = OpLabel
+         %89 = OpFunctionCall %main_out %main_inner
+         %90 = OpCompositeExtract %v4float %89 0
+               OpStore %x_GLF_color_1_1 %90
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.spvasm.expected.spvasm
index 2a2cc7e..8d3b103 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 83
+; Bound: 82
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -14,16 +15,15 @@
                OpMemberName %buf1 0 "zero"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v0 "v0"
                OpName %v1 "v1"
                OpName %x_57 "x_57"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -35,9 +35,12 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -47,12 +50,8 @@
        %buf1 = OpTypeStruct %float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %14 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %14
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -67,12 +66,12 @@
        %bool = OpTypeBool
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %71 = OpTypeFunction %void %main_out
+         %71 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %17
          %20 = OpLabel
          %v0 = OpVariable %_ptr_Function_v2float Function %24
-         %v1 = OpVariable %_ptr_Function_v4float Function %14
-       %x_57 = OpVariable %_ptr_Function_v4float Function %14
+         %v1 = OpVariable %_ptr_Function_v4float Function %5
+       %x_57 = OpVariable %_ptr_Function_v4float Function %5
          %32 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0
          %33 = OpLoad %float %32
          %34 = OpCompositeConstruct %v2float %33 %33
@@ -123,18 +122,17 @@
                OpStore %x_GLF_color %70
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %71
-%tint_symbol = OpFunctionParameter %main_out
-         %75 = OpLabel
-         %76 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %76
-               OpReturn
+ %main_inner = OpFunction %main_out None %71
+         %74 = OpLabel
+         %75 = OpFunctionCall %void %main_1
+         %76 = OpLoad %v4float %x_GLF_color
+         %77 = OpCompositeConstruct %main_out %76
+               OpReturnValue %77
                OpFunctionEnd
        %main = OpFunction %void None %17
-         %78 = OpLabel
-         %79 = OpFunctionCall %void %main_1
-         %81 = OpLoad %v4float %x_GLF_color
-         %82 = OpCompositeConstruct %main_out %81
-         %80 = OpFunctionCall %void %tint_symbol_2 %82
+         %79 = OpLabel
+         %80 = OpFunctionCall %main_out %main_inner
+         %81 = OpCompositeExtract %v4float %80 0
+               OpStore %x_GLF_color_1_1 %81
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.wgsl.expected.spvasm
index 2a2cc7e..8d3b103 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 83
+; Bound: 82
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -14,16 +15,15 @@
                OpMemberName %buf1 0 "zero"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v0 "v0"
                OpName %v1 "v1"
                OpName %x_57 "x_57"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -35,9 +35,12 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -47,12 +50,8 @@
        %buf1 = OpTypeStruct %float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %14 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %14
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %14
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -67,12 +66,12 @@
        %bool = OpTypeBool
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %71 = OpTypeFunction %void %main_out
+         %71 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %17
          %20 = OpLabel
          %v0 = OpVariable %_ptr_Function_v2float Function %24
-         %v1 = OpVariable %_ptr_Function_v4float Function %14
-       %x_57 = OpVariable %_ptr_Function_v4float Function %14
+         %v1 = OpVariable %_ptr_Function_v4float Function %5
+       %x_57 = OpVariable %_ptr_Function_v4float Function %5
          %32 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0
          %33 = OpLoad %float %32
          %34 = OpCompositeConstruct %v2float %33 %33
@@ -123,18 +122,17 @@
                OpStore %x_GLF_color %70
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %71
-%tint_symbol = OpFunctionParameter %main_out
-         %75 = OpLabel
-         %76 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %76
-               OpReturn
+ %main_inner = OpFunction %main_out None %71
+         %74 = OpLabel
+         %75 = OpFunctionCall %void %main_1
+         %76 = OpLoad %v4float %x_GLF_color
+         %77 = OpCompositeConstruct %main_out %76
+               OpReturnValue %77
                OpFunctionEnd
        %main = OpFunction %void None %17
-         %78 = OpLabel
-         %79 = OpFunctionCall %void %main_1
-         %81 = OpLoad %v4float %x_GLF_color
-         %82 = OpCompositeConstruct %main_out %81
-         %80 = OpFunctionCall %void %tint_symbol_2 %82
+         %79 = OpLabel
+         %80 = OpFunctionCall %main_out %main_inner
+         %81 = OpCompositeExtract %v4float %80 0
+               OpStore %x_GLF_color_1_1 %81
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.spvasm.expected.spvasm
index aa2284f..d760fe4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %113 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
@@ -22,8 +24,6 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_uint_values"
                OpName %x_16 "x_16"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %func0_ "func0_"
                OpName %tmp "tmp"
                OpName %func1_ "func1_"
@@ -34,9 +34,11 @@
                OpName %j "j"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
@@ -60,21 +62,23 @@
                OpDecorate %x_16 NonWritable
                OpDecorate %x_16 DescriptorSet 0
                OpDecorate %x_16 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
        %buf1 = OpTypeStruct %_arr_float_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
      %uint_4 = OpConstant %uint 4
 %_arr_int_uint_4 = OpTypeArray %int %uint_4
@@ -89,10 +93,6 @@
        %buf0 = OpTypeStruct %_arr_uint_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_16 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %31 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -112,10 +112,10 @@
       %int_5 = OpConstant %int 5
      %uint_2 = OpConstant %uint 2
    %main_out = OpTypeStruct %v4float
-        %155 = OpTypeFunction %void %main_out
+        %155 = OpTypeFunction %main_out %v4float
      %func0_ = OpFunction %void None %31
          %34 = OpLabel
-        %tmp = OpVariable %_ptr_Function_v4float Function %5
+        %tmp = OpVariable %_ptr_Function_v4float Function %7
          %39 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
          %40 = OpLoad %float %39
          %43 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_1
@@ -278,20 +278,20 @@
         %146 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %155
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %155
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %159 = OpLabel
-        %160 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %160
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %160 = OpFunctionCall %void %main_1
+        %161 = OpLoad %v4float %x_GLF_color
+        %162 = OpCompositeConstruct %main_out %161
+               OpReturnValue %162
                OpFunctionEnd
        %main = OpFunction %void None %31
-        %162 = OpLabel
-        %163 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %163
-        %164 = OpFunctionCall %void %main_1
-        %166 = OpLoad %v4float %x_GLF_color
-        %167 = OpCompositeConstruct %main_out %166
-        %165 = OpFunctionCall %void %tint_symbol_3 %167
+        %164 = OpLabel
+        %166 = OpLoad %v4float %gl_FragCoord_param_1
+        %165 = OpFunctionCall %main_out %main_inner %166
+        %167 = OpCompositeExtract %v4float %165 0
+               OpStore %x_GLF_color_1_1 %167
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.wgsl.expected.spvasm
index aa2284f..d760fe4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %113 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
@@ -22,8 +24,6 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_uint_values"
                OpName %x_16 "x_16"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %func0_ "func0_"
                OpName %tmp "tmp"
                OpName %func1_ "func1_"
@@ -34,9 +34,11 @@
                OpName %j "j"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
@@ -60,21 +62,23 @@
                OpDecorate %x_16 NonWritable
                OpDecorate %x_16 DescriptorSet 0
                OpDecorate %x_16 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
        %buf1 = OpTypeStruct %_arr_float_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
      %uint_4 = OpConstant %uint 4
 %_arr_int_uint_4 = OpTypeArray %int %uint_4
@@ -89,10 +93,6 @@
        %buf0 = OpTypeStruct %_arr_uint_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_16 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %31 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -112,10 +112,10 @@
       %int_5 = OpConstant %int 5
      %uint_2 = OpConstant %uint 2
    %main_out = OpTypeStruct %v4float
-        %155 = OpTypeFunction %void %main_out
+        %155 = OpTypeFunction %main_out %v4float
      %func0_ = OpFunction %void None %31
          %34 = OpLabel
-        %tmp = OpVariable %_ptr_Function_v4float Function %5
+        %tmp = OpVariable %_ptr_Function_v4float Function %7
          %39 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
          %40 = OpLoad %float %39
          %43 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %int_1
@@ -278,20 +278,20 @@
         %146 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %155
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %155
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %159 = OpLabel
-        %160 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %160
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %160 = OpFunctionCall %void %main_1
+        %161 = OpLoad %v4float %x_GLF_color
+        %162 = OpCompositeConstruct %main_out %161
+               OpReturnValue %162
                OpFunctionEnd
        %main = OpFunction %void None %31
-        %162 = OpLabel
-        %163 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %163
-        %164 = OpFunctionCall %void %main_1
-        %166 = OpLoad %v4float %x_GLF_color
-        %167 = OpCompositeConstruct %main_out %166
-        %165 = OpFunctionCall %void %tint_symbol_3 %167
+        %164 = OpLabel
+        %166 = OpLoad %v4float %gl_FragCoord_param_1
+        %165 = OpFunctionCall %main_out %main_inner %166
+        %167 = OpCompositeExtract %v4float %165 0
+               OpStore %x_GLF_color_1_1 %167
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.spvasm.expected.spvasm
index 71352d2..23be372 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.spvasm.expected.spvasm
@@ -5,46 +5,46 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_5 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
 %_arr_float_uint_5 = OpTypeArray %float %uint_5
        %buf0 = OpTypeStruct %_arr_float_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -62,7 +62,7 @@
 %mat4v4float = OpTypeMatrix %v4float 4
     %float_0 = OpConstant %float 0
    %main_out = OpTypeStruct %v4float
-         %66 = OpTypeFunction %void %main_out
+         %66 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %17
          %20 = OpLabel
          %23 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
@@ -109,20 +109,20 @@
                OpStore %x_GLF_color %65
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %66
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %66
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %70 = OpLabel
-         %71 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %71
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %71 = OpFunctionCall %void %main_1
+         %72 = OpLoad %v4float %x_GLF_color
+         %73 = OpCompositeConstruct %main_out %72
+               OpReturnValue %73
                OpFunctionEnd
        %main = OpFunction %void None %17
-         %73 = OpLabel
-         %74 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %74
-         %75 = OpFunctionCall %void %main_1
-         %77 = OpLoad %v4float %x_GLF_color
-         %78 = OpCompositeConstruct %main_out %77
-         %76 = OpFunctionCall %void %tint_symbol_3 %78
+         %75 = OpLabel
+         %77 = OpLoad %v4float %gl_FragCoord_param_1
+         %76 = OpFunctionCall %main_out %main_inner %77
+         %78 = OpCompositeExtract %v4float %76 0
+               OpStore %x_GLF_color_1_1 %78
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.wgsl.expected.spvasm
index 71352d2..23be372 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.wgsl.expected.spvasm
@@ -5,46 +5,46 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_5 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
 %_arr_float_uint_5 = OpTypeArray %float %uint_5
        %buf0 = OpTypeStruct %_arr_float_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -62,7 +62,7 @@
 %mat4v4float = OpTypeMatrix %v4float 4
     %float_0 = OpConstant %float 0
    %main_out = OpTypeStruct %v4float
-         %66 = OpTypeFunction %void %main_out
+         %66 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %17
          %20 = OpLabel
          %23 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
@@ -109,20 +109,20 @@
                OpStore %x_GLF_color %65
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %66
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %66
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %70 = OpLabel
-         %71 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %71
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %71 = OpFunctionCall %void %main_1
+         %72 = OpLoad %v4float %x_GLF_color
+         %73 = OpCompositeConstruct %main_out %72
+               OpReturnValue %73
                OpFunctionEnd
        %main = OpFunction %void None %17
-         %73 = OpLabel
-         %74 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %74
-         %75 = OpFunctionCall %void %main_1
-         %77 = OpLoad %v4float %x_GLF_color
-         %78 = OpCompositeConstruct %main_out %77
-         %76 = OpFunctionCall %void %tint_symbol_3 %78
+         %75 = OpLabel
+         %77 = OpLoad %v4float %gl_FragCoord_param_1
+         %76 = OpFunctionCall %main_out %main_inner %77
+         %78 = OpCompositeExtract %v4float %76 0
+               OpStore %x_GLF_color_1_1 %78
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.spvasm.expected.spvasm
index f5af17d..0242cbb 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 82
+; Bound: 81
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "v1"
                OpName %x_6 "x_6"
@@ -14,14 +15,13 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_6 NonWritable
@@ -33,17 +33,18 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -51,8 +52,6 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -67,7 +66,7 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %70 = OpTypeFunction %void %main_out
+         %70 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
           %b = OpVariable %_ptr_Function_bool Function %26
@@ -122,18 +121,17 @@
          %47 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %70
-%tint_symbol = OpFunctionParameter %main_out
-         %74 = OpLabel
-         %75 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %75
-               OpReturn
+ %main_inner = OpFunction %main_out None %70
+         %73 = OpLabel
+         %74 = OpFunctionCall %void %main_1
+         %75 = OpLoad %v4float %x_GLF_color
+         %76 = OpCompositeConstruct %main_out %75
+               OpReturnValue %76
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %77 = OpLabel
-         %78 = OpFunctionCall %void %main_1
-         %80 = OpLoad %v4float %x_GLF_color
-         %81 = OpCompositeConstruct %main_out %80
-         %79 = OpFunctionCall %void %tint_symbol_2 %81
+         %78 = OpLabel
+         %79 = OpFunctionCall %main_out %main_inner
+         %80 = OpCompositeExtract %v4float %79 0
+               OpStore %x_GLF_color_1_1 %80
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.wgsl.expected.spvasm
index f5af17d..0242cbb 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 82
+; Bound: 81
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "v1"
                OpName %x_6 "x_6"
@@ -14,14 +15,13 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_6 NonWritable
@@ -33,17 +33,18 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -51,8 +52,6 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -67,7 +66,7 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %70 = OpTypeFunction %void %main_out
+         %70 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
           %b = OpVariable %_ptr_Function_bool Function %26
@@ -122,18 +121,17 @@
          %47 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %70
-%tint_symbol = OpFunctionParameter %main_out
-         %74 = OpLabel
-         %75 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %75
-               OpReturn
+ %main_inner = OpFunction %main_out None %70
+         %73 = OpLabel
+         %74 = OpFunctionCall %void %main_1
+         %75 = OpLoad %v4float %x_GLF_color
+         %76 = OpCompositeConstruct %main_out %75
+               OpReturnValue %76
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %77 = OpLabel
-         %78 = OpFunctionCall %void %main_1
-         %80 = OpLoad %v4float %x_GLF_color
-         %81 = OpCompositeConstruct %main_out %80
-         %79 = OpFunctionCall %void %tint_symbol_2 %81
+         %78 = OpLabel
+         %79 = OpFunctionCall %main_out %main_inner
+         %80 = OpCompositeExtract %v4float %79 0
+               OpStore %x_GLF_color_1_1 %80
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.spvasm.expected.spvasm
index 2f722c4..8a2add6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.spvasm.expected.spvasm
@@ -1,33 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 89
+; Bound: 88
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -35,13 +39,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -53,7 +52,7 @@
        %bool = OpTypeBool
       %int_0 = OpConstant %int 0
    %main_out = OpTypeStruct %v4float
-         %77 = OpTypeFunction %void %main_out
+         %77 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -130,18 +129,17 @@
          %57 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %77
-%tint_symbol = OpFunctionParameter %main_out
-         %81 = OpLabel
-         %82 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %82
-               OpReturn
+ %main_inner = OpFunction %main_out None %77
+         %80 = OpLabel
+         %81 = OpFunctionCall %void %main_1
+         %82 = OpLoad %v4float %x_GLF_color
+         %83 = OpCompositeConstruct %main_out %82
+               OpReturnValue %83
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %84 = OpLabel
-         %85 = OpFunctionCall %void %main_1
-         %87 = OpLoad %v4float %x_GLF_color
-         %88 = OpCompositeConstruct %main_out %87
-         %86 = OpFunctionCall %void %tint_symbol_2 %88
+         %85 = OpLabel
+         %86 = OpFunctionCall %main_out %main_inner
+         %87 = OpCompositeExtract %v4float %86 0
+               OpStore %x_GLF_color_1_1 %87
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.wgsl.expected.spvasm
index 2f722c4..8a2add6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.wgsl.expected.spvasm
@@ -1,33 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 89
+; Bound: 88
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -35,13 +39,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -53,7 +52,7 @@
        %bool = OpTypeBool
       %int_0 = OpConstant %int 0
    %main_out = OpTypeStruct %v4float
-         %77 = OpTypeFunction %void %main_out
+         %77 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -130,18 +129,17 @@
          %57 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %77
-%tint_symbol = OpFunctionParameter %main_out
-         %81 = OpLabel
-         %82 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %82
-               OpReturn
+ %main_inner = OpFunction %main_out None %77
+         %80 = OpLabel
+         %81 = OpFunctionCall %void %main_1
+         %82 = OpLoad %v4float %x_GLF_color
+         %83 = OpCompositeConstruct %main_out %82
+               OpReturnValue %83
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %84 = OpLabel
-         %85 = OpFunctionCall %void %main_1
-         %87 = OpLoad %v4float %x_GLF_color
-         %88 = OpCompositeConstruct %main_out %87
-         %86 = OpFunctionCall %void %tint_symbol_2 %88
+         %85 = OpLabel
+         %86 = OpFunctionCall %main_out %main_inner
+         %87 = OpCompositeExtract %v4float %86 0
+               OpStore %x_GLF_color_1_1 %87
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.spvasm.expected.spvasm
index 978adb0..ca6049c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 92
+; Bound: 91
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
@@ -17,15 +18,14 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_11 "x_11"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -43,12 +43,13 @@
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
@@ -66,8 +67,6 @@
        %buf1 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_11 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %24 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -81,7 +80,7 @@
       %int_3 = OpConstant %int 3
 %_ptr_Uniform_float = OpTypePointer Uniform %float
    %main_out = OpTypeStruct %v4float
-         %80 = OpTypeFunction %void %main_out
+         %80 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %24
          %27 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %30
@@ -148,18 +147,17 @@
          %52 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %80
-%tint_symbol = OpFunctionParameter %main_out
-         %84 = OpLabel
-         %85 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %85
-               OpReturn
+ %main_inner = OpFunction %main_out None %80
+         %83 = OpLabel
+         %84 = OpFunctionCall %void %main_1
+         %85 = OpLoad %v4float %x_GLF_color
+         %86 = OpCompositeConstruct %main_out %85
+               OpReturnValue %86
                OpFunctionEnd
        %main = OpFunction %void None %24
-         %87 = OpLabel
-         %88 = OpFunctionCall %void %main_1
-         %90 = OpLoad %v4float %x_GLF_color
-         %91 = OpCompositeConstruct %main_out %90
-         %89 = OpFunctionCall %void %tint_symbol_2 %91
+         %88 = OpLabel
+         %89 = OpFunctionCall %main_out %main_inner
+         %90 = OpCompositeExtract %v4float %89 0
+               OpStore %x_GLF_color_1_1 %90
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.wgsl.expected.spvasm
index 978adb0..ca6049c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 92
+; Bound: 91
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
@@ -17,15 +18,14 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_11 "x_11"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -43,12 +43,13 @@
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
@@ -66,8 +67,6 @@
        %buf1 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_11 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %24 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -81,7 +80,7 @@
       %int_3 = OpConstant %int 3
 %_ptr_Uniform_float = OpTypePointer Uniform %float
    %main_out = OpTypeStruct %v4float
-         %80 = OpTypeFunction %void %main_out
+         %80 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %24
          %27 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %30
@@ -148,18 +147,17 @@
          %52 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %80
-%tint_symbol = OpFunctionParameter %main_out
-         %84 = OpLabel
-         %85 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %85
-               OpReturn
+ %main_inner = OpFunction %main_out None %80
+         %83 = OpLabel
+         %84 = OpFunctionCall %void %main_1
+         %85 = OpLoad %v4float %x_GLF_color
+         %86 = OpCompositeConstruct %main_out %85
+               OpReturnValue %86
                OpFunctionEnd
        %main = OpFunction %void None %24
-         %87 = OpLabel
-         %88 = OpFunctionCall %void %main_1
-         %90 = OpLoad %v4float %x_GLF_color
-         %91 = OpCompositeConstruct %main_out %90
-         %89 = OpFunctionCall %void %tint_symbol_2 %91
+         %88 = OpLabel
+         %89 = OpFunctionCall %main_out %main_inner
+         %90 = OpCompositeExtract %v4float %89 0
+               OpStore %x_GLF_color_1_1 %90
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.spvasm.expected.spvasm
index c4f9009..65d9b95 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.spvasm.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
          %23 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "quarter"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -57,10 +56,10 @@
          %42 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %43 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %44 = OpTypeFunction %void %main_out
+         %44 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
-          %v = OpVariable %_ptr_Function_v4float Function %8
+          %v = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0
          %21 = OpLoad %float %20
          %27 = OpCompositeConstruct %v4float %float_424_113007 %21 %float_1_29999995 %float_19_6200008
@@ -80,18 +79,17 @@
          %38 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %44
-%tint_symbol = OpFunctionParameter %main_out
-         %48 = OpLabel
-         %49 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %49
-               OpReturn
+ %main_inner = OpFunction %main_out None %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %main_1
+         %49 = OpLoad %v4float %x_GLF_color
+         %50 = OpCompositeConstruct %main_out %49
+               OpReturnValue %50
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %main_1
-         %54 = OpLoad %v4float %x_GLF_color
-         %55 = OpCompositeConstruct %main_out %54
-         %53 = OpFunctionCall %void %tint_symbol_2 %55
+         %52 = OpLabel
+         %53 = OpFunctionCall %main_out %main_inner
+         %54 = OpCompositeExtract %v4float %53 0
+               OpStore %x_GLF_color_1_1 %54
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.wgsl.expected.spvasm
index c4f9009..65d9b95 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
          %23 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "quarter"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -57,10 +56,10 @@
          %42 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %43 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %44 = OpTypeFunction %void %main_out
+         %44 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
-          %v = OpVariable %_ptr_Function_v4float Function %8
+          %v = OpVariable %_ptr_Function_v4float Function %5
          %20 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0
          %21 = OpLoad %float %20
          %27 = OpCompositeConstruct %v4float %float_424_113007 %21 %float_1_29999995 %float_19_6200008
@@ -80,18 +79,17 @@
          %38 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %44
-%tint_symbol = OpFunctionParameter %main_out
-         %48 = OpLabel
-         %49 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %49
-               OpReturn
+ %main_inner = OpFunction %main_out None %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %main_1
+         %49 = OpLoad %v4float %x_GLF_color
+         %50 = OpCompositeConstruct %main_out %49
+               OpReturnValue %50
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %main_1
-         %54 = OpLoad %v4float %x_GLF_color
-         %55 = OpCompositeConstruct %main_out %54
-         %53 = OpFunctionCall %void %tint_symbol_2 %55
+         %52 = OpLabel
+         %53 = OpFunctionCall %main_out %main_inner
+         %54 = OpCompositeExtract %v4float %53 0
+               OpStore %x_GLF_color_1_1 %54
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.spvasm
index e3f49f8..8d6489a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.spvasm
@@ -1,32 +1,31 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 63
+; Bound: 62
 ; Schema: 0
                OpCapability Shader
          %26 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %j "j"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,7 +42,7 @@
          %49 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %50 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %51 = OpTypeFunction %void %main_out
+         %51 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %15
@@ -92,18 +91,17 @@
          %44 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %51
-%tint_symbol = OpFunctionParameter %main_out
-         %55 = OpLabel
-         %56 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %56
-               OpReturn
+ %main_inner = OpFunction %main_out None %51
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %main_1
+         %56 = OpLoad %v4float %x_GLF_color
+         %57 = OpCompositeConstruct %main_out %56
+               OpReturnValue %57
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %main_1
-         %61 = OpLoad %v4float %x_GLF_color
-         %62 = OpCompositeConstruct %main_out %61
-         %60 = OpFunctionCall %void %tint_symbol_2 %62
+         %59 = OpLabel
+         %60 = OpFunctionCall %main_out %main_inner
+         %61 = OpCompositeExtract %v4float %60 0
+               OpStore %x_GLF_color_1_1 %61
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.wgsl.expected.spvasm
index 99a8be5..cafe27c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.wgsl.expected.spvasm
@@ -1,32 +1,31 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 65
+; Bound: 64
 ; Schema: 0
                OpCapability Shader
          %26 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %j "j"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -43,7 +42,7 @@
          %51 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %52 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %53 = OpTypeFunction %void %main_out
+         %53 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %15
@@ -97,18 +96,17 @@
          %46 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %53
-%tint_symbol = OpFunctionParameter %main_out
-         %57 = OpLabel
-         %58 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %58
-               OpReturn
+ %main_inner = OpFunction %main_out None %53
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %main_1
+         %58 = OpLoad %v4float %x_GLF_color
+         %59 = OpCompositeConstruct %main_out %58
+               OpReturnValue %59
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %60 = OpLabel
-         %61 = OpFunctionCall %void %main_1
-         %63 = OpLoad %v4float %x_GLF_color
-         %64 = OpCompositeConstruct %main_out %63
-         %62 = OpFunctionCall %void %tint_symbol_2 %64
+         %61 = OpLabel
+         %62 = OpFunctionCall %main_out %main_inner
+         %63 = OpCompositeExtract %v4float %62 0
+               OpStore %x_GLF_color_1_1 %63
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.spvasm.expected.spvasm
index 694832d..b4e1fd1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.spvasm.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 51
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
          %25 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -50,7 +49,7 @@
      %v4bool = OpTypeVector %bool 4
          %38 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %39 = OpTypeFunction %void %main_out
+         %39 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
          %18 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0
@@ -73,18 +72,17 @@
          %35 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %39
-%tint_symbol = OpFunctionParameter %main_out
-         %43 = OpLabel
-         %44 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %44
-               OpReturn
+ %main_inner = OpFunction %main_out None %39
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %main_1
+         %44 = OpLoad %v4float %x_GLF_color
+         %45 = OpCompositeConstruct %main_out %44
+               OpReturnValue %45
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %main_1
-         %49 = OpLoad %v4float %x_GLF_color
-         %50 = OpCompositeConstruct %main_out %49
-         %48 = OpFunctionCall %void %tint_symbol_2 %50
+         %47 = OpLabel
+         %48 = OpFunctionCall %main_out %main_inner
+         %49 = OpCompositeExtract %v4float %48 0
+               OpStore %x_GLF_color_1_1 %49
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.wgsl.expected.spvasm
index 694832d..b4e1fd1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 51
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
          %25 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -50,7 +49,7 @@
      %v4bool = OpTypeVector %bool 4
          %38 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %39 = OpTypeFunction %void %main_out
+         %39 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
          %18 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0
@@ -73,18 +72,17 @@
          %35 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %39
-%tint_symbol = OpFunctionParameter %main_out
-         %43 = OpLabel
-         %44 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %44
-               OpReturn
+ %main_inner = OpFunction %main_out None %39
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %main_1
+         %44 = OpLoad %v4float %x_GLF_color
+         %45 = OpCompositeConstruct %main_out %44
+               OpReturnValue %45
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %main_1
-         %49 = OpLoad %v4float %x_GLF_color
-         %50 = OpCompositeConstruct %main_out %49
-         %48 = OpFunctionCall %void %tint_symbol_2 %50
+         %47 = OpLabel
+         %48 = OpFunctionCall %main_out %main_inner
+         %49 = OpCompositeExtract %v4float %48 0
+               OpStore %x_GLF_color_1_1 %49
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.spvasm.expected.spvasm
index fa00ca6..a993c19 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.spvasm.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
          %26 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -49,7 +48,7 @@
     %float_1 = OpConstant %float 1
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %38 = OpTypeFunction %void %main_out
+         %38 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %17
@@ -75,18 +74,17 @@
          %33 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %38
-%tint_symbol = OpFunctionParameter %main_out
-         %42 = OpLabel
-         %43 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %43
-               OpReturn
+ %main_inner = OpFunction %main_out None %38
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %main_1
+         %43 = OpLoad %v4float %x_GLF_color
+         %44 = OpCompositeConstruct %main_out %43
+               OpReturnValue %44
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %main_1
-         %48 = OpLoad %v4float %x_GLF_color
-         %49 = OpCompositeConstruct %main_out %48
-         %47 = OpFunctionCall %void %tint_symbol_2 %49
+         %46 = OpLabel
+         %47 = OpFunctionCall %main_out %main_inner
+         %48 = OpCompositeExtract %v4float %47 0
+               OpStore %x_GLF_color_1_1 %48
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.wgsl.expected.spvasm
index fa00ca6..a993c19 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
          %26 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -49,7 +48,7 @@
     %float_1 = OpConstant %float 1
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %38 = OpTypeFunction %void %main_out
+         %38 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %17
@@ -75,18 +74,17 @@
          %33 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %38
-%tint_symbol = OpFunctionParameter %main_out
-         %42 = OpLabel
-         %43 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %43
-               OpReturn
+ %main_inner = OpFunction %main_out None %38
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %main_1
+         %43 = OpLoad %v4float %x_GLF_color
+         %44 = OpCompositeConstruct %main_out %43
+               OpReturnValue %44
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %main_1
-         %48 = OpLoad %v4float %x_GLF_color
-         %49 = OpCompositeConstruct %main_out %48
-         %47 = OpFunctionCall %void %tint_symbol_2 %49
+         %46 = OpLabel
+         %47 = OpFunctionCall %main_out %main_inner
+         %48 = OpCompositeExtract %v4float %47 0
+               OpStore %x_GLF_color_1_1 %48
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.spvasm.expected.spvasm
index b6f79eb..b5f5b13 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.spvasm.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 61
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
          %28 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "fourtytwo"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_36 "x_36"
                OpName %x_37_phi "x_37_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -52,7 +51,7 @@
          %47 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
          %48 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %49 = OpTypeFunction %void %main_out
+         %49 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
        %x_36 = OpVariable %_ptr_Function_bool Function %18
@@ -91,18 +90,17 @@
          %43 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %49
-%tint_symbol = OpFunctionParameter %main_out
-         %53 = OpLabel
-         %54 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %54
-               OpReturn
+ %main_inner = OpFunction %main_out None %49
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %main_1
+         %54 = OpLoad %v4float %x_GLF_color
+         %55 = OpCompositeConstruct %main_out %54
+               OpReturnValue %55
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %main_1
-         %59 = OpLoad %v4float %x_GLF_color
-         %60 = OpCompositeConstruct %main_out %59
-         %58 = OpFunctionCall %void %tint_symbol_2 %60
+         %57 = OpLabel
+         %58 = OpFunctionCall %main_out %main_inner
+         %59 = OpCompositeExtract %v4float %58 0
+               OpStore %x_GLF_color_1_1 %59
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.wgsl.expected.spvasm
index b6f79eb..b5f5b13 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 61
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
          %28 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "fourtytwo"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_36 "x_36"
                OpName %x_37_phi "x_37_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -52,7 +51,7 @@
          %47 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
          %48 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %49 = OpTypeFunction %void %main_out
+         %49 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
        %x_36 = OpVariable %_ptr_Function_bool Function %18
@@ -91,18 +90,17 @@
          %43 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %49
-%tint_symbol = OpFunctionParameter %main_out
-         %53 = OpLabel
-         %54 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %54
-               OpReturn
+ %main_inner = OpFunction %main_out None %49
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %main_1
+         %54 = OpLoad %v4float %x_GLF_color
+         %55 = OpCompositeConstruct %main_out %54
+               OpReturnValue %55
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %main_1
-         %59 = OpLoad %v4float %x_GLF_color
-         %60 = OpCompositeConstruct %main_out %59
-         %58 = OpFunctionCall %void %tint_symbol_2 %60
+         %57 = OpLabel
+         %58 = OpFunctionCall %main_out %main_inner
+         %59 = OpCompositeExtract %v4float %58 0
+               OpStore %x_GLF_color_1_1 %59
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.spvasm.expected.spvasm
index 0e37e00..794cc03 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.spvasm.expected.spvasm
@@ -1,30 +1,29 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %one "one"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -39,7 +38,7 @@
          %30 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
          %31 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %32 = OpTypeFunction %void %main_out
+         %32 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
         %one = OpVariable %_ptr_Function_float Function %14
@@ -60,18 +59,17 @@
          %27 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %32
-%tint_symbol = OpFunctionParameter %main_out
-         %36 = OpLabel
-         %37 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %37
-               OpReturn
+ %main_inner = OpFunction %main_out None %32
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %main_1
+         %37 = OpLoad %v4float %x_GLF_color
+         %38 = OpCompositeConstruct %main_out %37
+               OpReturnValue %38
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %main_1
-         %42 = OpLoad %v4float %x_GLF_color
-         %43 = OpCompositeConstruct %main_out %42
-         %41 = OpFunctionCall %void %tint_symbol_2 %43
+         %40 = OpLabel
+         %41 = OpFunctionCall %main_out %main_inner
+         %42 = OpCompositeExtract %v4float %41 0
+               OpStore %x_GLF_color_1_1 %42
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.wgsl.expected.spvasm
index 0e37e00..794cc03 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.wgsl.expected.spvasm
@@ -1,30 +1,29 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %one "one"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -39,7 +38,7 @@
          %30 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
          %31 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %32 = OpTypeFunction %void %main_out
+         %32 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
         %one = OpVariable %_ptr_Function_float Function %14
@@ -60,18 +59,17 @@
          %27 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %32
-%tint_symbol = OpFunctionParameter %main_out
-         %36 = OpLabel
-         %37 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %37
-               OpReturn
+ %main_inner = OpFunction %main_out None %32
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %main_1
+         %37 = OpLoad %v4float %x_GLF_color
+         %38 = OpCompositeConstruct %main_out %37
+               OpReturnValue %38
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %main_1
-         %42 = OpLoad %v4float %x_GLF_color
-         %43 = OpCompositeConstruct %main_out %42
-         %41 = OpFunctionCall %void %tint_symbol_2 %43
+         %40 = OpLabel
+         %41 = OpFunctionCall %main_out %main_inner
+         %42 = OpCompositeExtract %v4float %41 0
+               OpStore %x_GLF_color_1_1 %42
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.spvasm.expected.spvasm
index b16c6e2..1c34f93 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.spvasm.expected.spvasm
@@ -6,42 +6,42 @@
                OpCapability Shader
          %28 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -56,7 +56,7 @@
          %38 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %39 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %40 = OpTypeFunction %void %main_out
+         %40 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %21 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
@@ -77,20 +77,20 @@
          %34 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %40
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %40
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %44 = OpLabel
-         %45 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %45
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %45 = OpFunctionCall %void %main_1
+         %46 = OpLoad %v4float %x_GLF_color
+         %47 = OpCompositeConstruct %main_out %46
+               OpReturnValue %47
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %47 = OpLabel
-         %48 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %48
-         %49 = OpFunctionCall %void %main_1
-         %51 = OpLoad %v4float %x_GLF_color
-         %52 = OpCompositeConstruct %main_out %51
-         %50 = OpFunctionCall %void %tint_symbol_3 %52
+         %49 = OpLabel
+         %51 = OpLoad %v4float %gl_FragCoord_param_1
+         %50 = OpFunctionCall %main_out %main_inner %51
+         %52 = OpCompositeExtract %v4float %50 0
+               OpStore %x_GLF_color_1_1 %52
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.wgsl.expected.spvasm
index b16c6e2..1c34f93 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.wgsl.expected.spvasm
@@ -6,42 +6,42 @@
                OpCapability Shader
          %28 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -56,7 +56,7 @@
          %38 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %39 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %40 = OpTypeFunction %void %main_out
+         %40 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %21 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
@@ -77,20 +77,20 @@
          %34 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %40
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %40
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %44 = OpLabel
-         %45 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %45
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %45 = OpFunctionCall %void %main_1
+         %46 = OpLoad %v4float %x_GLF_color
+         %47 = OpCompositeConstruct %main_out %46
+               OpReturnValue %47
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %47 = OpLabel
-         %48 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %48
-         %49 = OpFunctionCall %void %main_1
-         %51 = OpLoad %v4float %x_GLF_color
-         %52 = OpCompositeConstruct %main_out %51
-         %50 = OpFunctionCall %void %tint_symbol_3 %52
+         %49 = OpLabel
+         %51 = OpLoad %v4float %gl_FragCoord_param_1
+         %50 = OpFunctionCall %main_out %main_inner %51
+         %52 = OpCompositeExtract %v4float %50 0
+               OpStore %x_GLF_color_1_1 %52
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.spvasm.expected.spvasm
index 1144dfa..2da9db9 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.spvasm.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 112
+; Bound: 111
 ; Schema: 0
                OpCapability Shader
          %48 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %highSigned "highSigned"
                OpName %highUnsigned "highUnsigned"
@@ -23,28 +23,27 @@
                OpName %x_79_phi "x_79_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -73,7 +72,7 @@
          %98 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %99 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %100 = OpTypeFunction %void %main_out
+        %100 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
  %highSigned = OpVariable %_ptr_Function_int Function %18
@@ -174,18 +173,17 @@
          %93 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %100
-%tint_symbol = OpFunctionParameter %main_out
-        %104 = OpLabel
-        %105 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %105
-               OpReturn
+ %main_inner = OpFunction %main_out None %100
+        %103 = OpLabel
+        %104 = OpFunctionCall %void %main_1
+        %105 = OpLoad %v4float %x_GLF_color
+        %106 = OpCompositeConstruct %main_out %105
+               OpReturnValue %106
                OpFunctionEnd
        %main = OpFunction %void None %12
-        %107 = OpLabel
-        %108 = OpFunctionCall %void %main_1
-        %110 = OpLoad %v4float %x_GLF_color
-        %111 = OpCompositeConstruct %main_out %110
-        %109 = OpFunctionCall %void %tint_symbol_2 %111
+        %108 = OpLabel
+        %109 = OpFunctionCall %main_out %main_inner
+        %110 = OpCompositeExtract %v4float %109 0
+               OpStore %x_GLF_color_1_1 %110
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.wgsl.expected.spvasm
index 1144dfa..2da9db9 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.wgsl.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 112
+; Bound: 111
 ; Schema: 0
                OpCapability Shader
          %48 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %highSigned "highSigned"
                OpName %highUnsigned "highUnsigned"
@@ -23,28 +23,27 @@
                OpName %x_79_phi "x_79_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -73,7 +72,7 @@
          %98 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %99 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %100 = OpTypeFunction %void %main_out
+        %100 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
  %highSigned = OpVariable %_ptr_Function_int Function %18
@@ -174,18 +173,17 @@
          %93 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %100
-%tint_symbol = OpFunctionParameter %main_out
-        %104 = OpLabel
-        %105 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %105
-               OpReturn
+ %main_inner = OpFunction %main_out None %100
+        %103 = OpLabel
+        %104 = OpFunctionCall %void %main_1
+        %105 = OpLoad %v4float %x_GLF_color
+        %106 = OpCompositeConstruct %main_out %105
+               OpReturnValue %106
                OpFunctionEnd
        %main = OpFunction %void None %12
-        %107 = OpLabel
-        %108 = OpFunctionCall %void %main_1
-        %110 = OpLoad %v4float %x_GLF_color
-        %111 = OpCompositeConstruct %main_out %110
-        %109 = OpFunctionCall %void %tint_symbol_2 %111
+        %108 = OpLabel
+        %109 = OpFunctionCall %main_out %main_inner
+        %110 = OpCompositeExtract %v4float %109 0
+               OpStore %x_GLF_color_1_1 %110
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.spvasm.expected.spvasm
index 7607b44..e806db8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.spvasm.expected.spvasm
@@ -1,36 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 61
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
          %21 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_5 "x_5"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
@@ -39,8 +40,6 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
@@ -51,7 +50,7 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %49 = OpTypeFunction %void %main_out
+         %49 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
          %22 = OpFDiv %float %float_1 %float_1
@@ -84,18 +83,17 @@
          %28 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %49
-%tint_symbol = OpFunctionParameter %main_out
-         %53 = OpLabel
-         %54 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %54
-               OpReturn
+ %main_inner = OpFunction %main_out None %49
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %main_1
+         %54 = OpLoad %v4float %x_GLF_color
+         %55 = OpCompositeConstruct %main_out %54
+               OpReturnValue %55
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %main_1
-         %59 = OpLoad %v4float %x_GLF_color
-         %60 = OpCompositeConstruct %main_out %59
-         %58 = OpFunctionCall %void %tint_symbol_2 %60
+         %57 = OpLabel
+         %58 = OpFunctionCall %main_out %main_inner
+         %59 = OpCompositeExtract %v4float %58 0
+               OpStore %x_GLF_color_1_1 %59
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.wgsl.expected.spvasm
index 91368f6..5cbad93 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.wgsl.expected.spvasm
@@ -1,35 +1,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_5 "x_5"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
@@ -38,8 +39,6 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
@@ -50,7 +49,7 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %45 = OpTypeFunction %void %main_out
+         %45 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
          %20 = OpFRem %float %float_1 %float_1
@@ -80,18 +79,17 @@
          %24 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %45
-%tint_symbol = OpFunctionParameter %main_out
-         %49 = OpLabel
-         %50 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %50
-               OpReturn
+ %main_inner = OpFunction %main_out None %45
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %main_1
+         %50 = OpLoad %v4float %x_GLF_color
+         %51 = OpCompositeConstruct %main_out %50
+               OpReturnValue %51
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %main_1
-         %55 = OpLoad %v4float %x_GLF_color
-         %56 = OpCompositeConstruct %main_out %55
-         %54 = OpFunctionCall %void %tint_symbol_2 %56
+         %53 = OpLabel
+         %54 = OpFunctionCall %main_out %main_inner
+         %55 = OpCompositeExtract %v4float %54 0
+               OpStore %x_GLF_color_1_1 %55
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.spvasm.expected.spvasm
index fc4fc19..51013b8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 92
+; Bound: 91
 ; Schema: 0
                OpCapability Shader
          %33 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -15,16 +16,15 @@
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %x_48 "x_48"
                OpName %x_49_phi "x_49_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -37,8 +37,12 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -46,18 +50,13 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf1 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -74,7 +73,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Uniform_float = OpTypePointer Uniform %float
    %main_out = OpTypeStruct %v4float
-         %80 = OpTypeFunction %void %main_out
+         %80 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %26
@@ -134,18 +133,17 @@
          %60 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %80
-%tint_symbol = OpFunctionParameter %main_out
-         %84 = OpLabel
-         %85 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %85
-               OpReturn
+ %main_inner = OpFunction %main_out None %80
+         %83 = OpLabel
+         %84 = OpFunctionCall %void %main_1
+         %85 = OpLoad %v4float %x_GLF_color
+         %86 = OpCompositeConstruct %main_out %85
+               OpReturnValue %86
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %87 = OpLabel
-         %88 = OpFunctionCall %void %main_1
-         %90 = OpLoad %v4float %x_GLF_color
-         %91 = OpCompositeConstruct %main_out %90
-         %89 = OpFunctionCall %void %tint_symbol_2 %91
+         %88 = OpLabel
+         %89 = OpFunctionCall %main_out %main_inner
+         %90 = OpCompositeExtract %v4float %89 0
+               OpStore %x_GLF_color_1_1 %90
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.wgsl.expected.spvasm
index fc4fc19..51013b8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 92
+; Bound: 91
 ; Schema: 0
                OpCapability Shader
          %33 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -15,16 +16,15 @@
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %x_48 "x_48"
                OpName %x_49_phi "x_49_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -37,8 +37,12 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -46,18 +50,13 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf1 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -74,7 +73,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Uniform_float = OpTypePointer Uniform %float
    %main_out = OpTypeStruct %v4float
-         %80 = OpTypeFunction %void %main_out
+         %80 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %26
@@ -134,18 +133,17 @@
          %60 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %80
-%tint_symbol = OpFunctionParameter %main_out
-         %84 = OpLabel
-         %85 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %85
-               OpReturn
+ %main_inner = OpFunction %main_out None %80
+         %83 = OpLabel
+         %84 = OpFunctionCall %void %main_1
+         %85 = OpLoad %v4float %x_GLF_color
+         %86 = OpCompositeConstruct %main_out %85
+               OpReturnValue %86
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %87 = OpLabel
-         %88 = OpFunctionCall %void %main_1
-         %90 = OpLoad %v4float %x_GLF_color
-         %91 = OpCompositeConstruct %main_out %90
-         %89 = OpFunctionCall %void %tint_symbol_2 %91
+         %88 = OpLabel
+         %89 = OpFunctionCall %main_out %main_inner
+         %90 = OpCompositeExtract %v4float %89 0
+               OpStore %x_GLF_color_1_1 %90
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.spvasm.expected.spvasm
index ed5bd9f..8a2cc65 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.spvasm.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 69
+; Bound: 68
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_5 "x_5"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_30 "x_30"
                OpName %x_31_phi "x_31_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -51,7 +50,7 @@
          %55 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
          %56 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %57 = OpTypeFunction %void %main_out
+         %57 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
        %x_30 = OpVariable %_ptr_Function_bool Function %18
@@ -112,18 +111,17 @@
          %42 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %57
-%tint_symbol = OpFunctionParameter %main_out
-         %61 = OpLabel
-         %62 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %62
-               OpReturn
+ %main_inner = OpFunction %main_out None %57
+         %60 = OpLabel
+         %61 = OpFunctionCall %void %main_1
+         %62 = OpLoad %v4float %x_GLF_color
+         %63 = OpCompositeConstruct %main_out %62
+               OpReturnValue %63
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %64 = OpLabel
-         %65 = OpFunctionCall %void %main_1
-         %67 = OpLoad %v4float %x_GLF_color
-         %68 = OpCompositeConstruct %main_out %67
-         %66 = OpFunctionCall %void %tint_symbol_2 %68
+         %65 = OpLabel
+         %66 = OpFunctionCall %main_out %main_inner
+         %67 = OpCompositeExtract %v4float %66 0
+               OpStore %x_GLF_color_1_1 %67
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.wgsl.expected.spvasm
index ed5bd9f..8a2cc65 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 69
+; Bound: 68
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_5 "x_5"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_30 "x_30"
                OpName %x_31_phi "x_31_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -51,7 +50,7 @@
          %55 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
          %56 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %57 = OpTypeFunction %void %main_out
+         %57 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
        %x_30 = OpVariable %_ptr_Function_bool Function %18
@@ -112,18 +111,17 @@
          %42 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %57
-%tint_symbol = OpFunctionParameter %main_out
-         %61 = OpLabel
-         %62 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %62
-               OpReturn
+ %main_inner = OpFunction %main_out None %57
+         %60 = OpLabel
+         %61 = OpFunctionCall %void %main_1
+         %62 = OpLoad %v4float %x_GLF_color
+         %63 = OpCompositeConstruct %main_out %62
+               OpReturnValue %63
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %64 = OpLabel
-         %65 = OpFunctionCall %void %main_1
-         %67 = OpLoad %v4float %x_GLF_color
-         %68 = OpCompositeConstruct %main_out %67
-         %66 = OpFunctionCall %void %tint_symbol_2 %68
+         %65 = OpLabel
+         %66 = OpFunctionCall %main_out %main_inner
+         %67 = OpCompositeExtract %v4float %66 0
+               OpStore %x_GLF_color_1_1 %67
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-sinh-inf/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-sinh-inf/0-opt.spvasm.expected.spvasm
index 78fda08..09834ee 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-sinh-inf/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-sinh-inf/0-opt.spvasm.expected.spvasm
@@ -1,45 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 62
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
          %25 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %x_38 "x_38"
                OpName %x_39_phi "x_39_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -57,7 +56,7 @@
          %48 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %49 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %50 = OpTypeFunction %void %main_out
+         %50 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %18
@@ -94,18 +93,17 @@
          %43 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %50
-%tint_symbol = OpFunctionParameter %main_out
-         %54 = OpLabel
-         %55 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %55
-               OpReturn
+ %main_inner = OpFunction %main_out None %50
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %main_1
+         %55 = OpLoad %v4float %x_GLF_color
+         %56 = OpCompositeConstruct %main_out %55
+               OpReturnValue %56
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %main_1
-         %60 = OpLoad %v4float %x_GLF_color
-         %61 = OpCompositeConstruct %main_out %60
-         %59 = OpFunctionCall %void %tint_symbol_2 %61
+         %58 = OpLabel
+         %59 = OpFunctionCall %main_out %main_inner
+         %60 = OpCompositeExtract %v4float %59 0
+               OpStore %x_GLF_color_1_1 %60
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-sinh-inf/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-sinh-inf/0-opt.wgsl.expected.spvasm
index 78fda08..09834ee 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-sinh-inf/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-sinh-inf/0-opt.wgsl.expected.spvasm
@@ -1,45 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 62
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
          %25 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %x_38 "x_38"
                OpName %x_39_phi "x_39_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -57,7 +56,7 @@
          %48 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %49 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %50 = OpTypeFunction %void %main_out
+         %50 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %18
@@ -94,18 +93,17 @@
          %43 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %50
-%tint_symbol = OpFunctionParameter %main_out
-         %54 = OpLabel
-         %55 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %55
-               OpReturn
+ %main_inner = OpFunction %main_out None %50
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %main_1
+         %55 = OpLoad %v4float %x_GLF_color
+         %56 = OpCompositeConstruct %main_out %55
+               OpReturnValue %56
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %main_1
-         %60 = OpLoad %v4float %x_GLF_color
-         %61 = OpCompositeConstruct %main_out %60
-         %59 = OpFunctionCall %void %tint_symbol_2 %61
+         %58 = OpLabel
+         %59 = OpFunctionCall %main_out %main_inner
+         %60 = OpCompositeExtract %v4float %59 0
+               OpStore %x_GLF_color_1_1 %60
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.spvasm.expected.spvasm
index 5d950f1..1720bd1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.spvasm.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 85
+; Bound: 84
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_26 "x_26"
                OpName %x_39 "x_39"
@@ -19,18 +19,17 @@
                OpName %x_4 "x_4"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -56,7 +55,7 @@
          %71 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
          %72 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %73 = OpTypeFunction %void %main_out
+         %73 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
        %x_26 = OpVariable %_ptr_Function_v2float Function %15
@@ -128,18 +127,17 @@
          %68 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %73
-%tint_symbol = OpFunctionParameter %main_out
-         %77 = OpLabel
-         %78 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %78
-               OpReturn
+ %main_inner = OpFunction %main_out None %73
+         %76 = OpLabel
+         %77 = OpFunctionCall %void %main_1
+         %78 = OpLoad %v4float %x_GLF_color
+         %79 = OpCompositeConstruct %main_out %78
+               OpReturnValue %79
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %80 = OpLabel
-         %81 = OpFunctionCall %void %main_1
-         %83 = OpLoad %v4float %x_GLF_color
-         %84 = OpCompositeConstruct %main_out %83
-         %82 = OpFunctionCall %void %tint_symbol_2 %84
+         %81 = OpLabel
+         %82 = OpFunctionCall %main_out %main_inner
+         %83 = OpCompositeExtract %v4float %82 0
+               OpStore %x_GLF_color_1_1 %83
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.wgsl.expected.spvasm
index 5d950f1..1720bd1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.wgsl.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 85
+; Bound: 84
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_26 "x_26"
                OpName %x_39 "x_39"
@@ -19,18 +19,17 @@
                OpName %x_4 "x_4"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -56,7 +55,7 @@
          %71 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
          %72 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %73 = OpTypeFunction %void %main_out
+         %73 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
        %x_26 = OpVariable %_ptr_Function_v2float Function %15
@@ -128,18 +127,17 @@
          %68 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %73
-%tint_symbol = OpFunctionParameter %main_out
-         %77 = OpLabel
-         %78 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %78
-               OpReturn
+ %main_inner = OpFunction %main_out None %73
+         %76 = OpLabel
+         %77 = OpFunctionCall %void %main_1
+         %78 = OpLoad %v4float %x_GLF_color
+         %79 = OpCompositeConstruct %main_out %78
+               OpReturnValue %79
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %80 = OpLabel
-         %81 = OpFunctionCall %void %main_1
-         %83 = OpLoad %v4float %x_GLF_color
-         %84 = OpCompositeConstruct %main_out %83
-         %82 = OpFunctionCall %void %tint_symbol_2 %84
+         %81 = OpLabel
+         %82 = OpFunctionCall %main_out %main_inner
+         %83 = OpCompositeExtract %v4float %82 0
+               OpStore %x_GLF_color_1_1 %83
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.spvasm
index ad265d4..df0ff83 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.spvasm
@@ -1,31 +1,30 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 45
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -38,7 +37,7 @@
          %31 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %32 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %33 = OpTypeFunction %void %main_out
+         %33 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %14
@@ -61,18 +60,17 @@
          %27 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %33
-%tint_symbol = OpFunctionParameter %main_out
-         %37 = OpLabel
-         %38 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %38
-               OpReturn
+ %main_inner = OpFunction %main_out None %33
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %main_1
+         %38 = OpLoad %v4float %x_GLF_color
+         %39 = OpCompositeConstruct %main_out %38
+               OpReturnValue %39
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %main_1
-         %43 = OpLoad %v4float %x_GLF_color
-         %44 = OpCompositeConstruct %main_out %43
-         %42 = OpFunctionCall %void %tint_symbol_2 %44
+         %41 = OpLabel
+         %42 = OpFunctionCall %main_out %main_inner
+         %43 = OpCompositeExtract %v4float %42 0
+               OpStore %x_GLF_color_1_1 %43
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.wgsl.expected.spvasm
index b1523b5..2063706 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.wgsl.expected.spvasm
@@ -1,31 +1,30 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
          %16 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -38,7 +37,7 @@
          %33 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %34 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %35 = OpTypeFunction %void %main_out
+         %35 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %14
@@ -66,18 +65,17 @@
          %29 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %35
-%tint_symbol = OpFunctionParameter %main_out
-         %39 = OpLabel
-         %40 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %40
-               OpReturn
+ %main_inner = OpFunction %main_out None %35
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %main_1
+         %40 = OpLoad %v4float %x_GLF_color
+         %41 = OpCompositeConstruct %main_out %40
+               OpReturnValue %41
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %main_1
-         %45 = OpLoad %v4float %x_GLF_color
-         %46 = OpCompositeConstruct %main_out %45
-         %44 = OpFunctionCall %void %tint_symbol_2 %46
+         %43 = OpLabel
+         %44 = OpFunctionCall %main_out %main_inner
+         %45 = OpCompositeExtract %v4float %44 0
+               OpStore %x_GLF_color_1_1 %45
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.spvasm.expected.spvasm
index 769deeb..92f35f4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 124
+; Bound: 123
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_f1_ "func_f1_"
                OpName %f "f"
                OpName %a "a"
@@ -21,17 +21,21 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_5 ArrayStride 16
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
@@ -39,13 +43,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Function_float = OpTypePointer Function %float
          %15 = OpTypeFunction %int %_ptr_Function_float
 %_ptr_Function_int = OpTypePointer Function %int
@@ -63,7 +62,7 @@
          %85 = OpConstantNull %float
 %float_0_699999988 = OpConstant %float 0.699999988
    %main_out = OpTypeStruct %v4float
-        %112 = OpTypeFunction %void %main_out
+        %112 = OpTypeFunction %main_out
    %func_f1_ = OpFunction %int None %15
           %f = OpFunctionParameter %_ptr_Function_float
          %19 = OpLabel
@@ -176,18 +175,17 @@
          %92 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %112
-%tint_symbol = OpFunctionParameter %main_out
-        %116 = OpLabel
-        %117 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %117
-               OpReturn
+ %main_inner = OpFunction %main_out None %112
+        %115 = OpLabel
+        %116 = OpFunctionCall %void %main_1
+        %117 = OpLoad %v4float %x_GLF_color
+        %118 = OpCompositeConstruct %main_out %117
+               OpReturnValue %118
                OpFunctionEnd
        %main = OpFunction %void None %80
-        %119 = OpLabel
-        %120 = OpFunctionCall %void %main_1
-        %122 = OpLoad %v4float %x_GLF_color
-        %123 = OpCompositeConstruct %main_out %122
-        %121 = OpFunctionCall %void %tint_symbol_2 %123
+        %120 = OpLabel
+        %121 = OpFunctionCall %main_out %main_inner
+        %122 = OpCompositeExtract %v4float %121 0
+               OpStore %x_GLF_color_1_1 %122
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.wgsl.expected.spvasm
index 769deeb..92f35f4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 124
+; Bound: 123
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_f1_ "func_f1_"
                OpName %f "f"
                OpName %a "a"
@@ -21,17 +21,21 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_5 ArrayStride 16
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
@@ -39,13 +43,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Function_float = OpTypePointer Function %float
          %15 = OpTypeFunction %int %_ptr_Function_float
 %_ptr_Function_int = OpTypePointer Function %int
@@ -63,7 +62,7 @@
          %85 = OpConstantNull %float
 %float_0_699999988 = OpConstant %float 0.699999988
    %main_out = OpTypeStruct %v4float
-        %112 = OpTypeFunction %void %main_out
+        %112 = OpTypeFunction %main_out
    %func_f1_ = OpFunction %int None %15
           %f = OpFunctionParameter %_ptr_Function_float
          %19 = OpLabel
@@ -176,18 +175,17 @@
          %92 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %112
-%tint_symbol = OpFunctionParameter %main_out
-        %116 = OpLabel
-        %117 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %117
-               OpReturn
+ %main_inner = OpFunction %main_out None %112
+        %115 = OpLabel
+        %116 = OpFunctionCall %void %main_1
+        %117 = OpLoad %v4float %x_GLF_color
+        %118 = OpCompositeConstruct %main_out %117
+               OpReturnValue %118
                OpFunctionEnd
        %main = OpFunction %void None %80
-        %119 = OpLabel
-        %120 = OpFunctionCall %void %main_1
-        %122 = OpLoad %v4float %x_GLF_color
-        %123 = OpCompositeConstruct %main_out %122
-        %121 = OpFunctionCall %void %tint_symbol_2 %123
+        %120 = OpLabel
+        %121 = OpFunctionCall %main_out %main_inner
+        %122 = OpCompositeExtract %v4float %121 0
+               OpStore %x_GLF_color_1_1 %122
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.spvasm.expected.spvasm
index cfefd60..db3fe1c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.spvasm.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
          %25 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %mixed "mixed"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_v2float = OpTypePointer Function %v2float
@@ -55,7 +54,7 @@
     %float_0 = OpConstant %float 0
          %43 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %44 = OpTypeFunction %void %main_out
+         %44 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
       %mixed = OpVariable %_ptr_Function_v2float Function %18
@@ -80,18 +79,17 @@
          %35 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %44
-%tint_symbol = OpFunctionParameter %main_out
-         %48 = OpLabel
-         %49 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %49
-               OpReturn
+ %main_inner = OpFunction %main_out None %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %main_1
+         %49 = OpLoad %v4float %x_GLF_color
+         %50 = OpCompositeConstruct %main_out %49
+               OpReturnValue %50
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %main_1
-         %54 = OpLoad %v4float %x_GLF_color
-         %55 = OpCompositeConstruct %main_out %54
-         %53 = OpFunctionCall %void %tint_symbol_2 %55
+         %52 = OpLabel
+         %53 = OpFunctionCall %main_out %main_inner
+         %54 = OpCompositeExtract %v4float %53 0
+               OpStore %x_GLF_color_1_1 %54
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.wgsl.expected.spvasm
index cfefd60..db3fe1c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
          %25 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %mixed "mixed"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_v2float = OpTypePointer Function %v2float
@@ -55,7 +54,7 @@
     %float_0 = OpConstant %float 0
          %43 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %44 = OpTypeFunction %void %main_out
+         %44 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
       %mixed = OpVariable %_ptr_Function_v2float Function %18
@@ -80,18 +79,17 @@
          %35 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %44
-%tint_symbol = OpFunctionParameter %main_out
-         %48 = OpLabel
-         %49 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %49
-               OpReturn
+ %main_inner = OpFunction %main_out None %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %main_1
+         %49 = OpLoad %v4float %x_GLF_color
+         %50 = OpCompositeConstruct %main_out %49
+               OpReturnValue %50
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %main_1
-         %54 = OpLoad %v4float %x_GLF_color
-         %55 = OpCompositeConstruct %main_out %54
-         %53 = OpFunctionCall %void %tint_symbol_2 %55
+         %52 = OpLabel
+         %53 = OpFunctionCall %main_out %main_inner
+         %54 = OpCompositeExtract %v4float %53 0
+               OpStore %x_GLF_color_1_1 %54
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.spvasm.expected.spvasm
index 373c260..21f4619 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 84
+; Bound: 83
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
@@ -14,13 +15,12 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "zero"
                OpName %x_7 "x_7"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
@@ -32,12 +32,13 @@
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
@@ -49,8 +50,6 @@
        %buf1 = OpTypeStruct %int
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_7 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -62,7 +61,7 @@
       %int_3 = OpConstant %int 3
       %false = OpConstantFalse %bool
    %main_out = OpTypeStruct %v4float
-         %72 = OpTypeFunction %void %main_out
+         %72 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
          %25 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0
@@ -125,18 +124,17 @@
                OpStore %x_GLF_color %71
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %72
-%tint_symbol = OpFunctionParameter %main_out
-         %76 = OpLabel
-         %77 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %77
-               OpReturn
+ %main_inner = OpFunction %main_out None %72
+         %75 = OpLabel
+         %76 = OpFunctionCall %void %main_1
+         %77 = OpLoad %v4float %x_GLF_color
+         %78 = OpCompositeConstruct %main_out %77
+               OpReturnValue %78
                OpFunctionEnd
        %main = OpFunction %void None %18
-         %79 = OpLabel
-         %80 = OpFunctionCall %void %main_1
-         %82 = OpLoad %v4float %x_GLF_color
-         %83 = OpCompositeConstruct %main_out %82
-         %81 = OpFunctionCall %void %tint_symbol_2 %83
+         %80 = OpLabel
+         %81 = OpFunctionCall %main_out %main_inner
+         %82 = OpCompositeExtract %v4float %81 0
+               OpStore %x_GLF_color_1_1 %82
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.wgsl.expected.spvasm
index 373c260..21f4619 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 84
+; Bound: 83
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
@@ -14,13 +15,12 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "zero"
                OpName %x_7 "x_7"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
@@ -32,12 +32,13 @@
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
@@ -49,8 +50,6 @@
        %buf1 = OpTypeStruct %int
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_7 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -62,7 +61,7 @@
       %int_3 = OpConstant %int 3
       %false = OpConstantFalse %bool
    %main_out = OpTypeStruct %v4float
-         %72 = OpTypeFunction %void %main_out
+         %72 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
          %25 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0
@@ -125,18 +124,17 @@
                OpStore %x_GLF_color %71
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %72
-%tint_symbol = OpFunctionParameter %main_out
-         %76 = OpLabel
-         %77 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %77
-               OpReturn
+ %main_inner = OpFunction %main_out None %72
+         %75 = OpLabel
+         %76 = OpFunctionCall %void %main_1
+         %77 = OpLoad %v4float %x_GLF_color
+         %78 = OpCompositeConstruct %main_out %77
+               OpReturnValue %78
                OpFunctionEnd
        %main = OpFunction %void None %18
-         %79 = OpLabel
-         %80 = OpFunctionCall %void %main_1
-         %82 = OpLoad %v4float %x_GLF_color
-         %83 = OpCompositeConstruct %main_out %82
-         %81 = OpFunctionCall %void %tint_symbol_2 %83
+         %80 = OpLabel
+         %81 = OpFunctionCall %main_out %main_inner
+         %82 = OpCompositeExtract %v4float %81 0
+               OpStore %x_GLF_color_1_1 %82
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.spvasm.expected.spvasm
index b34c579..c0c863c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 122
+; Bound: 121
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_50 "x_50"
                OpName %x_15 "x_15"
@@ -25,8 +25,7 @@
                OpName %x_63_phi "x_63_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
                OpName %func_struct_Array_i1_2_1_ "func_struct_Array_i1_2_1_"
                OpName %a "a"
@@ -39,26 +38,26 @@
                OpName %x_77_phi "x_77_phi"
                OpName %x_13_phi "x_13_phi"
                OpName %x_87_phi "x_87_phi"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %Array 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -85,8 +84,8 @@
          %70 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %71 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %72 = OpTypeFunction %void %main_out
-         %84 = OpTypeFunction %int %_ptr_Function_Array
+         %72 = OpTypeFunction %main_out
+         %83 = OpTypeFunction %int %_ptr_Function_Array
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
        %x_50 = OpVariable %_ptr_Function_bool Function %20
@@ -161,24 +160,23 @@
          %65 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %72
-%tint_symbol = OpFunctionParameter %main_out
-         %76 = OpLabel
-         %77 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %77
-               OpReturn
+ %main_inner = OpFunction %main_out None %72
+         %75 = OpLabel
+         %76 = OpFunctionCall %void %main_1
+         %77 = OpLoad %v4float %x_GLF_color
+         %78 = OpCompositeConstruct %main_out %77
+               OpReturnValue %78
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %79 = OpLabel
-         %80 = OpFunctionCall %void %main_1
-         %82 = OpLoad %v4float %x_GLF_color
-         %83 = OpCompositeConstruct %main_out %82
-         %81 = OpFunctionCall %void %tint_symbol_2 %83
+         %80 = OpLabel
+         %81 = OpFunctionCall %main_out %main_inner
+         %82 = OpCompositeExtract %v4float %81 0
+               OpStore %x_GLF_color_1_1 %82
                OpReturn
                OpFunctionEnd
-%func_struct_Array_i1_2_1_ = OpFunction %int None %84
+%func_struct_Array_i1_2_1_ = OpFunction %int None %83
           %a = OpFunctionParameter %_ptr_Function_Array
-         %87 = OpLabel
+         %86 = OpLabel
        %x_70 = OpVariable %_ptr_Function_bool Function %20
        %x_12 = OpVariable %_ptr_Function_int Function %23
        %x_13 = OpVariable %_ptr_Function_int Function %23
@@ -190,60 +188,60 @@
    %x_87_phi = OpVariable %_ptr_Function_bool Function %20
                OpStore %x_70 %false
                OpStore %x_72_phi %false
-               OpBranch %93
-         %93 = OpLabel
-               OpLoopMerge %94 %95 None
-               OpBranch %96
-         %96 = OpLabel
-        %101 = OpLoad %bool %x_72_phi
-               OpStore %x_77_phi %101
-               OpBranch %102
-        %102 = OpLabel
-               OpLoopMerge %103 %104 None
-               OpBranch %105
-        %105 = OpLabel
-        %106 = OpLoad %bool %x_77_phi
-               OpStore %x_77 %106
-        %107 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0
-        %108 = OpLoad %int %107
-        %110 = OpAccessChain %_ptr_Function_int %a %uint_0 %108
-        %111 = OpLoad %int %110
-        %112 = OpIEqual %bool %111 %int_1
-               OpSelectionMerge %113 None
-               OpBranchConditional %112 %114 %113
-        %114 = OpLabel
+               OpBranch %92
+         %92 = OpLabel
+               OpLoopMerge %93 %94 None
+               OpBranch %95
+         %95 = OpLabel
+        %100 = OpLoad %bool %x_72_phi
+               OpStore %x_77_phi %100
+               OpBranch %101
+        %101 = OpLabel
+               OpLoopMerge %102 %103 None
+               OpBranch %104
+        %104 = OpLabel
+        %105 = OpLoad %bool %x_77_phi
+               OpStore %x_77 %105
+        %106 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0
+        %107 = OpLoad %int %106
+        %109 = OpAccessChain %_ptr_Function_int %a %uint_0 %107
+        %110 = OpLoad %int %109
+        %111 = OpIEqual %bool %110 %int_1
+               OpSelectionMerge %112 None
+               OpBranchConditional %111 %113 %112
+        %113 = OpLabel
                OpStore %x_70 %true
                OpStore %x_12 %int_1
                OpStore %x_13_phi %int_1
                OpStore %x_87_phi %true
-               OpBranch %103
-        %113 = OpLabel
+               OpBranch %102
+        %112 = OpLabel
                OpStore %x_13_phi %int_0
-        %115 = OpLoad %bool %x_77
-               OpStore %x_87_phi %115
-               OpBranch %103
-        %104 = OpLabel
-               OpStore %x_77_phi %false
+        %114 = OpLoad %bool %x_77
+               OpStore %x_87_phi %114
                OpBranch %102
         %103 = OpLabel
-        %116 = OpLoad %int %x_13_phi
-               OpStore %x_13 %116
-        %117 = OpLoad %bool %x_87_phi
-        %118 = OpLoad %int %x_13
-               OpStore %x_14_phi %118
-               OpSelectionMerge %119 None
-               OpBranchConditional %117 %120 %119
-        %120 = OpLabel
-               OpBranch %94
+               OpStore %x_77_phi %false
+               OpBranch %101
+        %102 = OpLabel
+        %115 = OpLoad %int %x_13_phi
+               OpStore %x_13 %115
+        %116 = OpLoad %bool %x_87_phi
+        %117 = OpLoad %int %x_13
+               OpStore %x_14_phi %117
+               OpSelectionMerge %118 None
+               OpBranchConditional %116 %119 %118
         %119 = OpLabel
+               OpBranch %93
+        %118 = OpLabel
                OpStore %x_70 %true
                OpStore %x_12 %int_1
                OpStore %x_14_phi %int_1
-               OpBranch %94
-         %95 = OpLabel
-               OpStore %x_72_phi %false
                OpBranch %93
          %94 = OpLabel
-        %121 = OpLoad %int %x_14_phi
-               OpReturnValue %121
+               OpStore %x_72_phi %false
+               OpBranch %92
+         %93 = OpLabel
+        %120 = OpLoad %int %x_14_phi
+               OpReturnValue %120
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.wgsl.expected.spvasm
index b34c579..c0c863c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 122
+; Bound: 121
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_50 "x_50"
                OpName %x_15 "x_15"
@@ -25,8 +25,7 @@
                OpName %x_63_phi "x_63_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
                OpName %func_struct_Array_i1_2_1_ "func_struct_Array_i1_2_1_"
                OpName %a "a"
@@ -39,26 +38,26 @@
                OpName %x_77_phi "x_77_phi"
                OpName %x_13_phi "x_13_phi"
                OpName %x_87_phi "x_87_phi"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %Array 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -85,8 +84,8 @@
          %70 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %71 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %72 = OpTypeFunction %void %main_out
-         %84 = OpTypeFunction %int %_ptr_Function_Array
+         %72 = OpTypeFunction %main_out
+         %83 = OpTypeFunction %int %_ptr_Function_Array
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
        %x_50 = OpVariable %_ptr_Function_bool Function %20
@@ -161,24 +160,23 @@
          %65 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %72
-%tint_symbol = OpFunctionParameter %main_out
-         %76 = OpLabel
-         %77 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %77
-               OpReturn
+ %main_inner = OpFunction %main_out None %72
+         %75 = OpLabel
+         %76 = OpFunctionCall %void %main_1
+         %77 = OpLoad %v4float %x_GLF_color
+         %78 = OpCompositeConstruct %main_out %77
+               OpReturnValue %78
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %79 = OpLabel
-         %80 = OpFunctionCall %void %main_1
-         %82 = OpLoad %v4float %x_GLF_color
-         %83 = OpCompositeConstruct %main_out %82
-         %81 = OpFunctionCall %void %tint_symbol_2 %83
+         %80 = OpLabel
+         %81 = OpFunctionCall %main_out %main_inner
+         %82 = OpCompositeExtract %v4float %81 0
+               OpStore %x_GLF_color_1_1 %82
                OpReturn
                OpFunctionEnd
-%func_struct_Array_i1_2_1_ = OpFunction %int None %84
+%func_struct_Array_i1_2_1_ = OpFunction %int None %83
           %a = OpFunctionParameter %_ptr_Function_Array
-         %87 = OpLabel
+         %86 = OpLabel
        %x_70 = OpVariable %_ptr_Function_bool Function %20
        %x_12 = OpVariable %_ptr_Function_int Function %23
        %x_13 = OpVariable %_ptr_Function_int Function %23
@@ -190,60 +188,60 @@
    %x_87_phi = OpVariable %_ptr_Function_bool Function %20
                OpStore %x_70 %false
                OpStore %x_72_phi %false
-               OpBranch %93
-         %93 = OpLabel
-               OpLoopMerge %94 %95 None
-               OpBranch %96
-         %96 = OpLabel
-        %101 = OpLoad %bool %x_72_phi
-               OpStore %x_77_phi %101
-               OpBranch %102
-        %102 = OpLabel
-               OpLoopMerge %103 %104 None
-               OpBranch %105
-        %105 = OpLabel
-        %106 = OpLoad %bool %x_77_phi
-               OpStore %x_77 %106
-        %107 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0
-        %108 = OpLoad %int %107
-        %110 = OpAccessChain %_ptr_Function_int %a %uint_0 %108
-        %111 = OpLoad %int %110
-        %112 = OpIEqual %bool %111 %int_1
-               OpSelectionMerge %113 None
-               OpBranchConditional %112 %114 %113
-        %114 = OpLabel
+               OpBranch %92
+         %92 = OpLabel
+               OpLoopMerge %93 %94 None
+               OpBranch %95
+         %95 = OpLabel
+        %100 = OpLoad %bool %x_72_phi
+               OpStore %x_77_phi %100
+               OpBranch %101
+        %101 = OpLabel
+               OpLoopMerge %102 %103 None
+               OpBranch %104
+        %104 = OpLabel
+        %105 = OpLoad %bool %x_77_phi
+               OpStore %x_77 %105
+        %106 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0
+        %107 = OpLoad %int %106
+        %109 = OpAccessChain %_ptr_Function_int %a %uint_0 %107
+        %110 = OpLoad %int %109
+        %111 = OpIEqual %bool %110 %int_1
+               OpSelectionMerge %112 None
+               OpBranchConditional %111 %113 %112
+        %113 = OpLabel
                OpStore %x_70 %true
                OpStore %x_12 %int_1
                OpStore %x_13_phi %int_1
                OpStore %x_87_phi %true
-               OpBranch %103
-        %113 = OpLabel
+               OpBranch %102
+        %112 = OpLabel
                OpStore %x_13_phi %int_0
-        %115 = OpLoad %bool %x_77
-               OpStore %x_87_phi %115
-               OpBranch %103
-        %104 = OpLabel
-               OpStore %x_77_phi %false
+        %114 = OpLoad %bool %x_77
+               OpStore %x_87_phi %114
                OpBranch %102
         %103 = OpLabel
-        %116 = OpLoad %int %x_13_phi
-               OpStore %x_13 %116
-        %117 = OpLoad %bool %x_87_phi
-        %118 = OpLoad %int %x_13
-               OpStore %x_14_phi %118
-               OpSelectionMerge %119 None
-               OpBranchConditional %117 %120 %119
-        %120 = OpLabel
-               OpBranch %94
+               OpStore %x_77_phi %false
+               OpBranch %101
+        %102 = OpLabel
+        %115 = OpLoad %int %x_13_phi
+               OpStore %x_13 %115
+        %116 = OpLoad %bool %x_87_phi
+        %117 = OpLoad %int %x_13
+               OpStore %x_14_phi %117
+               OpSelectionMerge %118 None
+               OpBranchConditional %116 %119 %118
         %119 = OpLabel
+               OpBranch %93
+        %118 = OpLabel
                OpStore %x_70 %true
                OpStore %x_12 %int_1
                OpStore %x_14_phi %int_1
-               OpBranch %94
-         %95 = OpLabel
-               OpStore %x_72_phi %false
                OpBranch %93
          %94 = OpLabel
-        %121 = OpLoad %int %x_14_phi
-               OpReturnValue %121
+               OpStore %x_72_phi %false
+               OpBranch %92
+         %93 = OpLabel
+        %120 = OpLoad %int %x_14_phi
+               OpReturnValue %120
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.spvasm.expected.spvasm
index 71364d1..32d53f6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 59
+; Bound: 58
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %Array "Array"
                OpMemberName %Array 0 "values"
@@ -20,29 +20,28 @@
                OpName %one "one"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %Array 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -61,7 +60,7 @@
        %bool = OpTypeBool
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %47 = OpTypeFunction %void %main_out
+         %47 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_Array Function %22
@@ -90,18 +89,17 @@
                OpStore %x_GLF_color %46
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %47
-%tint_symbol = OpFunctionParameter %main_out
-         %51 = OpLabel
-         %52 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %52
-               OpReturn
+ %main_inner = OpFunction %main_out None %47
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %main_1
+         %52 = OpLoad %v4float %x_GLF_color
+         %53 = OpCompositeConstruct %main_out %52
+               OpReturnValue %53
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %main_1
-         %57 = OpLoad %v4float %x_GLF_color
-         %58 = OpCompositeConstruct %main_out %57
-         %56 = OpFunctionCall %void %tint_symbol_2 %58
+         %55 = OpLabel
+         %56 = OpFunctionCall %main_out %main_inner
+         %57 = OpCompositeExtract %v4float %56 0
+               OpStore %x_GLF_color_1_1 %57
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.wgsl.expected.spvasm
index 71364d1..32d53f6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 59
+; Bound: 58
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %Array "Array"
                OpMemberName %Array 0 "values"
@@ -20,29 +20,28 @@
                OpName %one "one"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %Array 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -61,7 +60,7 @@
        %bool = OpTypeBool
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %47 = OpTypeFunction %void %main_out
+         %47 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_Array Function %22
@@ -90,18 +89,17 @@
                OpStore %x_GLF_color %46
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %47
-%tint_symbol = OpFunctionParameter %main_out
-         %51 = OpLabel
-         %52 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %52
-               OpReturn
+ %main_inner = OpFunction %main_out None %47
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %main_1
+         %52 = OpLoad %v4float %x_GLF_color
+         %53 = OpCompositeConstruct %main_out %52
+               OpReturnValue %53
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %main_1
-         %57 = OpLoad %v4float %x_GLF_color
-         %58 = OpCompositeConstruct %main_out %57
-         %56 = OpFunctionCall %void %tint_symbol_2 %58
+         %55 = OpLabel
+         %56 = OpFunctionCall %main_out %main_inner
+         %57 = OpCompositeExtract %v4float %56 0
+               OpStore %x_GLF_color_1_1 %57
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.spvasm.expected.spvasm
index 83f6e26..2b1ddd8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 129
+; Bound: 128
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_52 "x_52"
                OpName %x_17 "x_17"
@@ -27,8 +27,7 @@
                OpName %x_67_phi "x_67_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
                OpName %func_struct_Array_i1_2_1_ "func_struct_Array_i1_2_1_"
                OpName %a "a"
@@ -41,26 +40,26 @@
                OpName %x_81_phi "x_81_phi"
                OpName %x_14_phi "x_14_phi"
                OpName %x_91_phi "x_91_phi"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %Array 0 Offset 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -87,8 +86,8 @@
          %77 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %78 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %79 = OpTypeFunction %void %main_out
-         %91 = OpTypeFunction %int %_ptr_Function_Array
+         %79 = OpTypeFunction %main_out
+         %90 = OpTypeFunction %int %_ptr_Function_Array
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
        %x_52 = OpVariable %_ptr_Function_bool Function %20
@@ -173,24 +172,23 @@
          %72 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %79
-%tint_symbol = OpFunctionParameter %main_out
-         %83 = OpLabel
-         %84 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %84
-               OpReturn
+ %main_inner = OpFunction %main_out None %79
+         %82 = OpLabel
+         %83 = OpFunctionCall %void %main_1
+         %84 = OpLoad %v4float %x_GLF_color
+         %85 = OpCompositeConstruct %main_out %84
+               OpReturnValue %85
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %86 = OpLabel
-         %87 = OpFunctionCall %void %main_1
-         %89 = OpLoad %v4float %x_GLF_color
-         %90 = OpCompositeConstruct %main_out %89
-         %88 = OpFunctionCall %void %tint_symbol_2 %90
+         %87 = OpLabel
+         %88 = OpFunctionCall %main_out %main_inner
+         %89 = OpCompositeExtract %v4float %88 0
+               OpStore %x_GLF_color_1_1 %89
                OpReturn
                OpFunctionEnd
-%func_struct_Array_i1_2_1_ = OpFunction %int None %91
+%func_struct_Array_i1_2_1_ = OpFunction %int None %90
           %a = OpFunctionParameter %_ptr_Function_Array
-         %94 = OpLabel
+         %93 = OpLabel
        %x_74 = OpVariable %_ptr_Function_bool Function %20
        %x_13 = OpVariable %_ptr_Function_int Function %23
        %x_14 = OpVariable %_ptr_Function_int Function %23
@@ -202,60 +200,60 @@
    %x_91_phi = OpVariable %_ptr_Function_bool Function %20
                OpStore %x_74 %false
                OpStore %x_76_phi %false
-               OpBranch %100
-        %100 = OpLabel
-               OpLoopMerge %101 %102 None
-               OpBranch %103
-        %103 = OpLabel
-        %108 = OpLoad %bool %x_76_phi
-               OpStore %x_81_phi %108
-               OpBranch %109
-        %109 = OpLabel
-               OpLoopMerge %110 %111 None
-               OpBranch %112
-        %112 = OpLabel
-        %113 = OpLoad %bool %x_81_phi
-               OpStore %x_81 %113
-        %114 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0
-        %115 = OpLoad %int %114
-        %117 = OpAccessChain %_ptr_Function_int %a %uint_0 %115
-        %118 = OpLoad %int %117
-        %119 = OpIEqual %bool %118 %int_0
-               OpSelectionMerge %120 None
-               OpBranchConditional %119 %121 %120
-        %121 = OpLabel
+               OpBranch %99
+         %99 = OpLabel
+               OpLoopMerge %100 %101 None
+               OpBranch %102
+        %102 = OpLabel
+        %107 = OpLoad %bool %x_76_phi
+               OpStore %x_81_phi %107
+               OpBranch %108
+        %108 = OpLabel
+               OpLoopMerge %109 %110 None
+               OpBranch %111
+        %111 = OpLabel
+        %112 = OpLoad %bool %x_81_phi
+               OpStore %x_81 %112
+        %113 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0
+        %114 = OpLoad %int %113
+        %116 = OpAccessChain %_ptr_Function_int %a %uint_0 %114
+        %117 = OpLoad %int %116
+        %118 = OpIEqual %bool %117 %int_0
+               OpSelectionMerge %119 None
+               OpBranchConditional %118 %120 %119
+        %120 = OpLabel
                OpStore %x_74 %true
                OpStore %x_13 %int_42
                OpStore %x_14_phi %int_42
                OpStore %x_91_phi %true
-               OpBranch %110
-        %120 = OpLabel
+               OpBranch %109
+        %119 = OpLabel
                OpStore %x_14_phi %int_0
-        %122 = OpLoad %bool %x_81
-               OpStore %x_91_phi %122
-               OpBranch %110
-        %111 = OpLabel
-               OpStore %x_81_phi %false
+        %121 = OpLoad %bool %x_81
+               OpStore %x_91_phi %121
                OpBranch %109
         %110 = OpLabel
-        %123 = OpLoad %int %x_14_phi
-               OpStore %x_14 %123
-        %124 = OpLoad %bool %x_91_phi
-        %125 = OpLoad %int %x_14
-               OpStore %x_15_phi %125
-               OpSelectionMerge %126 None
-               OpBranchConditional %124 %127 %126
-        %127 = OpLabel
-               OpBranch %101
+               OpStore %x_81_phi %false
+               OpBranch %108
+        %109 = OpLabel
+        %122 = OpLoad %int %x_14_phi
+               OpStore %x_14 %122
+        %123 = OpLoad %bool %x_91_phi
+        %124 = OpLoad %int %x_14
+               OpStore %x_15_phi %124
+               OpSelectionMerge %125 None
+               OpBranchConditional %123 %126 %125
         %126 = OpLabel
+               OpBranch %100
+        %125 = OpLabel
                OpStore %x_74 %true
                OpStore %x_13 %int_42
                OpStore %x_15_phi %int_42
-               OpBranch %101
-        %102 = OpLabel
-               OpStore %x_76_phi %false
                OpBranch %100
         %101 = OpLabel
-        %128 = OpLoad %int %x_15_phi
-               OpReturnValue %128
+               OpStore %x_76_phi %false
+               OpBranch %99
+        %100 = OpLabel
+        %127 = OpLoad %int %x_15_phi
+               OpReturnValue %127
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.wgsl.expected.spvasm
index 83f6e26..2b1ddd8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 129
+; Bound: 128
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_52 "x_52"
                OpName %x_17 "x_17"
@@ -27,8 +27,7 @@
                OpName %x_67_phi "x_67_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
                OpName %func_struct_Array_i1_2_1_ "func_struct_Array_i1_2_1_"
                OpName %a "a"
@@ -41,26 +40,26 @@
                OpName %x_81_phi "x_81_phi"
                OpName %x_14_phi "x_14_phi"
                OpName %x_91_phi "x_91_phi"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %Array 0 Offset 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -87,8 +86,8 @@
          %77 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %78 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %79 = OpTypeFunction %void %main_out
-         %91 = OpTypeFunction %int %_ptr_Function_Array
+         %79 = OpTypeFunction %main_out
+         %90 = OpTypeFunction %int %_ptr_Function_Array
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
        %x_52 = OpVariable %_ptr_Function_bool Function %20
@@ -173,24 +172,23 @@
          %72 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %79
-%tint_symbol = OpFunctionParameter %main_out
-         %83 = OpLabel
-         %84 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %84
-               OpReturn
+ %main_inner = OpFunction %main_out None %79
+         %82 = OpLabel
+         %83 = OpFunctionCall %void %main_1
+         %84 = OpLoad %v4float %x_GLF_color
+         %85 = OpCompositeConstruct %main_out %84
+               OpReturnValue %85
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %86 = OpLabel
-         %87 = OpFunctionCall %void %main_1
-         %89 = OpLoad %v4float %x_GLF_color
-         %90 = OpCompositeConstruct %main_out %89
-         %88 = OpFunctionCall %void %tint_symbol_2 %90
+         %87 = OpLabel
+         %88 = OpFunctionCall %main_out %main_inner
+         %89 = OpCompositeExtract %v4float %88 0
+               OpStore %x_GLF_color_1_1 %89
                OpReturn
                OpFunctionEnd
-%func_struct_Array_i1_2_1_ = OpFunction %int None %91
+%func_struct_Array_i1_2_1_ = OpFunction %int None %90
           %a = OpFunctionParameter %_ptr_Function_Array
-         %94 = OpLabel
+         %93 = OpLabel
        %x_74 = OpVariable %_ptr_Function_bool Function %20
        %x_13 = OpVariable %_ptr_Function_int Function %23
        %x_14 = OpVariable %_ptr_Function_int Function %23
@@ -202,60 +200,60 @@
    %x_91_phi = OpVariable %_ptr_Function_bool Function %20
                OpStore %x_74 %false
                OpStore %x_76_phi %false
-               OpBranch %100
-        %100 = OpLabel
-               OpLoopMerge %101 %102 None
-               OpBranch %103
-        %103 = OpLabel
-        %108 = OpLoad %bool %x_76_phi
-               OpStore %x_81_phi %108
-               OpBranch %109
-        %109 = OpLabel
-               OpLoopMerge %110 %111 None
-               OpBranch %112
-        %112 = OpLabel
-        %113 = OpLoad %bool %x_81_phi
-               OpStore %x_81 %113
-        %114 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0
-        %115 = OpLoad %int %114
-        %117 = OpAccessChain %_ptr_Function_int %a %uint_0 %115
-        %118 = OpLoad %int %117
-        %119 = OpIEqual %bool %118 %int_0
-               OpSelectionMerge %120 None
-               OpBranchConditional %119 %121 %120
-        %121 = OpLabel
+               OpBranch %99
+         %99 = OpLabel
+               OpLoopMerge %100 %101 None
+               OpBranch %102
+        %102 = OpLabel
+        %107 = OpLoad %bool %x_76_phi
+               OpStore %x_81_phi %107
+               OpBranch %108
+        %108 = OpLabel
+               OpLoopMerge %109 %110 None
+               OpBranch %111
+        %111 = OpLabel
+        %112 = OpLoad %bool %x_81_phi
+               OpStore %x_81 %112
+        %113 = OpAccessChain %_ptr_Uniform_int %x_8 %uint_0
+        %114 = OpLoad %int %113
+        %116 = OpAccessChain %_ptr_Function_int %a %uint_0 %114
+        %117 = OpLoad %int %116
+        %118 = OpIEqual %bool %117 %int_0
+               OpSelectionMerge %119 None
+               OpBranchConditional %118 %120 %119
+        %120 = OpLabel
                OpStore %x_74 %true
                OpStore %x_13 %int_42
                OpStore %x_14_phi %int_42
                OpStore %x_91_phi %true
-               OpBranch %110
-        %120 = OpLabel
+               OpBranch %109
+        %119 = OpLabel
                OpStore %x_14_phi %int_0
-        %122 = OpLoad %bool %x_81
-               OpStore %x_91_phi %122
-               OpBranch %110
-        %111 = OpLabel
-               OpStore %x_81_phi %false
+        %121 = OpLoad %bool %x_81
+               OpStore %x_91_phi %121
                OpBranch %109
         %110 = OpLabel
-        %123 = OpLoad %int %x_14_phi
-               OpStore %x_14 %123
-        %124 = OpLoad %bool %x_91_phi
-        %125 = OpLoad %int %x_14
-               OpStore %x_15_phi %125
-               OpSelectionMerge %126 None
-               OpBranchConditional %124 %127 %126
-        %127 = OpLabel
-               OpBranch %101
+               OpStore %x_81_phi %false
+               OpBranch %108
+        %109 = OpLabel
+        %122 = OpLoad %int %x_14_phi
+               OpStore %x_14 %122
+        %123 = OpLoad %bool %x_91_phi
+        %124 = OpLoad %int %x_14
+               OpStore %x_15_phi %124
+               OpSelectionMerge %125 None
+               OpBranchConditional %123 %126 %125
         %126 = OpLabel
+               OpBranch %100
+        %125 = OpLabel
                OpStore %x_74 %true
                OpStore %x_13 %int_42
                OpStore %x_15_phi %int_42
-               OpBranch %101
-        %102 = OpLabel
-               OpStore %x_76_phi %false
                OpBranch %100
         %101 = OpLabel
-        %128 = OpLoad %int %x_15_phi
-               OpReturnValue %128
+               OpStore %x_76_phi %false
+               OpBranch %99
+        %100 = OpLabel
+        %127 = OpLoad %int %x_15_phi
+               OpReturnValue %127
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.spvasm.expected.spvasm
index e90552e..ac15259 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 62
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
          %31 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,14 +16,13 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_1 ArrayStride 16
@@ -35,26 +35,25 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
 %_arr_int_uint_1 = OpTypeArray %int %uint_1
        %buf1 = OpTypeStruct %_arr_int_uint_1
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -67,10 +66,10 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
      %uint_2 = OpConstant %uint 2
    %main_out = OpTypeStruct %v4float
-         %50 = OpTypeFunction %void %main_out
+         %50 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
-          %v = OpVariable %_ptr_Function_v4float Function %11
+          %v = OpVariable %_ptr_Function_v4float Function %5
          %28 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0
          %29 = OpLoad %float %28
          %32 = OpExtInst %v4float %31 Cosh %34
@@ -91,18 +90,17 @@
                OpStore %x_GLF_color %49
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %50
-%tint_symbol = OpFunctionParameter %main_out
-         %54 = OpLabel
-         %55 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %55
-               OpReturn
+ %main_inner = OpFunction %main_out None %50
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %main_1
+         %55 = OpLoad %v4float %x_GLF_color
+         %56 = OpCompositeConstruct %main_out %55
+               OpReturnValue %56
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %main_1
-         %60 = OpLoad %v4float %x_GLF_color
-         %61 = OpCompositeConstruct %main_out %60
-         %59 = OpFunctionCall %void %tint_symbol_2 %61
+         %58 = OpLabel
+         %59 = OpFunctionCall %main_out %main_inner
+         %60 = OpCompositeExtract %v4float %59 0
+               OpStore %x_GLF_color_1_1 %60
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.wgsl.expected.spvasm
index e90552e..ac15259 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 62
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
          %31 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,14 +16,13 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_1 ArrayStride 16
@@ -35,26 +35,25 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
 %_arr_int_uint_1 = OpTypeArray %int %uint_1
        %buf1 = OpTypeStruct %_arr_int_uint_1
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -67,10 +66,10 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
      %uint_2 = OpConstant %uint 2
    %main_out = OpTypeStruct %v4float
-         %50 = OpTypeFunction %void %main_out
+         %50 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
-          %v = OpVariable %_ptr_Function_v4float Function %11
+          %v = OpVariable %_ptr_Function_v4float Function %5
          %28 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0
          %29 = OpLoad %float %28
          %32 = OpExtInst %v4float %31 Cosh %34
@@ -91,18 +90,17 @@
                OpStore %x_GLF_color %49
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %50
-%tint_symbol = OpFunctionParameter %main_out
-         %54 = OpLabel
-         %55 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %55
-               OpReturn
+ %main_inner = OpFunction %main_out None %50
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %main_1
+         %55 = OpLoad %v4float %x_GLF_color
+         %56 = OpCompositeConstruct %main_out %55
+               OpReturnValue %56
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %main_1
-         %60 = OpLoad %v4float %x_GLF_color
-         %61 = OpCompositeConstruct %main_out %60
-         %59 = OpFunctionCall %void %tint_symbol_2 %61
+         %58 = OpLabel
+         %59 = OpFunctionCall %main_out %main_inner
+         %60 = OpCompositeExtract %v4float %59 0
+               OpStore %x_GLF_color_1_1 %60
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.spvasm.expected.spvasm
index fe39eb7..9328b25 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 142
+; Bound: 141
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
@@ -21,18 +21,22 @@
                OpName %indexable "indexable"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_5 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
@@ -40,13 +44,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -65,7 +64,7 @@
       %false = OpConstantFalse %bool
       %int_4 = OpConstant %int 4
    %main_out = OpTypeStruct %v4float
-        %130 = OpTypeFunction %void %main_out
+        %130 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -214,18 +213,17 @@
         %115 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %130
-%tint_symbol = OpFunctionParameter %main_out
-        %134 = OpLabel
-        %135 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %135
-               OpReturn
+ %main_inner = OpFunction %main_out None %130
+        %133 = OpLabel
+        %134 = OpFunctionCall %void %main_1
+        %135 = OpLoad %v4float %x_GLF_color
+        %136 = OpCompositeConstruct %main_out %135
+               OpReturnValue %136
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %137 = OpLabel
-        %138 = OpFunctionCall %void %main_1
-        %140 = OpLoad %v4float %x_GLF_color
-        %141 = OpCompositeConstruct %main_out %140
-        %139 = OpFunctionCall %void %tint_symbol_2 %141
+        %138 = OpLabel
+        %139 = OpFunctionCall %main_out %main_inner
+        %140 = OpCompositeExtract %v4float %139 0
+               OpStore %x_GLF_color_1_1 %140
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.wgsl.expected.spvasm
index fe39eb7..9328b25 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 142
+; Bound: 141
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
@@ -21,18 +21,22 @@
                OpName %indexable "indexable"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_5 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
@@ -40,13 +44,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -65,7 +64,7 @@
       %false = OpConstantFalse %bool
       %int_4 = OpConstant %int 4
    %main_out = OpTypeStruct %v4float
-        %130 = OpTypeFunction %void %main_out
+        %130 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -214,18 +213,17 @@
         %115 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %130
-%tint_symbol = OpFunctionParameter %main_out
-        %134 = OpLabel
-        %135 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %135
-               OpReturn
+ %main_inner = OpFunction %main_out None %130
+        %133 = OpLabel
+        %134 = OpFunctionCall %void %main_1
+        %135 = OpLoad %v4float %x_GLF_color
+        %136 = OpCompositeConstruct %main_out %135
+               OpReturnValue %136
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %137 = OpLabel
-        %138 = OpFunctionCall %void %main_1
-        %140 = OpLoad %v4float %x_GLF_color
-        %141 = OpCompositeConstruct %main_out %140
-        %139 = OpFunctionCall %void %tint_symbol_2 %141
+        %138 = OpLabel
+        %139 = OpFunctionCall %main_out %main_inner
+        %140 = OpCompositeExtract %v4float %139 0
+               OpStore %x_GLF_color_1_1 %140
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.spvasm.expected.spvasm
index cb6d107..ce1a451 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.spvasm.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 98
+; Bound: 97
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
@@ -18,19 +18,18 @@
                OpName %indexable "indexable"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -54,7 +53,7 @@
     %float_1 = OpConstant %float 1
          %85 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %86 = OpTypeFunction %void %main_out
+         %86 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %15
@@ -161,18 +160,17 @@
          %82 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %86
-%tint_symbol = OpFunctionParameter %main_out
-         %90 = OpLabel
-         %91 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %91
-               OpReturn
+ %main_inner = OpFunction %main_out None %86
+         %89 = OpLabel
+         %90 = OpFunctionCall %void %main_1
+         %91 = OpLoad %v4float %x_GLF_color
+         %92 = OpCompositeConstruct %main_out %91
+               OpReturnValue %92
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %93 = OpLabel
-         %94 = OpFunctionCall %void %main_1
-         %96 = OpLoad %v4float %x_GLF_color
-         %97 = OpCompositeConstruct %main_out %96
-         %95 = OpFunctionCall %void %tint_symbol_2 %97
+         %94 = OpLabel
+         %95 = OpFunctionCall %main_out %main_inner
+         %96 = OpCompositeExtract %v4float %95 0
+               OpStore %x_GLF_color_1_1 %96
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.wgsl.expected.spvasm
index cb6d107..ce1a451 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.wgsl.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 98
+; Bound: 97
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
@@ -18,19 +18,18 @@
                OpName %indexable "indexable"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -54,7 +53,7 @@
     %float_1 = OpConstant %float 1
          %85 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %86 = OpTypeFunction %void %main_out
+         %86 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %15
@@ -161,18 +160,17 @@
          %82 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %86
-%tint_symbol = OpFunctionParameter %main_out
-         %90 = OpLabel
-         %91 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %91
-               OpReturn
+ %main_inner = OpFunction %main_out None %86
+         %89 = OpLabel
+         %90 = OpFunctionCall %void %main_1
+         %91 = OpLoad %v4float %x_GLF_color
+         %92 = OpCompositeConstruct %main_out %91
+               OpReturnValue %92
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %93 = OpLabel
-         %94 = OpFunctionCall %void %main_1
-         %96 = OpLoad %v4float %x_GLF_color
-         %97 = OpCompositeConstruct %main_out %96
-         %95 = OpFunctionCall %void %tint_symbol_2 %97
+         %94 = OpLabel
+         %95 = OpFunctionCall %main_out %main_inner
+         %96 = OpCompositeExtract %v4float %95 0
+               OpStore %x_GLF_color_1_1 %96
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.spvasm.expected.spvasm
index 5e0a897..98f757a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 121
+; Bound: 120
 ; Schema: 0
                OpCapability Shader
          %58 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %A1 "A1"
                OpName %a "a"
@@ -24,9 +24,9 @@
                OpName %x_36 "x_36"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
@@ -39,10 +39,13 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_3_0 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
@@ -54,12 +57,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_arr_float_uint_3_0 = OpTypeArray %float %uint_3
@@ -79,7 +78,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-        %109 = OpTypeFunction %void %main_out
+        %109 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
          %A1 = OpVariable %_ptr_Function__arr_float_uint_3_0 Function %26
@@ -169,18 +168,17 @@
          %90 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %109
-%tint_symbol = OpFunctionParameter %main_out
-        %113 = OpLabel
-        %114 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %114
-               OpReturn
+ %main_inner = OpFunction %main_out None %109
+        %112 = OpLabel
+        %113 = OpFunctionCall %void %main_1
+        %114 = OpLoad %v4float %x_GLF_color
+        %115 = OpCompositeConstruct %main_out %114
+               OpReturnValue %115
                OpFunctionEnd
        %main = OpFunction %void None %19
-        %116 = OpLabel
-        %117 = OpFunctionCall %void %main_1
-        %119 = OpLoad %v4float %x_GLF_color
-        %120 = OpCompositeConstruct %main_out %119
-        %118 = OpFunctionCall %void %tint_symbol_2 %120
+        %117 = OpLabel
+        %118 = OpFunctionCall %main_out %main_inner
+        %119 = OpCompositeExtract %v4float %118 0
+               OpStore %x_GLF_color_1_1 %119
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.wgsl.expected.spvasm
index 5e0a897..98f757a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 121
+; Bound: 120
 ; Schema: 0
                OpCapability Shader
          %58 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %A1 "A1"
                OpName %a "a"
@@ -24,9 +24,9 @@
                OpName %x_36 "x_36"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
@@ -39,10 +39,13 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_3_0 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
@@ -54,12 +57,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_arr_float_uint_3_0 = OpTypeArray %float %uint_3
@@ -79,7 +78,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-        %109 = OpTypeFunction %void %main_out
+        %109 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
          %A1 = OpVariable %_ptr_Function__arr_float_uint_3_0 Function %26
@@ -169,18 +168,17 @@
          %90 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %109
-%tint_symbol = OpFunctionParameter %main_out
-        %113 = OpLabel
-        %114 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %114
-               OpReturn
+ %main_inner = OpFunction %main_out None %109
+        %112 = OpLabel
+        %113 = OpFunctionCall %void %main_1
+        %114 = OpLoad %v4float %x_GLF_color
+        %115 = OpCompositeConstruct %main_out %114
+               OpReturnValue %115
                OpFunctionEnd
        %main = OpFunction %void None %19
-        %116 = OpLabel
-        %117 = OpFunctionCall %void %main_1
-        %119 = OpLoad %v4float %x_GLF_color
-        %120 = OpCompositeConstruct %main_out %119
-        %118 = OpFunctionCall %void %tint_symbol_2 %120
+        %117 = OpLabel
+        %118 = OpFunctionCall %main_out %main_inner
+        %119 = OpCompositeExtract %v4float %118 0
+               OpStore %x_GLF_color_1_1 %119
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.spvasm.expected.spvasm
index 72cbcba..2d2245e 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.spvasm.expected.spvasm
@@ -1,33 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 109
+; Bound: 108
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -35,13 +39,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -61,10 +60,10 @@
       %int_2 = OpConstant %int 2
      %v4bool = OpTypeVector %bool 4
    %main_out = OpTypeStruct %v4float
-         %97 = OpTypeFunction %void %main_out
+         %97 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
-          %v = OpVariable %_ptr_Function_v4float Function %12
+          %v = OpVariable %_ptr_Function_v4float Function %5
           %i = OpVariable %_ptr_Function_int Function %23
          %27 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3
          %28 = OpLoad %int %27
@@ -147,18 +146,17 @@
          %77 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %97
-%tint_symbol = OpFunctionParameter %main_out
-        %101 = OpLabel
-        %102 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %102
-               OpReturn
+ %main_inner = OpFunction %main_out None %97
+        %100 = OpLabel
+        %101 = OpFunctionCall %void %main_1
+        %102 = OpLoad %v4float %x_GLF_color
+        %103 = OpCompositeConstruct %main_out %102
+               OpReturnValue %103
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %104 = OpLabel
-        %105 = OpFunctionCall %void %main_1
-        %107 = OpLoad %v4float %x_GLF_color
-        %108 = OpCompositeConstruct %main_out %107
-        %106 = OpFunctionCall %void %tint_symbol_2 %108
+        %105 = OpLabel
+        %106 = OpFunctionCall %main_out %main_inner
+        %107 = OpCompositeExtract %v4float %106 0
+               OpStore %x_GLF_color_1_1 %107
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.wgsl.expected.spvasm
index 72cbcba..2d2245e 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.wgsl.expected.spvasm
@@ -1,33 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 109
+; Bound: 108
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -35,13 +39,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -61,10 +60,10 @@
       %int_2 = OpConstant %int 2
      %v4bool = OpTypeVector %bool 4
    %main_out = OpTypeStruct %v4float
-         %97 = OpTypeFunction %void %main_out
+         %97 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
-          %v = OpVariable %_ptr_Function_v4float Function %12
+          %v = OpVariable %_ptr_Function_v4float Function %5
           %i = OpVariable %_ptr_Function_int Function %23
          %27 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3
          %28 = OpLoad %int %27
@@ -147,18 +146,17 @@
          %77 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %97
-%tint_symbol = OpFunctionParameter %main_out
-        %101 = OpLabel
-        %102 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %102
-               OpReturn
+ %main_inner = OpFunction %main_out None %97
+        %100 = OpLabel
+        %101 = OpFunctionCall %void %main_1
+        %102 = OpLoad %v4float %x_GLF_color
+        %103 = OpCompositeConstruct %main_out %102
+               OpReturnValue %103
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %104 = OpLabel
-        %105 = OpFunctionCall %void %main_1
-        %107 = OpLoad %v4float %x_GLF_color
-        %108 = OpCompositeConstruct %main_out %107
-        %106 = OpFunctionCall %void %tint_symbol_2 %108
+        %105 = OpLabel
+        %106 = OpFunctionCall %main_out %main_inner
+        %107 = OpCompositeExtract %v4float %106 0
+               OpStore %x_GLF_color_1_1 %107
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.spvasm.expected.spvasm
index 862ad1a..3a9d4d4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 131
+; Bound: 130
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
@@ -14,7 +15,6 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_12 "x_12"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_f1_ "func_f1_"
                OpName %b "b"
                OpName %main_1 "main_1"
@@ -25,9 +25,9 @@
                OpName %x_72_phi "x_72_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_4 ArrayStride 16
@@ -40,12 +40,13 @@
                OpDecorate %x_12 NonWritable
                OpDecorate %x_12 DescriptorSet 0
                OpDecorate %x_12 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -59,8 +60,6 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_12 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
 %_ptr_Function_float = OpTypePointer Function %float
          %20 = OpTypeFunction %float %_ptr_Function_float
      %uint_0 = OpConstant %uint 0
@@ -79,7 +78,7 @@
      %v4bool = OpTypeVector %bool 4
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-        %119 = OpTypeFunction %void %main_out
+        %119 = OpTypeFunction %main_out
    %func_f1_ = OpFunction %float None %20
           %b = OpFunctionParameter %_ptr_Function_float
          %24 = OpLabel
@@ -184,18 +183,17 @@
          %98 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %119
-%tint_symbol = OpFunctionParameter %main_out
-        %123 = OpLabel
-        %124 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %124
-               OpReturn
+ %main_inner = OpFunction %main_out None %119
+        %122 = OpLabel
+        %123 = OpFunctionCall %void %main_1
+        %124 = OpLoad %v4float %x_GLF_color
+        %125 = OpCompositeConstruct %main_out %124
+               OpReturnValue %125
                OpFunctionEnd
        %main = OpFunction %void None %51
-        %126 = OpLabel
-        %127 = OpFunctionCall %void %main_1
-        %129 = OpLoad %v4float %x_GLF_color
-        %130 = OpCompositeConstruct %main_out %129
-        %128 = OpFunctionCall %void %tint_symbol_2 %130
+        %127 = OpLabel
+        %128 = OpFunctionCall %main_out %main_inner
+        %129 = OpCompositeExtract %v4float %128 0
+               OpStore %x_GLF_color_1_1 %129
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.wgsl.expected.spvasm
index 862ad1a..3a9d4d4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 131
+; Bound: 130
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
@@ -14,7 +15,6 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_12 "x_12"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_f1_ "func_f1_"
                OpName %b "b"
                OpName %main_1 "main_1"
@@ -25,9 +25,9 @@
                OpName %x_72_phi "x_72_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_4 ArrayStride 16
@@ -40,12 +40,13 @@
                OpDecorate %x_12 NonWritable
                OpDecorate %x_12 DescriptorSet 0
                OpDecorate %x_12 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -59,8 +60,6 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_12 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
 %_ptr_Function_float = OpTypePointer Function %float
          %20 = OpTypeFunction %float %_ptr_Function_float
      %uint_0 = OpConstant %uint 0
@@ -79,7 +78,7 @@
      %v4bool = OpTypeVector %bool 4
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-        %119 = OpTypeFunction %void %main_out
+        %119 = OpTypeFunction %main_out
    %func_f1_ = OpFunction %float None %20
           %b = OpFunctionParameter %_ptr_Function_float
          %24 = OpLabel
@@ -184,18 +183,17 @@
          %98 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %119
-%tint_symbol = OpFunctionParameter %main_out
-        %123 = OpLabel
-        %124 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %124
-               OpReturn
+ %main_inner = OpFunction %main_out None %119
+        %122 = OpLabel
+        %123 = OpFunctionCall %void %main_1
+        %124 = OpLoad %v4float %x_GLF_color
+        %125 = OpCompositeConstruct %main_out %124
+               OpReturnValue %125
                OpFunctionEnd
        %main = OpFunction %void None %51
-        %126 = OpLabel
-        %127 = OpFunctionCall %void %main_1
-        %129 = OpLoad %v4float %x_GLF_color
-        %130 = OpCompositeConstruct %main_out %129
-        %128 = OpFunctionCall %void %tint_symbol_2 %130
+        %127 = OpLabel
+        %128 = OpFunctionCall %main_out %main_inner
+        %129 = OpCompositeExtract %v4float %128 0
+               OpStore %x_GLF_color_1_1 %129
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.spvasm.expected.spvasm
index 57160b2..37dd032 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.spvasm.expected.spvasm
@@ -1,45 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 75
+; Bound: 74
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_4 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
 %_arr_float_uint_4 = OpTypeArray %float %uint_4
        %buf0 = OpTypeStruct %_arr_float_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -56,7 +55,7 @@
     %float_0 = OpConstant %float 0
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %63 = OpTypeFunction %void %main_out
+         %63 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %20
@@ -105,18 +104,17 @@
                OpStore %x_GLF_color %62
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %63
-%tint_symbol = OpFunctionParameter %main_out
-         %67 = OpLabel
-         %68 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %68
-               OpReturn
+ %main_inner = OpFunction %main_out None %63
+         %66 = OpLabel
+         %67 = OpFunctionCall %void %main_1
+         %68 = OpLoad %v4float %x_GLF_color
+         %69 = OpCompositeConstruct %main_out %68
+               OpReturnValue %69
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %70 = OpLabel
-         %71 = OpFunctionCall %void %main_1
-         %73 = OpLoad %v4float %x_GLF_color
-         %74 = OpCompositeConstruct %main_out %73
-         %72 = OpFunctionCall %void %tint_symbol_2 %74
+         %71 = OpLabel
+         %72 = OpFunctionCall %main_out %main_inner
+         %73 = OpCompositeExtract %v4float %72 0
+               OpStore %x_GLF_color_1_1 %73
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.wgsl.expected.spvasm
index 57160b2..37dd032 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.wgsl.expected.spvasm
@@ -1,45 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 75
+; Bound: 74
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_4 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
 %_arr_float_uint_4 = OpTypeArray %float %uint_4
        %buf0 = OpTypeStruct %_arr_float_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -56,7 +55,7 @@
     %float_0 = OpConstant %float 0
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %63 = OpTypeFunction %void %main_out
+         %63 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %20
@@ -105,18 +104,17 @@
                OpStore %x_GLF_color %62
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %63
-%tint_symbol = OpFunctionParameter %main_out
-         %67 = OpLabel
-         %68 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %68
-               OpReturn
+ %main_inner = OpFunction %main_out None %63
+         %66 = OpLabel
+         %67 = OpFunctionCall %void %main_1
+         %68 = OpLoad %v4float %x_GLF_color
+         %69 = OpCompositeConstruct %main_out %68
+               OpReturnValue %69
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %70 = OpLabel
-         %71 = OpFunctionCall %void %main_1
-         %73 = OpLoad %v4float %x_GLF_color
-         %74 = OpCompositeConstruct %main_out %73
-         %72 = OpFunctionCall %void %tint_symbol_2 %74
+         %71 = OpLabel
+         %72 = OpFunctionCall %main_out %main_inner
+         %73 = OpCompositeExtract %v4float %72 0
+               OpStore %x_GLF_color_1_1 %73
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.spvasm.expected.spvasm
index 9d357a5..6c38087 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.spvasm.expected.spvasm
@@ -1,33 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 86
+; Bound: 85
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -35,13 +39,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -54,7 +53,7 @@
        %bool = OpTypeBool
       %int_0 = OpConstant %int 0
    %main_out = OpTypeStruct %v4float
-         %74 = OpTypeFunction %void %main_out
+         %74 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -124,18 +123,17 @@
          %54 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %74
-%tint_symbol = OpFunctionParameter %main_out
-         %78 = OpLabel
-         %79 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %79
-               OpReturn
+ %main_inner = OpFunction %main_out None %74
+         %77 = OpLabel
+         %78 = OpFunctionCall %void %main_1
+         %79 = OpLoad %v4float %x_GLF_color
+         %80 = OpCompositeConstruct %main_out %79
+               OpReturnValue %80
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %81 = OpLabel
-         %82 = OpFunctionCall %void %main_1
-         %84 = OpLoad %v4float %x_GLF_color
-         %85 = OpCompositeConstruct %main_out %84
-         %83 = OpFunctionCall %void %tint_symbol_2 %85
+         %82 = OpLabel
+         %83 = OpFunctionCall %main_out %main_inner
+         %84 = OpCompositeExtract %v4float %83 0
+               OpStore %x_GLF_color_1_1 %84
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.wgsl.expected.spvasm
index 9d357a5..6c38087 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.wgsl.expected.spvasm
@@ -1,33 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 86
+; Bound: 85
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -35,13 +39,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -54,7 +53,7 @@
        %bool = OpTypeBool
       %int_0 = OpConstant %int 0
    %main_out = OpTypeStruct %v4float
-         %74 = OpTypeFunction %void %main_out
+         %74 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -124,18 +123,17 @@
          %54 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %74
-%tint_symbol = OpFunctionParameter %main_out
-         %78 = OpLabel
-         %79 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %79
-               OpReturn
+ %main_inner = OpFunction %main_out None %74
+         %77 = OpLabel
+         %78 = OpFunctionCall %void %main_1
+         %79 = OpLoad %v4float %x_GLF_color
+         %80 = OpCompositeConstruct %main_out %79
+               OpReturnValue %80
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %81 = OpLabel
-         %82 = OpFunctionCall %void %main_1
-         %84 = OpLoad %v4float %x_GLF_color
-         %85 = OpCompositeConstruct %main_out %84
-         %83 = OpFunctionCall %void %tint_symbol_2 %85
+         %82 = OpLabel
+         %83 = OpFunctionCall %main_out %main_inner
+         %84 = OpCompositeExtract %v4float %83 0
+               OpStore %x_GLF_color_1_1 %84
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.spvasm.expected.spvasm
index b50c135..5c987a3 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 78
+; Bound: 77
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "ten"
                OpName %x_8 "x_8"
@@ -14,16 +15,15 @@
                OpMemberName %buf0 0 "minusEight"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_8 NonWritable
@@ -34,8 +34,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf1 = OpTypeStruct %int
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
@@ -43,13 +47,8 @@
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -68,7 +67,7 @@
          %64 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %65 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %66 = OpTypeFunction %void %main_out
+         %66 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -129,18 +128,17 @@
          %59 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %66
-%tint_symbol = OpFunctionParameter %main_out
-         %70 = OpLabel
-         %71 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %71
-               OpReturn
+ %main_inner = OpFunction %main_out None %66
+         %69 = OpLabel
+         %70 = OpFunctionCall %void %main_1
+         %71 = OpLoad %v4float %x_GLF_color
+         %72 = OpCompositeConstruct %main_out %71
+               OpReturnValue %72
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %73 = OpLabel
-         %74 = OpFunctionCall %void %main_1
-         %76 = OpLoad %v4float %x_GLF_color
-         %77 = OpCompositeConstruct %main_out %76
-         %75 = OpFunctionCall %void %tint_symbol_2 %77
+         %74 = OpLabel
+         %75 = OpFunctionCall %main_out %main_inner
+         %76 = OpCompositeExtract %v4float %75 0
+               OpStore %x_GLF_color_1_1 %76
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.wgsl.expected.spvasm
index b50c135..5c987a3 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 78
+; Bound: 77
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "ten"
                OpName %x_8 "x_8"
@@ -14,16 +15,15 @@
                OpMemberName %buf0 0 "minusEight"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_8 NonWritable
@@ -34,8 +34,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf1 = OpTypeStruct %int
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
@@ -43,13 +47,8 @@
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -68,7 +67,7 @@
          %64 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %65 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %66 = OpTypeFunction %void %main_out
+         %66 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -129,18 +128,17 @@
          %59 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %66
-%tint_symbol = OpFunctionParameter %main_out
-         %70 = OpLabel
-         %71 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %71
-               OpReturn
+ %main_inner = OpFunction %main_out None %66
+         %69 = OpLabel
+         %70 = OpFunctionCall %void %main_1
+         %71 = OpLoad %v4float %x_GLF_color
+         %72 = OpCompositeConstruct %main_out %71
+               OpReturnValue %72
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %73 = OpLabel
-         %74 = OpFunctionCall %void %main_1
-         %76 = OpLoad %v4float %x_GLF_color
-         %77 = OpCompositeConstruct %main_out %76
-         %75 = OpFunctionCall %void %tint_symbol_2 %77
+         %74 = OpLabel
+         %75 = OpFunctionCall %main_out %main_inner
+         %76 = OpCompositeExtract %v4float %75 0
+               OpStore %x_GLF_color_1_1 %76
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.spvasm.expected.spvasm
index 594fd2e..5827c5d 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 117
+; Bound: 116
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %a "a"
@@ -21,26 +21,25 @@
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -69,7 +68,7 @@
      %uint_3 = OpConstant %uint 3
 %_ptr_Private_float = OpTypePointer Private %float
    %main_out = OpTypeStruct %v4float
-        %105 = OpTypeFunction %void %main_out
+        %105 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %17
@@ -170,18 +169,17 @@
                OpStore %104 %float_1
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %105
-%tint_symbol = OpFunctionParameter %main_out
-        %109 = OpLabel
-        %110 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %110
-               OpReturn
+ %main_inner = OpFunction %main_out None %105
+        %108 = OpLabel
+        %109 = OpFunctionCall %void %main_1
+        %110 = OpLoad %v4float %x_GLF_color
+        %111 = OpCompositeConstruct %main_out %110
+               OpReturnValue %111
                OpFunctionEnd
        %main = OpFunction %void None %11
-        %112 = OpLabel
-        %113 = OpFunctionCall %void %main_1
-        %115 = OpLoad %v4float %x_GLF_color
-        %116 = OpCompositeConstruct %main_out %115
-        %114 = OpFunctionCall %void %tint_symbol_2 %116
+        %113 = OpLabel
+        %114 = OpFunctionCall %main_out %main_inner
+        %115 = OpCompositeExtract %v4float %114 0
+               OpStore %x_GLF_color_1_1 %115
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.wgsl.expected.spvasm
index 594fd2e..5827c5d 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 117
+; Bound: 116
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %a "a"
@@ -21,26 +21,25 @@
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -69,7 +68,7 @@
      %uint_3 = OpConstant %uint 3
 %_ptr_Private_float = OpTypePointer Private %float
    %main_out = OpTypeStruct %v4float
-        %105 = OpTypeFunction %void %main_out
+        %105 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %17
@@ -170,18 +169,17 @@
                OpStore %104 %float_1
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %105
-%tint_symbol = OpFunctionParameter %main_out
-        %109 = OpLabel
-        %110 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %110
-               OpReturn
+ %main_inner = OpFunction %main_out None %105
+        %108 = OpLabel
+        %109 = OpFunctionCall %void %main_1
+        %110 = OpLoad %v4float %x_GLF_color
+        %111 = OpCompositeConstruct %main_out %110
+               OpReturnValue %111
                OpFunctionEnd
        %main = OpFunction %void None %11
-        %112 = OpLabel
-        %113 = OpFunctionCall %void %main_1
-        %115 = OpLoad %v4float %x_GLF_color
-        %116 = OpCompositeConstruct %main_out %115
-        %114 = OpFunctionCall %void %tint_symbol_2 %116
+        %113 = OpLabel
+        %114 = OpFunctionCall %main_out %main_inner
+        %115 = OpCompositeExtract %v4float %114 0
+               OpStore %x_GLF_color_1_1 %115
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dead-branch-func-return-arg/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-dead-branch-func-return-arg/0-opt.spvasm.expected.spvasm
index 90974ab..e3320fd 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-dead-branch-func-return-arg/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-dead-branch-func-return-arg/0-opt.spvasm.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 147
+; Bound: 146
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_29 "x_29"
                OpName %x_30 "x_30"
@@ -24,23 +24,22 @@
                OpName %param_1 "param_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
                OpName %func_f1_ "func_f1_"
                OpName %x "x"
                OpName %x_93 "x_93"
                OpName %x_94 "x_94"
                OpName %a "a"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -57,8 +56,8 @@
          %99 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %100 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %101 = OpTypeFunction %void %main_out
-        %113 = OpTypeFunction %float %_ptr_Function_float
+        %101 = OpTypeFunction %main_out
+        %112 = OpTypeFunction %float %_ptr_Function_float
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
        %x_29 = OpVariable %_ptr_Function_bool Function %16
@@ -210,73 +209,72 @@
          %96 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %101
-%tint_symbol = OpFunctionParameter %main_out
-        %105 = OpLabel
-        %106 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %106
-               OpReturn
+ %main_inner = OpFunction %main_out None %101
+        %104 = OpLabel
+        %105 = OpFunctionCall %void %main_1
+        %106 = OpLoad %v4float %x_GLF_color
+        %107 = OpCompositeConstruct %main_out %106
+               OpReturnValue %107
                OpFunctionEnd
        %main = OpFunction %void None %8
-        %108 = OpLabel
-        %109 = OpFunctionCall %void %main_1
-        %111 = OpLoad %v4float %x_GLF_color
-        %112 = OpCompositeConstruct %main_out %111
-        %110 = OpFunctionCall %void %tint_symbol_2 %112
+        %109 = OpLabel
+        %110 = OpFunctionCall %main_out %main_inner
+        %111 = OpCompositeExtract %v4float %110 0
+               OpStore %x_GLF_color_1_1 %111
                OpReturn
                OpFunctionEnd
-   %func_f1_ = OpFunction %float None %113
+   %func_f1_ = OpFunction %float None %112
           %x = OpFunctionParameter %_ptr_Function_float
-        %116 = OpLabel
+        %115 = OpLabel
        %x_93 = OpVariable %_ptr_Function_bool Function %16
        %x_94 = OpVariable %_ptr_Function_float Function %19
           %a = OpVariable %_ptr_Function_float Function %19
                OpStore %x_93 %false
-               OpBranch %120
-        %120 = OpLabel
-               OpLoopMerge %121 %122 None
-               OpBranch %123
-        %123 = OpLabel
-        %125 = OpLoad %float %x
-               OpStore %a %125
-               OpBranch %126
-        %126 = OpLabel
-               OpLoopMerge %127 %128 None
-               OpBranch %129
-        %129 = OpLabel
-        %130 = OpLoad %float %a
-        %132 = OpLoad %float %x
-        %133 = OpFOrdEqual %bool %130 %132
-               OpSelectionMerge %134 None
-               OpBranchConditional %133 %135 %134
-        %135 = OpLabel
-        %136 = OpLoad %float %a
-               OpStore %x_93 %true
-               OpStore %x_94 %136
-               OpBranch %127
-        %134 = OpLabel
-        %137 = OpLoad %float %a
-        %138 = OpFAdd %float %137 %float_1
-               OpStore %a %138
+               OpBranch %119
+        %119 = OpLabel
+               OpLoopMerge %120 %121 None
+               OpBranch %122
+        %122 = OpLabel
+        %124 = OpLoad %float %x
+               OpStore %a %124
+               OpBranch %125
+        %125 = OpLabel
+               OpLoopMerge %126 %127 None
                OpBranch %128
         %128 = OpLabel
-        %139 = OpLoad %float %a
-        %141 = OpLoad %float %x
-        %142 = OpFOrdLessThan %bool %139 %141
-               OpBranchConditional %142 %126 %127
+        %129 = OpLoad %float %a
+        %131 = OpLoad %float %x
+        %132 = OpFOrdEqual %bool %129 %131
+               OpSelectionMerge %133 None
+               OpBranchConditional %132 %134 %133
+        %134 = OpLabel
+        %135 = OpLoad %float %a
+               OpStore %x_93 %true
+               OpStore %x_94 %135
+               OpBranch %126
+        %133 = OpLabel
+        %136 = OpLoad %float %a
+        %137 = OpFAdd %float %136 %float_1
+               OpStore %a %137
+               OpBranch %127
         %127 = OpLabel
-        %143 = OpLoad %bool %x_93
-               OpSelectionMerge %144 None
-               OpBranchConditional %143 %145 %144
-        %145 = OpLabel
-               OpBranch %121
+        %138 = OpLoad %float %a
+        %140 = OpLoad %float %x
+        %141 = OpFOrdLessThan %bool %138 %140
+               OpBranchConditional %141 %125 %126
+        %126 = OpLabel
+        %142 = OpLoad %bool %x_93
+               OpSelectionMerge %143 None
+               OpBranchConditional %142 %144 %143
         %144 = OpLabel
+               OpBranch %120
+        %143 = OpLabel
                OpStore %x_93 %true
                OpStore %x_94 %float_0
-               OpBranch %121
-        %122 = OpLabel
                OpBranch %120
         %121 = OpLabel
-        %146 = OpLoad %float %x_94
-               OpReturnValue %146
+               OpBranch %119
+        %120 = OpLabel
+        %145 = OpLoad %float %x_94
+               OpReturnValue %145
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dead-branch-func-return-arg/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-dead-branch-func-return-arg/0-opt.wgsl.expected.spvasm
index 90974ab..e3320fd 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-dead-branch-func-return-arg/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-dead-branch-func-return-arg/0-opt.wgsl.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 147
+; Bound: 146
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_29 "x_29"
                OpName %x_30 "x_30"
@@ -24,23 +24,22 @@
                OpName %param_1 "param_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
                OpName %func_f1_ "func_f1_"
                OpName %x "x"
                OpName %x_93 "x_93"
                OpName %x_94 "x_94"
                OpName %a "a"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -57,8 +56,8 @@
          %99 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %100 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %101 = OpTypeFunction %void %main_out
-        %113 = OpTypeFunction %float %_ptr_Function_float
+        %101 = OpTypeFunction %main_out
+        %112 = OpTypeFunction %float %_ptr_Function_float
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
        %x_29 = OpVariable %_ptr_Function_bool Function %16
@@ -210,73 +209,72 @@
          %96 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %101
-%tint_symbol = OpFunctionParameter %main_out
-        %105 = OpLabel
-        %106 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %106
-               OpReturn
+ %main_inner = OpFunction %main_out None %101
+        %104 = OpLabel
+        %105 = OpFunctionCall %void %main_1
+        %106 = OpLoad %v4float %x_GLF_color
+        %107 = OpCompositeConstruct %main_out %106
+               OpReturnValue %107
                OpFunctionEnd
        %main = OpFunction %void None %8
-        %108 = OpLabel
-        %109 = OpFunctionCall %void %main_1
-        %111 = OpLoad %v4float %x_GLF_color
-        %112 = OpCompositeConstruct %main_out %111
-        %110 = OpFunctionCall %void %tint_symbol_2 %112
+        %109 = OpLabel
+        %110 = OpFunctionCall %main_out %main_inner
+        %111 = OpCompositeExtract %v4float %110 0
+               OpStore %x_GLF_color_1_1 %111
                OpReturn
                OpFunctionEnd
-   %func_f1_ = OpFunction %float None %113
+   %func_f1_ = OpFunction %float None %112
           %x = OpFunctionParameter %_ptr_Function_float
-        %116 = OpLabel
+        %115 = OpLabel
        %x_93 = OpVariable %_ptr_Function_bool Function %16
        %x_94 = OpVariable %_ptr_Function_float Function %19
           %a = OpVariable %_ptr_Function_float Function %19
                OpStore %x_93 %false
-               OpBranch %120
-        %120 = OpLabel
-               OpLoopMerge %121 %122 None
-               OpBranch %123
-        %123 = OpLabel
-        %125 = OpLoad %float %x
-               OpStore %a %125
-               OpBranch %126
-        %126 = OpLabel
-               OpLoopMerge %127 %128 None
-               OpBranch %129
-        %129 = OpLabel
-        %130 = OpLoad %float %a
-        %132 = OpLoad %float %x
-        %133 = OpFOrdEqual %bool %130 %132
-               OpSelectionMerge %134 None
-               OpBranchConditional %133 %135 %134
-        %135 = OpLabel
-        %136 = OpLoad %float %a
-               OpStore %x_93 %true
-               OpStore %x_94 %136
-               OpBranch %127
-        %134 = OpLabel
-        %137 = OpLoad %float %a
-        %138 = OpFAdd %float %137 %float_1
-               OpStore %a %138
+               OpBranch %119
+        %119 = OpLabel
+               OpLoopMerge %120 %121 None
+               OpBranch %122
+        %122 = OpLabel
+        %124 = OpLoad %float %x
+               OpStore %a %124
+               OpBranch %125
+        %125 = OpLabel
+               OpLoopMerge %126 %127 None
                OpBranch %128
         %128 = OpLabel
-        %139 = OpLoad %float %a
-        %141 = OpLoad %float %x
-        %142 = OpFOrdLessThan %bool %139 %141
-               OpBranchConditional %142 %126 %127
+        %129 = OpLoad %float %a
+        %131 = OpLoad %float %x
+        %132 = OpFOrdEqual %bool %129 %131
+               OpSelectionMerge %133 None
+               OpBranchConditional %132 %134 %133
+        %134 = OpLabel
+        %135 = OpLoad %float %a
+               OpStore %x_93 %true
+               OpStore %x_94 %135
+               OpBranch %126
+        %133 = OpLabel
+        %136 = OpLoad %float %a
+        %137 = OpFAdd %float %136 %float_1
+               OpStore %a %137
+               OpBranch %127
         %127 = OpLabel
-        %143 = OpLoad %bool %x_93
-               OpSelectionMerge %144 None
-               OpBranchConditional %143 %145 %144
-        %145 = OpLabel
-               OpBranch %121
+        %138 = OpLoad %float %a
+        %140 = OpLoad %float %x
+        %141 = OpFOrdLessThan %bool %138 %140
+               OpBranchConditional %141 %125 %126
+        %126 = OpLabel
+        %142 = OpLoad %bool %x_93
+               OpSelectionMerge %143 None
+               OpBranchConditional %142 %144 %143
         %144 = OpLabel
+               OpBranch %120
+        %143 = OpLabel
                OpStore %x_93 %true
                OpStore %x_94 %float_0
-               OpBranch %121
-        %122 = OpLabel
                OpBranch %120
         %121 = OpLabel
-        %146 = OpLoad %float %x_94
-               OpReturnValue %146
+               OpBranch %119
+        %120 = OpLabel
+        %145 = OpLoad %float %x_94
+               OpReturnValue %145
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dead-code-unreachable-merge/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-dead-code-unreachable-merge/0-opt.spvasm.expected.spvasm
index eabbd52..3e8979c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-dead-code-unreachable-merge/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-dead-code-unreachable-merge/0-opt.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %array0 "array0"
                OpName %array1 "array1"
@@ -14,47 +16,45 @@
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_11 "x_11"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %q "q"
                OpName %i "i"
                OpName %c "c"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_float_uint_3 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
 %_ptr_Private__arr_float_uint_3 = OpTypePointer Private %_arr_float_uint_3
-         %11 = OpConstantNull %_arr_float_uint_3
-     %array0 = OpVariable %_ptr_Private__arr_float_uint_3 Private %11
-     %array1 = OpVariable %_ptr_Private__arr_float_uint_3 Private %11
+         %15 = OpConstantNull %_arr_float_uint_3
+     %array0 = OpVariable %_ptr_Private__arr_float_uint_3 Private %15
+     %array1 = OpVariable %_ptr_Private__arr_float_uint_3 Private %15
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_11 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -72,7 +72,7 @@
      %int_61 = OpConstant %int 61
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %94 = OpTypeFunction %void %main_out
+         %94 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %22
          %25 = OpLabel
           %q = OpVariable %_ptr_Function_int Function %29
@@ -166,20 +166,20 @@
                OpStore %x_GLF_color %93
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %94
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %94
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %98 = OpLabel
-         %99 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %99
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %99 = OpFunctionCall %void %main_1
+        %100 = OpLoad %v4float %x_GLF_color
+        %101 = OpCompositeConstruct %main_out %100
+               OpReturnValue %101
                OpFunctionEnd
        %main = OpFunction %void None %22
-        %101 = OpLabel
-        %102 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %102
-        %103 = OpFunctionCall %void %main_1
-        %105 = OpLoad %v4float %x_GLF_color
-        %106 = OpCompositeConstruct %main_out %105
-        %104 = OpFunctionCall %void %tint_symbol_3 %106
+        %103 = OpLabel
+        %105 = OpLoad %v4float %gl_FragCoord_param_1
+        %104 = OpFunctionCall %main_out %main_inner %105
+        %106 = OpCompositeExtract %v4float %104 0
+               OpStore %x_GLF_color_1_1 %106
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-dead-code-unreachable-merge/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-dead-code-unreachable-merge/0-opt.wgsl.expected.spvasm
index eabbd52..3e8979c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-dead-code-unreachable-merge/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-dead-code-unreachable-merge/0-opt.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %array0 "array0"
                OpName %array1 "array1"
@@ -14,47 +16,45 @@
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_11 "x_11"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %q "q"
                OpName %i "i"
                OpName %c "c"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_float_uint_3 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
 %_ptr_Private__arr_float_uint_3 = OpTypePointer Private %_arr_float_uint_3
-         %11 = OpConstantNull %_arr_float_uint_3
-     %array0 = OpVariable %_ptr_Private__arr_float_uint_3 Private %11
-     %array1 = OpVariable %_ptr_Private__arr_float_uint_3 Private %11
+         %15 = OpConstantNull %_arr_float_uint_3
+     %array0 = OpVariable %_ptr_Private__arr_float_uint_3 Private %15
+     %array1 = OpVariable %_ptr_Private__arr_float_uint_3 Private %15
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_11 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -72,7 +72,7 @@
      %int_61 = OpConstant %int 61
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %94 = OpTypeFunction %void %main_out
+         %94 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %22
          %25 = OpLabel
           %q = OpVariable %_ptr_Function_int Function %29
@@ -166,20 +166,20 @@
                OpStore %x_GLF_color %93
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %94
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %94
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %98 = OpLabel
-         %99 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %99
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %99 = OpFunctionCall %void %main_1
+        %100 = OpLoad %v4float %x_GLF_color
+        %101 = OpCompositeConstruct %main_out %100
+               OpReturnValue %101
                OpFunctionEnd
        %main = OpFunction %void None %22
-        %101 = OpLabel
-        %102 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %102
-        %103 = OpFunctionCall %void %main_1
-        %105 = OpLoad %v4float %x_GLF_color
-        %106 = OpCompositeConstruct %main_out %105
-        %104 = OpFunctionCall %void %tint_symbol_3 %106
+        %103 = OpLabel
+        %105 = OpLoad %v4float %gl_FragCoord_param_1
+        %104 = OpFunctionCall %main_out %main_inner %105
+        %106 = OpCompositeExtract %v4float %104 0
+               OpStore %x_GLF_color_1_1 %106
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.spvasm.expected.spvasm
index c816929..ff79210 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 121
+; Bound: 120
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_global_loop_count "x_GLF_global_loop_count"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
@@ -18,15 +19,14 @@
                OpMemberName %buf2 0 "injectionSwitch"
                OpName %x_12 "x_12"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %r "r"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -44,13 +44,16 @@
                OpDecorate %x_12 NonWritable
                OpDecorate %x_12 DescriptorSet 0
                OpDecorate %x_12 Binding 2
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
 %_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %4
-      %float = OpTypeFloat 32
+          %9 = OpConstantNull %int
+%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %9
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -66,12 +69,8 @@
        %buf2 = OpTypeStruct %v2float
 %_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2
        %x_12 = OpVariable %_ptr_Uniform_buf2 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %24 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %24
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %24
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %27 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -87,11 +86,11 @@
 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
     %int_100 = OpConstant %int 100
    %main_out = OpTypeStruct %v4float
-        %109 = OpTypeFunction %void %main_out
+        %109 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %27
          %30 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %33
-          %r = OpVariable %_ptr_Function_int Function %4
+          %r = OpVariable %_ptr_Function_int Function %9
                OpStore %x_GLF_global_loop_count %int_0
          %39 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 %int_0
          %40 = OpLoad %float %39
@@ -190,18 +189,17 @@
          %89 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %109
-%tint_symbol = OpFunctionParameter %main_out
-        %113 = OpLabel
-        %114 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %114
-               OpReturn
+ %main_inner = OpFunction %main_out None %109
+        %112 = OpLabel
+        %113 = OpFunctionCall %void %main_1
+        %114 = OpLoad %v4float %x_GLF_color
+        %115 = OpCompositeConstruct %main_out %114
+               OpReturnValue %115
                OpFunctionEnd
        %main = OpFunction %void None %27
-        %116 = OpLabel
-        %117 = OpFunctionCall %void %main_1
-        %119 = OpLoad %v4float %x_GLF_color
-        %120 = OpCompositeConstruct %main_out %119
-        %118 = OpFunctionCall %void %tint_symbol_2 %120
+        %117 = OpLabel
+        %118 = OpFunctionCall %main_out %main_inner
+        %119 = OpCompositeExtract %v4float %118 0
+               OpStore %x_GLF_color_1_1 %119
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.wgsl.expected.spvasm
index c816929..ff79210 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 121
+; Bound: 120
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_global_loop_count "x_GLF_global_loop_count"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
@@ -18,15 +19,14 @@
                OpMemberName %buf2 0 "injectionSwitch"
                OpName %x_12 "x_12"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %r "r"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -44,13 +44,16 @@
                OpDecorate %x_12 NonWritable
                OpDecorate %x_12 DescriptorSet 0
                OpDecorate %x_12 Binding 2
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
 %_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %4
-      %float = OpTypeFloat 32
+          %9 = OpConstantNull %int
+%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %9
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -66,12 +69,8 @@
        %buf2 = OpTypeStruct %v2float
 %_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2
        %x_12 = OpVariable %_ptr_Uniform_buf2 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %24 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %24
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %24
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %27 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -87,11 +86,11 @@
 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
     %int_100 = OpConstant %int 100
    %main_out = OpTypeStruct %v4float
-        %109 = OpTypeFunction %void %main_out
+        %109 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %27
          %30 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %33
-          %r = OpVariable %_ptr_Function_int Function %4
+          %r = OpVariable %_ptr_Function_int Function %9
                OpStore %x_GLF_global_loop_count %int_0
          %39 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 %int_0
          %40 = OpLoad %float %39
@@ -190,18 +189,17 @@
          %89 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %109
-%tint_symbol = OpFunctionParameter %main_out
-        %113 = OpLabel
-        %114 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %114
-               OpReturn
+ %main_inner = OpFunction %main_out None %109
+        %112 = OpLabel
+        %113 = OpFunctionCall %void %main_1
+        %114 = OpLoad %v4float %x_GLF_color
+        %115 = OpCompositeConstruct %main_out %114
+               OpReturnValue %115
                OpFunctionEnd
        %main = OpFunction %void None %27
-        %116 = OpLabel
-        %117 = OpFunctionCall %void %main_1
-        %119 = OpLoad %v4float %x_GLF_color
-        %120 = OpCompositeConstruct %main_out %119
-        %118 = OpFunctionCall %void %tint_symbol_2 %120
+        %117 = OpLabel
+        %118 = OpFunctionCall %main_out %main_inner
+        %119 = OpCompositeExtract %v4float %118 0
+               OpStore %x_GLF_color_1_1 %119
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.spvasm.expected.spvasm
index b1d5a29..ef5d31b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 93
+; Bound: 92
 ; Schema: 0
                OpCapability Shader
          %55 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,16 +16,15 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %i "i"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -37,9 +37,12 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -52,12 +55,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -75,7 +74,7 @@
       %int_2 = OpConstant %int 2
          %80 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %81 = OpTypeFunction %void %main_out
+         %81 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %26
@@ -142,18 +141,17 @@
          %68 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %81
-%tint_symbol = OpFunctionParameter %main_out
-         %85 = OpLabel
-         %86 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %86
-               OpReturn
+ %main_inner = OpFunction %main_out None %81
+         %84 = OpLabel
+         %85 = OpFunctionCall %void %main_1
+         %86 = OpLoad %v4float %x_GLF_color
+         %87 = OpCompositeConstruct %main_out %86
+               OpReturnValue %87
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %88 = OpLabel
-         %89 = OpFunctionCall %void %main_1
-         %91 = OpLoad %v4float %x_GLF_color
-         %92 = OpCompositeConstruct %main_out %91
-         %90 = OpFunctionCall %void %tint_symbol_2 %92
+         %89 = OpLabel
+         %90 = OpFunctionCall %main_out %main_inner
+         %91 = OpCompositeExtract %v4float %90 0
+               OpStore %x_GLF_color_1_1 %91
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.wgsl.expected.spvasm
index b1d5a29..ef5d31b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 93
+; Bound: 92
 ; Schema: 0
                OpCapability Shader
          %55 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,16 +16,15 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %i "i"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -37,9 +37,12 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -52,12 +55,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -75,7 +74,7 @@
       %int_2 = OpConstant %int 2
          %80 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %81 = OpTypeFunction %void %main_out
+         %81 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %26
@@ -142,18 +141,17 @@
          %68 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %81
-%tint_symbol = OpFunctionParameter %main_out
-         %85 = OpLabel
-         %86 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %86
-               OpReturn
+ %main_inner = OpFunction %main_out None %81
+         %84 = OpLabel
+         %85 = OpFunctionCall %void %main_1
+         %86 = OpLoad %v4float %x_GLF_color
+         %87 = OpCompositeConstruct %main_out %86
+               OpReturnValue %87
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %88 = OpLabel
-         %89 = OpFunctionCall %void %main_1
-         %91 = OpLoad %v4float %x_GLF_color
-         %92 = OpCompositeConstruct %main_out %91
-         %90 = OpFunctionCall %void %tint_symbol_2 %92
+         %89 = OpLabel
+         %90 = OpFunctionCall %main_out %main_inner
+         %91 = OpCompositeExtract %v4float %90 0
+               OpStore %x_GLF_color_1_1 %91
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.spvasm
index 50d4c1b..4136d2d 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.spvasm
@@ -1,30 +1,29 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 64
+; Bound: 63
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m "m"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -51,7 +50,7 @@
          %50 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %51 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %52 = OpTypeFunction %void %main_out
+         %52 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %m = OpVariable %_ptr_Function_mat2v2float Function %16
@@ -80,18 +79,17 @@
          %46 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %52
-%tint_symbol = OpFunctionParameter %main_out
-         %56 = OpLabel
-         %57 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %57
-               OpReturn
+ %main_inner = OpFunction %main_out None %52
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %main_1
+         %57 = OpLoad %v4float %x_GLF_color
+         %58 = OpCompositeConstruct %main_out %57
+               OpReturnValue %58
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %59 = OpLabel
-         %60 = OpFunctionCall %void %main_1
-         %62 = OpLoad %v4float %x_GLF_color
-         %63 = OpCompositeConstruct %main_out %62
-         %61 = OpFunctionCall %void %tint_symbol_2 %63
+         %60 = OpLabel
+         %61 = OpFunctionCall %main_out %main_inner
+         %62 = OpCompositeExtract %v4float %61 0
+               OpStore %x_GLF_color_1_1 %62
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.wgsl.expected.spvasm
index e11c805..cb5859b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.wgsl.expected.spvasm
@@ -1,30 +1,29 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 66
+; Bound: 65
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m "m"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -51,7 +50,7 @@
          %52 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %53 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %54 = OpTypeFunction %void %main_out
+         %54 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %m = OpVariable %_ptr_Function_mat2v2float Function %16
@@ -85,18 +84,17 @@
          %48 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %54
-%tint_symbol = OpFunctionParameter %main_out
-         %58 = OpLabel
-         %59 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %59
-               OpReturn
+ %main_inner = OpFunction %main_out None %54
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %main_1
+         %59 = OpLoad %v4float %x_GLF_color
+         %60 = OpCompositeConstruct %main_out %59
+               OpReturnValue %60
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %61 = OpLabel
-         %62 = OpFunctionCall %void %main_1
-         %64 = OpLoad %v4float %x_GLF_color
-         %65 = OpCompositeConstruct %main_out %64
-         %63 = OpFunctionCall %void %tint_symbol_2 %65
+         %62 = OpLabel
+         %63 = OpFunctionCall %main_out %main_inner
+         %64 = OpCompositeExtract %v4float %63 0
+               OpStore %x_GLF_color_1_1 %64
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.spvasm.expected.spvasm
index 781fc1e..c594e4b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.spvasm.expected.spvasm
@@ -1,33 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 88
+; Bound: 87
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %i "i"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -35,13 +39,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
          %15 = OpTypeFunction %int
 %_ptr_Function_int = OpTypePointer Function %int
          %20 = OpConstantNull %int
@@ -55,7 +54,7 @@
        %void = OpTypeVoid
          %48 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %76 = OpTypeFunction %void %main_out
+         %76 = OpTypeFunction %main_out
       %func_ = OpFunction %int None %15
          %17 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %20
@@ -128,18 +127,17 @@
          %56 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %76
-%tint_symbol = OpFunctionParameter %main_out
-         %80 = OpLabel
-         %81 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %81
-               OpReturn
+ %main_inner = OpFunction %main_out None %76
+         %79 = OpLabel
+         %80 = OpFunctionCall %void %main_1
+         %81 = OpLoad %v4float %x_GLF_color
+         %82 = OpCompositeConstruct %main_out %81
+               OpReturnValue %82
                OpFunctionEnd
        %main = OpFunction %void None %48
-         %83 = OpLabel
-         %84 = OpFunctionCall %void %main_1
-         %86 = OpLoad %v4float %x_GLF_color
-         %87 = OpCompositeConstruct %main_out %86
-         %85 = OpFunctionCall %void %tint_symbol_2 %87
+         %84 = OpLabel
+         %85 = OpFunctionCall %main_out %main_inner
+         %86 = OpCompositeExtract %v4float %85 0
+               OpStore %x_GLF_color_1_1 %86
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.wgsl.expected.spvasm
index 781fc1e..c594e4b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.wgsl.expected.spvasm
@@ -1,33 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 88
+; Bound: 87
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %i "i"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -35,13 +39,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
          %15 = OpTypeFunction %int
 %_ptr_Function_int = OpTypePointer Function %int
          %20 = OpConstantNull %int
@@ -55,7 +54,7 @@
        %void = OpTypeVoid
          %48 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %76 = OpTypeFunction %void %main_out
+         %76 = OpTypeFunction %main_out
       %func_ = OpFunction %int None %15
          %17 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %20
@@ -128,18 +127,17 @@
          %56 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %76
-%tint_symbol = OpFunctionParameter %main_out
-         %80 = OpLabel
-         %81 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %81
-               OpReturn
+ %main_inner = OpFunction %main_out None %76
+         %79 = OpLabel
+         %80 = OpFunctionCall %void %main_1
+         %81 = OpLoad %v4float %x_GLF_color
+         %82 = OpCompositeConstruct %main_out %81
+               OpReturnValue %82
                OpFunctionEnd
        %main = OpFunction %void None %48
-         %83 = OpLabel
-         %84 = OpFunctionCall %void %main_1
-         %86 = OpLoad %v4float %x_GLF_color
-         %87 = OpCompositeConstruct %main_out %86
-         %85 = OpFunctionCall %void %tint_symbol_2 %87
+         %84 = OpLabel
+         %85 = OpFunctionCall %main_out %main_inner
+         %86 = OpCompositeExtract %v4float %85 0
+               OpStore %x_GLF_color_1_1 %86
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.spvasm.expected.spvasm
index 5790633..4e4e547 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.spvasm.expected.spvasm
@@ -1,35 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 122
+; Bound: 121
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %arr "arr"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -37,13 +41,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %uint_10 = OpConstant %uint 10
@@ -70,7 +69,7 @@
      %int_n1 = OpConstant %int -1
       %v2int = OpTypeVector %int 2
    %main_out = OpTypeStruct %v4float
-        %110 = OpTypeFunction %void %main_out
+        %110 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
         %arr = OpVariable %_ptr_Function__arr_int_uint_10 Function %23
@@ -170,18 +169,17 @@
          %90 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %110
-%tint_symbol = OpFunctionParameter %main_out
-        %114 = OpLabel
-        %115 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %115
-               OpReturn
+ %main_inner = OpFunction %main_out None %110
+        %113 = OpLabel
+        %114 = OpFunctionCall %void %main_1
+        %115 = OpLoad %v4float %x_GLF_color
+        %116 = OpCompositeConstruct %main_out %115
+               OpReturnValue %116
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %117 = OpLabel
-        %118 = OpFunctionCall %void %main_1
-        %120 = OpLoad %v4float %x_GLF_color
-        %121 = OpCompositeConstruct %main_out %120
-        %119 = OpFunctionCall %void %tint_symbol_2 %121
+        %118 = OpLabel
+        %119 = OpFunctionCall %main_out %main_inner
+        %120 = OpCompositeExtract %v4float %119 0
+               OpStore %x_GLF_color_1_1 %120
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.wgsl.expected.spvasm
index 5790633..4e4e547 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.wgsl.expected.spvasm
@@ -1,35 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 122
+; Bound: 121
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %arr "arr"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -37,13 +41,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %uint_10 = OpConstant %uint 10
@@ -70,7 +69,7 @@
      %int_n1 = OpConstant %int -1
       %v2int = OpTypeVector %int 2
    %main_out = OpTypeStruct %v4float
-        %110 = OpTypeFunction %void %main_out
+        %110 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
         %arr = OpVariable %_ptr_Function__arr_int_uint_10 Function %23
@@ -170,18 +169,17 @@
          %90 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %110
-%tint_symbol = OpFunctionParameter %main_out
-        %114 = OpLabel
-        %115 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %115
-               OpReturn
+ %main_inner = OpFunction %main_out None %110
+        %113 = OpLabel
+        %114 = OpFunctionCall %void %main_1
+        %115 = OpLoad %v4float %x_GLF_color
+        %116 = OpCompositeConstruct %main_out %115
+               OpReturnValue %116
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %117 = OpLabel
-        %118 = OpFunctionCall %void %main_1
-        %120 = OpLoad %v4float %x_GLF_color
-        %121 = OpCompositeConstruct %main_out %120
-        %119 = OpFunctionCall %void %tint_symbol_2 %121
+        %118 = OpLabel
+        %119 = OpFunctionCall %main_out %main_inner
+        %120 = OpCompositeExtract %v4float %119 0
+               OpStore %x_GLF_color_1_1 %120
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.spvasm.expected.spvasm
index e668d86..7c8a87e 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.spvasm.expected.spvasm
@@ -1,31 +1,30 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
          %18 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -38,7 +37,7 @@
          %27 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %28 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %29 = OpTypeFunction %void %main_out
+         %29 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %14
@@ -57,18 +56,17 @@
          %22 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %29
-%tint_symbol = OpFunctionParameter %main_out
-         %33 = OpLabel
-         %34 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %34
-               OpReturn
+ %main_inner = OpFunction %main_out None %29
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %main_1
+         %34 = OpLoad %v4float %x_GLF_color
+         %35 = OpCompositeConstruct %main_out %34
+               OpReturnValue %35
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %main_1
-         %39 = OpLoad %v4float %x_GLF_color
-         %40 = OpCompositeConstruct %main_out %39
-         %38 = OpFunctionCall %void %tint_symbol_2 %40
+         %37 = OpLabel
+         %38 = OpFunctionCall %main_out %main_inner
+         %39 = OpCompositeExtract %v4float %38 0
+               OpStore %x_GLF_color_1_1 %39
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.wgsl.expected.spvasm
index e668d86..7c8a87e 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.wgsl.expected.spvasm
@@ -1,31 +1,30 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
          %18 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -38,7 +37,7 @@
          %27 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %28 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %29 = OpTypeFunction %void %main_out
+         %29 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %14
@@ -57,18 +56,17 @@
          %22 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %29
-%tint_symbol = OpFunctionParameter %main_out
-         %33 = OpLabel
-         %34 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %34
-               OpReturn
+ %main_inner = OpFunction %main_out None %29
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %main_1
+         %34 = OpLoad %v4float %x_GLF_color
+         %35 = OpCompositeConstruct %main_out %34
+               OpReturnValue %35
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %main_1
-         %39 = OpLoad %v4float %x_GLF_color
-         %40 = OpCompositeConstruct %main_out %39
-         %38 = OpFunctionCall %void %tint_symbol_2 %40
+         %37 = OpLabel
+         %38 = OpFunctionCall %main_out %main_inner
+         %39 = OpCompositeExtract %v4float %38 0
+               OpStore %x_GLF_color_1_1 %39
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.spvasm.expected.spvasm
index bb87b20..00e2105 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 105
+; Bound: 104
 ; Schema: 0
                OpCapability Shader
          %59 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_7 "x_7"
@@ -15,15 +16,14 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %arr "arr"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -36,10 +36,13 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -52,12 +55,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -76,7 +75,7 @@
        %bool = OpTypeBool
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %93 = OpTypeFunction %void %main_out
+         %93 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %26
@@ -142,18 +141,17 @@
          %72 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %93
-%tint_symbol = OpFunctionParameter %main_out
-         %97 = OpLabel
-         %98 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %98
-               OpReturn
+ %main_inner = OpFunction %main_out None %93
+         %96 = OpLabel
+         %97 = OpFunctionCall %void %main_1
+         %98 = OpLoad %v4float %x_GLF_color
+         %99 = OpCompositeConstruct %main_out %98
+               OpReturnValue %99
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %100 = OpLabel
-        %101 = OpFunctionCall %void %main_1
-        %103 = OpLoad %v4float %x_GLF_color
-        %104 = OpCompositeConstruct %main_out %103
-        %102 = OpFunctionCall %void %tint_symbol_2 %104
+        %101 = OpLabel
+        %102 = OpFunctionCall %main_out %main_inner
+        %103 = OpCompositeExtract %v4float %102 0
+               OpStore %x_GLF_color_1_1 %103
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.wgsl.expected.spvasm
index bb87b20..00e2105 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 105
+; Bound: 104
 ; Schema: 0
                OpCapability Shader
          %59 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_7 "x_7"
@@ -15,15 +16,14 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %arr "arr"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -36,10 +36,13 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -52,12 +55,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -76,7 +75,7 @@
        %bool = OpTypeBool
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %93 = OpTypeFunction %void %main_out
+         %93 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %26
@@ -142,18 +141,17 @@
          %72 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %93
-%tint_symbol = OpFunctionParameter %main_out
-         %97 = OpLabel
-         %98 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %98
-               OpReturn
+ %main_inner = OpFunction %main_out None %93
+         %96 = OpLabel
+         %97 = OpFunctionCall %void %main_1
+         %98 = OpLoad %v4float %x_GLF_color
+         %99 = OpCompositeConstruct %main_out %98
+               OpReturnValue %99
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %100 = OpLabel
-        %101 = OpFunctionCall %void %main_1
-        %103 = OpLoad %v4float %x_GLF_color
-        %104 = OpCompositeConstruct %main_out %103
-        %102 = OpFunctionCall %void %tint_symbol_2 %104
+        %101 = OpLabel
+        %102 = OpFunctionCall %main_out %main_inner
+        %103 = OpCompositeExtract %v4float %102 0
+               OpStore %x_GLF_color_1_1 %103
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.spvasm.expected.spvasm
index 6d8b1a2..d941019 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.spvasm.expected.spvasm
@@ -1,44 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 70
+; Bound: 69
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %ret "ret"
                OpName %i "i"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
          %12 = OpTypeFunction %int
 %_ptr_Function_int = OpTypePointer Function %int
          %17 = OpConstantNull %int
@@ -57,7 +56,7 @@
          %56 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %57 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %58 = OpTypeFunction %void %main_out
+         %58 = OpTypeFunction %main_out
       %func_ = OpFunction %int None %12
          %14 = OpLabel
         %ret = OpVariable %_ptr_Function_int Function %17
@@ -110,18 +109,17 @@
          %51 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %58
-%tint_symbol = OpFunctionParameter %main_out
-         %62 = OpLabel
-         %63 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %63
-               OpReturn
+ %main_inner = OpFunction %main_out None %58
+         %61 = OpLabel
+         %62 = OpFunctionCall %void %main_1
+         %63 = OpLoad %v4float %x_GLF_color
+         %64 = OpCompositeConstruct %main_out %63
+               OpReturnValue %64
                OpFunctionEnd
        %main = OpFunction %void None %44
-         %65 = OpLabel
-         %66 = OpFunctionCall %void %main_1
-         %68 = OpLoad %v4float %x_GLF_color
-         %69 = OpCompositeConstruct %main_out %68
-         %67 = OpFunctionCall %void %tint_symbol_2 %69
+         %66 = OpLabel
+         %67 = OpFunctionCall %main_out %main_inner
+         %68 = OpCompositeExtract %v4float %67 0
+               OpStore %x_GLF_color_1_1 %68
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.wgsl.expected.spvasm
index 6d8b1a2..d941019 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.wgsl.expected.spvasm
@@ -1,44 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 70
+; Bound: 69
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %ret "ret"
                OpName %i "i"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
          %12 = OpTypeFunction %int
 %_ptr_Function_int = OpTypePointer Function %int
          %17 = OpConstantNull %int
@@ -57,7 +56,7 @@
          %56 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %57 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %58 = OpTypeFunction %void %main_out
+         %58 = OpTypeFunction %main_out
       %func_ = OpFunction %int None %12
          %14 = OpLabel
         %ret = OpVariable %_ptr_Function_int Function %17
@@ -110,18 +109,17 @@
          %51 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %58
-%tint_symbol = OpFunctionParameter %main_out
-         %62 = OpLabel
-         %63 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %63
-               OpReturn
+ %main_inner = OpFunction %main_out None %58
+         %61 = OpLabel
+         %62 = OpFunctionCall %void %main_1
+         %63 = OpLoad %v4float %x_GLF_color
+         %64 = OpCompositeConstruct %main_out %63
+               OpReturnValue %64
                OpFunctionEnd
        %main = OpFunction %void None %44
-         %65 = OpLabel
-         %66 = OpFunctionCall %void %main_1
-         %68 = OpLoad %v4float %x_GLF_color
-         %69 = OpCompositeConstruct %main_out %68
-         %67 = OpFunctionCall %void %tint_symbol_2 %69
+         %66 = OpLabel
+         %67 = OpFunctionCall %main_out %main_inner
+         %68 = OpCompositeExtract %v4float %67 0
+               OpStore %x_GLF_color_1_1 %68
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.spvasm.expected.spvasm
index b79eb2a..38d493b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.spvasm.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -48,7 +47,7 @@
          %30 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %31 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %32 = OpTypeFunction %void %main_out
+         %32 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
          %19 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0
@@ -66,18 +65,17 @@
          %25 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %32
-%tint_symbol = OpFunctionParameter %main_out
-         %36 = OpLabel
-         %37 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %37
-               OpReturn
+ %main_inner = OpFunction %main_out None %32
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %main_1
+         %37 = OpLoad %v4float %x_GLF_color
+         %38 = OpCompositeConstruct %main_out %37
+               OpReturnValue %38
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %main_1
-         %42 = OpLoad %v4float %x_GLF_color
-         %43 = OpCompositeConstruct %main_out %42
-         %41 = OpFunctionCall %void %tint_symbol_2 %43
+         %40 = OpLabel
+         %41 = OpFunctionCall %main_out %main_inner
+         %42 = OpCompositeExtract %v4float %41 0
+               OpStore %x_GLF_color_1_1 %42
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.wgsl.expected.spvasm
index b79eb2a..38d493b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -48,7 +47,7 @@
          %30 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %31 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %32 = OpTypeFunction %void %main_out
+         %32 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
          %19 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0
@@ -66,18 +65,17 @@
          %25 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %32
-%tint_symbol = OpFunctionParameter %main_out
-         %36 = OpLabel
-         %37 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %37
-               OpReturn
+ %main_inner = OpFunction %main_out None %32
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %main_1
+         %37 = OpLoad %v4float %x_GLF_color
+         %38 = OpCompositeConstruct %main_out %37
+               OpReturnValue %38
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %main_1
-         %42 = OpLoad %v4float %x_GLF_color
-         %43 = OpCompositeConstruct %main_out %42
-         %41 = OpFunctionCall %void %tint_symbol_2 %43
+         %40 = OpLabel
+         %41 = OpFunctionCall %main_out %main_inner
+         %42 = OpCompositeExtract %v4float %41 0
+               OpStore %x_GLF_color_1_1 %42
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.spvasm.expected.spvasm
index 5edb687..d746610 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.spvasm.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -48,7 +47,7 @@
          %30 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %31 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %32 = OpTypeFunction %void %main_out
+         %32 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
          %19 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0
@@ -66,18 +65,17 @@
          %25 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %32
-%tint_symbol = OpFunctionParameter %main_out
-         %36 = OpLabel
-         %37 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %37
-               OpReturn
+ %main_inner = OpFunction %main_out None %32
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %main_1
+         %37 = OpLoad %v4float %x_GLF_color
+         %38 = OpCompositeConstruct %main_out %37
+               OpReturnValue %38
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %main_1
-         %42 = OpLoad %v4float %x_GLF_color
-         %43 = OpCompositeConstruct %main_out %42
-         %41 = OpFunctionCall %void %tint_symbol_2 %43
+         %40 = OpLabel
+         %41 = OpFunctionCall %main_out %main_inner
+         %42 = OpCompositeExtract %v4float %41 0
+               OpStore %x_GLF_color_1_1 %42
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.wgsl.expected.spvasm
index 5edb687..d746610 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -48,7 +47,7 @@
          %30 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %31 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %32 = OpTypeFunction %void %main_out
+         %32 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
          %19 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0
@@ -66,18 +65,17 @@
          %25 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %32
-%tint_symbol = OpFunctionParameter %main_out
-         %36 = OpLabel
-         %37 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %37
-               OpReturn
+ %main_inner = OpFunction %main_out None %32
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %main_1
+         %37 = OpLoad %v4float %x_GLF_color
+         %38 = OpCompositeConstruct %main_out %37
+               OpReturnValue %38
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %main_1
-         %42 = OpLoad %v4float %x_GLF_color
-         %43 = OpCompositeConstruct %main_out %42
-         %41 = OpFunctionCall %void %tint_symbol_2 %43
+         %40 = OpLabel
+         %41 = OpFunctionCall %main_out %main_inner
+         %42 = OpCompositeExtract %v4float %41 0
+               OpStore %x_GLF_color_1_1 %42
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.spvasm.expected.spvasm
index 0671048..b4ab2df 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.spvasm.expected.spvasm
@@ -1,31 +1,30 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -40,7 +39,7 @@
     %float_1 = OpConstant %float 1
          %31 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %32 = OpTypeFunction %void %main_out
+         %32 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %15
@@ -62,18 +61,17 @@
          %25 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %32
-%tint_symbol = OpFunctionParameter %main_out
-         %36 = OpLabel
-         %37 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %37
-               OpReturn
+ %main_inner = OpFunction %main_out None %32
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %main_1
+         %37 = OpLoad %v4float %x_GLF_color
+         %38 = OpCompositeConstruct %main_out %37
+               OpReturnValue %38
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %main_1
-         %42 = OpLoad %v4float %x_GLF_color
-         %43 = OpCompositeConstruct %main_out %42
-         %41 = OpFunctionCall %void %tint_symbol_2 %43
+         %40 = OpLabel
+         %41 = OpFunctionCall %main_out %main_inner
+         %42 = OpCompositeExtract %v4float %41 0
+               OpStore %x_GLF_color_1_1 %42
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.wgsl.expected.spvasm
index 0671048..b4ab2df 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.wgsl.expected.spvasm
@@ -1,31 +1,30 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -40,7 +39,7 @@
     %float_1 = OpConstant %float 1
          %31 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %32 = OpTypeFunction %void %main_out
+         %32 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %15
@@ -62,18 +61,17 @@
          %25 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %32
-%tint_symbol = OpFunctionParameter %main_out
-         %36 = OpLabel
-         %37 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %37
-               OpReturn
+ %main_inner = OpFunction %main_out None %32
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %main_1
+         %37 = OpLoad %v4float %x_GLF_color
+         %38 = OpCompositeConstruct %main_out %37
+               OpReturnValue %38
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %main_1
-         %42 = OpLoad %v4float %x_GLF_color
-         %43 = OpCompositeConstruct %main_out %42
-         %41 = OpFunctionCall %void %tint_symbol_2 %43
+         %40 = OpLabel
+         %41 = OpFunctionCall %main_out %main_inner
+         %42 = OpCompositeExtract %v4float %41 0
+               OpStore %x_GLF_color_1_1 %42
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.spvasm
index 772fda6..217f300 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.spvasm
@@ -1,30 +1,29 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -37,7 +36,7 @@
     %float_1 = OpConstant %float 1
          %26 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %27 = OpTypeFunction %void %main_out
+         %27 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %a = OpVariable %_ptr_Function_bool Function %15
@@ -55,18 +54,17 @@
          %20 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %27
-%tint_symbol = OpFunctionParameter %main_out
-         %31 = OpLabel
-         %32 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %32
-               OpReturn
+ %main_inner = OpFunction %main_out None %27
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %main_1
+         %32 = OpLoad %v4float %x_GLF_color
+         %33 = OpCompositeConstruct %main_out %32
+               OpReturnValue %33
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %main_1
-         %37 = OpLoad %v4float %x_GLF_color
-         %38 = OpCompositeConstruct %main_out %37
-         %36 = OpFunctionCall %void %tint_symbol_2 %38
+         %35 = OpLabel
+         %36 = OpFunctionCall %main_out %main_inner
+         %37 = OpCompositeExtract %v4float %36 0
+               OpStore %x_GLF_color_1_1 %37
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.wgsl.expected.spvasm
index ae7b276..cf4e979 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.wgsl.expected.spvasm
@@ -1,30 +1,29 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -37,7 +36,7 @@
     %float_1 = OpConstant %float 1
          %28 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %29 = OpTypeFunction %void %main_out
+         %29 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %a = OpVariable %_ptr_Function_bool Function %15
@@ -60,18 +59,17 @@
          %22 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %29
-%tint_symbol = OpFunctionParameter %main_out
-         %33 = OpLabel
-         %34 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %34
-               OpReturn
+ %main_inner = OpFunction %main_out None %29
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %main_1
+         %34 = OpLoad %v4float %x_GLF_color
+         %35 = OpCompositeConstruct %main_out %34
+               OpReturnValue %35
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %main_1
-         %39 = OpLoad %v4float %x_GLF_color
-         %40 = OpCompositeConstruct %main_out %39
-         %38 = OpFunctionCall %void %tint_symbol_2 %40
+         %37 = OpLabel
+         %38 = OpFunctionCall %main_out %main_inner
+         %39 = OpCompositeExtract %v4float %38 0
+               OpStore %x_GLF_color_1_1 %39
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.spvasm
index 66e7a56..47743fc 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.spvasm
@@ -5,32 +5,32 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -49,7 +49,7 @@
          %44 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %45 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %46 = OpTypeFunction %void %main_out
+         %46 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %18
@@ -83,20 +83,20 @@
          %40 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %46
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %46
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %50 = OpLabel
-         %51 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %51
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %51 = OpFunctionCall %void %main_1
+         %52 = OpLoad %v4float %x_GLF_color
+         %53 = OpCompositeConstruct %main_out %52
+               OpReturnValue %53
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %53 = OpLabel
-         %54 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %54
-         %55 = OpFunctionCall %void %main_1
-         %57 = OpLoad %v4float %x_GLF_color
-         %58 = OpCompositeConstruct %main_out %57
-         %56 = OpFunctionCall %void %tint_symbol_3 %58
+         %55 = OpLabel
+         %57 = OpLoad %v4float %gl_FragCoord_param_1
+         %56 = OpFunctionCall %main_out %main_inner %57
+         %58 = OpCompositeExtract %v4float %56 0
+               OpStore %x_GLF_color_1_1 %58
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.wgsl.expected.spvasm
index 5375739..3b82365 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.wgsl.expected.spvasm
@@ -5,32 +5,32 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -49,7 +49,7 @@
          %46 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %47 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %48 = OpTypeFunction %void %main_out
+         %48 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %18
@@ -88,20 +88,20 @@
          %42 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %48
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %48
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %52 = OpLabel
-         %53 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %53
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %53 = OpFunctionCall %void %main_1
+         %54 = OpLoad %v4float %x_GLF_color
+         %55 = OpCompositeConstruct %main_out %54
+               OpReturnValue %55
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %55 = OpLabel
-         %56 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %56
-         %57 = OpFunctionCall %void %main_1
-         %59 = OpLoad %v4float %x_GLF_color
-         %60 = OpCompositeConstruct %main_out %59
-         %58 = OpFunctionCall %void %tint_symbol_3 %60
+         %57 = OpLabel
+         %59 = OpLoad %v4float %gl_FragCoord_param_1
+         %58 = OpFunctionCall %main_out %main_inner %59
+         %60 = OpCompositeExtract %v4float %58 0
+               OpStore %x_GLF_color_1_1 %60
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.spvasm
index 9bea875..8e06c42 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.spvasm
@@ -5,31 +5,31 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -42,7 +42,7 @@
          %29 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %30 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %31 = OpTypeFunction %void %main_out
+         %31 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
          %18 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
@@ -60,20 +60,20 @@
          %25 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %31
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %31
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %35 = OpLabel
-         %36 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %36
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %36 = OpFunctionCall %void %main_1
+         %37 = OpLoad %v4float %x_GLF_color
+         %38 = OpCompositeConstruct %main_out %37
+               OpReturnValue %38
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %38 = OpLabel
-         %39 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %39
-         %40 = OpFunctionCall %void %main_1
-         %42 = OpLoad %v4float %x_GLF_color
-         %43 = OpCompositeConstruct %main_out %42
-         %41 = OpFunctionCall %void %tint_symbol_3 %43
+         %40 = OpLabel
+         %42 = OpLoad %v4float %gl_FragCoord_param_1
+         %41 = OpFunctionCall %main_out %main_inner %42
+         %43 = OpCompositeExtract %v4float %41 0
+               OpStore %x_GLF_color_1_1 %43
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.wgsl.expected.spvasm
index 53bc076..e747b52 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.wgsl.expected.spvasm
@@ -5,31 +5,31 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -42,7 +42,7 @@
          %31 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %32 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %33 = OpTypeFunction %void %main_out
+         %33 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
          %18 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
@@ -65,20 +65,20 @@
          %27 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %33
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %33
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %37 = OpLabel
-         %38 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %38
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %38 = OpFunctionCall %void %main_1
+         %39 = OpLoad %v4float %x_GLF_color
+         %40 = OpCompositeConstruct %main_out %39
+               OpReturnValue %40
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %40 = OpLabel
-         %41 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %41
-         %42 = OpFunctionCall %void %main_1
-         %44 = OpLoad %v4float %x_GLF_color
-         %45 = OpCompositeConstruct %main_out %44
-         %43 = OpFunctionCall %void %tint_symbol_3 %45
+         %42 = OpLabel
+         %44 = OpLoad %v4float %gl_FragCoord_param_1
+         %43 = OpFunctionCall %main_out %main_inner %44
+         %45 = OpCompositeExtract %v4float %43 0
+               OpStore %x_GLF_color_1_1 %45
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.spvasm.expected.spvasm
index 3ae71bd..ec16d2f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.spvasm.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "minusOne"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %minValue "minValue"
                OpName %negMinValue "negMinValue"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -52,7 +51,7 @@
          %38 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %39 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %40 = OpTypeFunction %void %main_out
+         %40 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
    %minValue = OpVariable %_ptr_Function_int Function %18
@@ -78,18 +77,17 @@
          %33 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %40
-%tint_symbol = OpFunctionParameter %main_out
-         %44 = OpLabel
-         %45 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %45
-               OpReturn
+ %main_inner = OpFunction %main_out None %40
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %main_1
+         %45 = OpLoad %v4float %x_GLF_color
+         %46 = OpCompositeConstruct %main_out %45
+               OpReturnValue %46
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %main_1
-         %50 = OpLoad %v4float %x_GLF_color
-         %51 = OpCompositeConstruct %main_out %50
-         %49 = OpFunctionCall %void %tint_symbol_2 %51
+         %48 = OpLabel
+         %49 = OpFunctionCall %main_out %main_inner
+         %50 = OpCompositeExtract %v4float %49 0
+               OpStore %x_GLF_color_1_1 %50
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.wgsl.expected.spvasm
index 3ae71bd..ec16d2f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "minusOne"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %minValue "minValue"
                OpName %negMinValue "negMinValue"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -52,7 +51,7 @@
          %38 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %39 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %40 = OpTypeFunction %void %main_out
+         %40 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
    %minValue = OpVariable %_ptr_Function_int Function %18
@@ -78,18 +77,17 @@
          %33 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %40
-%tint_symbol = OpFunctionParameter %main_out
-         %44 = OpLabel
-         %45 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %45
-               OpReturn
+ %main_inner = OpFunction %main_out None %40
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %main_1
+         %45 = OpLoad %v4float %x_GLF_color
+         %46 = OpCompositeConstruct %main_out %45
+               OpReturnValue %46
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %main_1
-         %50 = OpLoad %v4float %x_GLF_color
-         %51 = OpCompositeConstruct %main_out %50
-         %49 = OpFunctionCall %void %tint_symbol_2 %51
+         %48 = OpLabel
+         %49 = OpFunctionCall %main_out %main_inner
+         %50 = OpCompositeExtract %v4float %49 0
+               OpStore %x_GLF_color_1_1 %50
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.spvasm.expected.spvasm
index 358ea77..f6420f5 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.spvasm.expected.spvasm
@@ -1,30 +1,29 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -38,7 +37,7 @@
          %27 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %28 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %29 = OpTypeFunction %void %main_out
+         %29 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %15
@@ -57,18 +56,17 @@
          %22 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %29
-%tint_symbol = OpFunctionParameter %main_out
-         %33 = OpLabel
-         %34 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %34
-               OpReturn
+ %main_inner = OpFunction %main_out None %29
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %main_1
+         %34 = OpLoad %v4float %x_GLF_color
+         %35 = OpCompositeConstruct %main_out %34
+               OpReturnValue %35
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %main_1
-         %39 = OpLoad %v4float %x_GLF_color
-         %40 = OpCompositeConstruct %main_out %39
-         %38 = OpFunctionCall %void %tint_symbol_2 %40
+         %37 = OpLabel
+         %38 = OpFunctionCall %main_out %main_inner
+         %39 = OpCompositeExtract %v4float %38 0
+               OpStore %x_GLF_color_1_1 %39
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.wgsl.expected.spvasm
index 358ea77..f6420f5 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.wgsl.expected.spvasm
@@ -1,30 +1,29 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 41
+; Bound: 40
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -38,7 +37,7 @@
          %27 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %28 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %29 = OpTypeFunction %void %main_out
+         %29 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %15
@@ -57,18 +56,17 @@
          %22 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %29
-%tint_symbol = OpFunctionParameter %main_out
-         %33 = OpLabel
-         %34 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %34
-               OpReturn
+ %main_inner = OpFunction %main_out None %29
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %main_1
+         %34 = OpLoad %v4float %x_GLF_color
+         %35 = OpCompositeConstruct %main_out %34
+               OpReturnValue %35
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %main_1
-         %39 = OpLoad %v4float %x_GLF_color
-         %40 = OpCompositeConstruct %main_out %39
-         %38 = OpFunctionCall %void %tint_symbol_2 %40
+         %37 = OpLabel
+         %38 = OpFunctionCall %main_out %main_inner
+         %39 = OpCompositeExtract %v4float %38 0
+               OpStore %x_GLF_color_1_1 %39
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.spvasm
index b31bcda..65dd437 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 121
+; Bound: 120
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
@@ -21,27 +21,26 @@
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
        %buf0 = OpTypeStruct %uint
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -64,7 +63,7 @@
         %107 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %108 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %109 = OpTypeFunction %void %main_out
+        %109 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_uint Function %18
@@ -179,18 +178,17 @@
         %102 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %109
-%tint_symbol = OpFunctionParameter %main_out
-        %113 = OpLabel
-        %114 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %114
-               OpReturn
+ %main_inner = OpFunction %main_out None %109
+        %112 = OpLabel
+        %113 = OpFunctionCall %void %main_1
+        %114 = OpLoad %v4float %x_GLF_color
+        %115 = OpCompositeConstruct %main_out %114
+               OpReturnValue %115
                OpFunctionEnd
        %main = OpFunction %void None %12
-        %116 = OpLabel
-        %117 = OpFunctionCall %void %main_1
-        %119 = OpLoad %v4float %x_GLF_color
-        %120 = OpCompositeConstruct %main_out %119
-        %118 = OpFunctionCall %void %tint_symbol_2 %120
+        %117 = OpLabel
+        %118 = OpFunctionCall %main_out %main_inner
+        %119 = OpCompositeExtract %v4float %118 0
+               OpStore %x_GLF_color_1_1 %119
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.wgsl.expected.spvasm
index 8468b80..a2b34a0 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 131
+; Bound: 130
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
@@ -21,27 +21,26 @@
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
        %buf0 = OpTypeStruct %uint
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -64,7 +63,7 @@
         %117 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %118 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %119 = OpTypeFunction %void %main_out
+        %119 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_uint Function %18
@@ -204,18 +203,17 @@
         %112 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %119
-%tint_symbol = OpFunctionParameter %main_out
-        %123 = OpLabel
-        %124 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %124
-               OpReturn
+ %main_inner = OpFunction %main_out None %119
+        %122 = OpLabel
+        %123 = OpFunctionCall %void %main_1
+        %124 = OpLoad %v4float %x_GLF_color
+        %125 = OpCompositeConstruct %main_out %124
+               OpReturnValue %125
                OpFunctionEnd
        %main = OpFunction %void None %12
-        %126 = OpLabel
-        %127 = OpFunctionCall %void %main_1
-        %129 = OpLoad %v4float %x_GLF_color
-        %130 = OpCompositeConstruct %main_out %129
-        %128 = OpFunctionCall %void %tint_symbol_2 %130
+        %127 = OpLabel
+        %128 = OpFunctionCall %main_out %main_inner
+        %129 = OpCompositeExtract %v4float %128 0
+               OpStore %x_GLF_color_1_1 %129
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.spvasm.expected.spvasm
index 9f2db98..18dfe48 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.spvasm.expected.spvasm
@@ -1,30 +1,29 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -40,7 +39,7 @@
     %float_1 = OpConstant %float 1
          %31 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %32 = OpTypeFunction %void %main_out
+         %32 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %15
@@ -60,18 +59,17 @@
          %25 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %32
-%tint_symbol = OpFunctionParameter %main_out
-         %36 = OpLabel
-         %37 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %37
-               OpReturn
+ %main_inner = OpFunction %main_out None %32
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %main_1
+         %37 = OpLoad %v4float %x_GLF_color
+         %38 = OpCompositeConstruct %main_out %37
+               OpReturnValue %38
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %main_1
-         %42 = OpLoad %v4float %x_GLF_color
-         %43 = OpCompositeConstruct %main_out %42
-         %41 = OpFunctionCall %void %tint_symbol_2 %43
+         %40 = OpLabel
+         %41 = OpFunctionCall %main_out %main_inner
+         %42 = OpCompositeExtract %v4float %41 0
+               OpStore %x_GLF_color_1_1 %42
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.wgsl.expected.spvasm
index 9f2db98..18dfe48 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.wgsl.expected.spvasm
@@ -1,30 +1,29 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 44
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -40,7 +39,7 @@
     %float_1 = OpConstant %float 1
          %31 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %32 = OpTypeFunction %void %main_out
+         %32 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %15
@@ -60,18 +59,17 @@
          %25 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %32
-%tint_symbol = OpFunctionParameter %main_out
-         %36 = OpLabel
-         %37 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %37
-               OpReturn
+ %main_inner = OpFunction %main_out None %32
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %main_1
+         %37 = OpLoad %v4float %x_GLF_color
+         %38 = OpCompositeConstruct %main_out %37
+               OpReturnValue %38
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %main_1
-         %42 = OpLoad %v4float %x_GLF_color
-         %43 = OpCompositeConstruct %main_out %42
-         %41 = OpFunctionCall %void %tint_symbol_2 %43
+         %40 = OpLabel
+         %41 = OpFunctionCall %main_out %main_inner
+         %42 = OpCompositeExtract %v4float %41 0
+               OpStore %x_GLF_color_1_1 %42
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.spvasm.expected.spvasm
index 541bbd0..b08e603 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.spvasm.expected.spvasm
@@ -1,30 +1,29 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -37,7 +36,7 @@
          %25 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %26 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %27 = OpTypeFunction %void %main_out
+         %27 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %a = OpVariable %_ptr_Function_uint Function %15
@@ -55,18 +54,17 @@
          %18 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %27
-%tint_symbol = OpFunctionParameter %main_out
-         %31 = OpLabel
-         %32 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %32
-               OpReturn
+ %main_inner = OpFunction %main_out None %27
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %main_1
+         %32 = OpLoad %v4float %x_GLF_color
+         %33 = OpCompositeConstruct %main_out %32
+               OpReturnValue %33
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %main_1
-         %37 = OpLoad %v4float %x_GLF_color
-         %38 = OpCompositeConstruct %main_out %37
-         %36 = OpFunctionCall %void %tint_symbol_2 %38
+         %35 = OpLabel
+         %36 = OpFunctionCall %main_out %main_inner
+         %37 = OpCompositeExtract %v4float %36 0
+               OpStore %x_GLF_color_1_1 %37
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.wgsl.expected.spvasm
index 541bbd0..b08e603 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.wgsl.expected.spvasm
@@ -1,30 +1,29 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -37,7 +36,7 @@
          %25 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %26 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %27 = OpTypeFunction %void %main_out
+         %27 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %a = OpVariable %_ptr_Function_uint Function %15
@@ -55,18 +54,17 @@
          %18 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %27
-%tint_symbol = OpFunctionParameter %main_out
-         %31 = OpLabel
-         %32 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %32
-               OpReturn
+ %main_inner = OpFunction %main_out None %27
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %main_1
+         %32 = OpLoad %v4float %x_GLF_color
+         %33 = OpCompositeConstruct %main_out %32
+               OpReturnValue %33
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %main_1
-         %37 = OpLoad %v4float %x_GLF_color
-         %38 = OpCompositeConstruct %main_out %37
-         %36 = OpFunctionCall %void %tint_symbol_2 %38
+         %35 = OpLabel
+         %36 = OpFunctionCall %main_out %main_inner
+         %37 = OpCompositeExtract %v4float %36 0
+               OpStore %x_GLF_color_1_1 %37
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.spvasm.expected.spvasm
index 10d16c9..1cc4981 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.spvasm.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 61
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
          %35 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -53,7 +52,7 @@
          %47 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %48 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %49 = OpTypeFunction %void %main_out
+         %49 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %17
@@ -91,18 +90,17 @@
          %43 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %49
-%tint_symbol = OpFunctionParameter %main_out
-         %53 = OpLabel
-         %54 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %54
-               OpReturn
+ %main_inner = OpFunction %main_out None %49
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %main_1
+         %54 = OpLoad %v4float %x_GLF_color
+         %55 = OpCompositeConstruct %main_out %54
+               OpReturnValue %55
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %main_1
-         %59 = OpLoad %v4float %x_GLF_color
-         %60 = OpCompositeConstruct %main_out %59
-         %58 = OpFunctionCall %void %tint_symbol_2 %60
+         %57 = OpLabel
+         %58 = OpFunctionCall %main_out %main_inner
+         %59 = OpCompositeExtract %v4float %58 0
+               OpStore %x_GLF_color_1_1 %59
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.wgsl.expected.spvasm
index 10d16c9..1cc4981 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 61
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
          %35 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -53,7 +52,7 @@
          %47 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %48 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %49 = OpTypeFunction %void %main_out
+         %49 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %17
@@ -91,18 +90,17 @@
          %43 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %49
-%tint_symbol = OpFunctionParameter %main_out
-         %53 = OpLabel
-         %54 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %54
-               OpReturn
+ %main_inner = OpFunction %main_out None %49
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %main_1
+         %54 = OpLoad %v4float %x_GLF_color
+         %55 = OpCompositeConstruct %main_out %54
+               OpReturnValue %55
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %main_1
-         %59 = OpLoad %v4float %x_GLF_color
-         %60 = OpCompositeConstruct %main_out %59
-         %58 = OpFunctionCall %void %tint_symbol_2 %60
+         %57 = OpLabel
+         %58 = OpFunctionCall %main_out %main_inner
+         %59 = OpCompositeExtract %v4float %58 0
+               OpStore %x_GLF_color_1_1 %59
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.spvasm.expected.spvasm
index 4b46ac2..a5d3ed4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.spvasm.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -49,7 +48,7 @@
          %32 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %33 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %34 = OpTypeFunction %void %main_out
+         %34 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
          %19 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0
@@ -68,18 +67,17 @@
          %27 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %34
-%tint_symbol = OpFunctionParameter %main_out
-         %38 = OpLabel
-         %39 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %39
-               OpReturn
+ %main_inner = OpFunction %main_out None %34
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %main_1
+         %39 = OpLoad %v4float %x_GLF_color
+         %40 = OpCompositeConstruct %main_out %39
+               OpReturnValue %40
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %main_1
-         %44 = OpLoad %v4float %x_GLF_color
-         %45 = OpCompositeConstruct %main_out %44
-         %43 = OpFunctionCall %void %tint_symbol_2 %45
+         %42 = OpLabel
+         %43 = OpFunctionCall %main_out %main_inner
+         %44 = OpCompositeExtract %v4float %43 0
+               OpStore %x_GLF_color_1_1 %44
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.wgsl.expected.spvasm
index 4b46ac2..a5d3ed4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -49,7 +48,7 @@
          %32 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %33 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %34 = OpTypeFunction %void %main_out
+         %34 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
          %19 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0
@@ -68,18 +67,17 @@
          %27 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %34
-%tint_symbol = OpFunctionParameter %main_out
-         %38 = OpLabel
-         %39 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %39
-               OpReturn
+ %main_inner = OpFunction %main_out None %34
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %main_1
+         %39 = OpLoad %v4float %x_GLF_color
+         %40 = OpCompositeConstruct %main_out %39
+               OpReturnValue %40
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %main_1
-         %44 = OpLoad %v4float %x_GLF_color
-         %45 = OpCompositeConstruct %main_out %44
-         %43 = OpFunctionCall %void %tint_symbol_2 %45
+         %42 = OpLabel
+         %43 = OpFunctionCall %main_out %main_inner
+         %44 = OpCompositeExtract %v4float %43 0
+               OpStore %x_GLF_color_1_1 %44
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.spvasm.expected.spvasm
index e0f212a..2791bce 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.spvasm.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 70
+; Bound: 69
 ; Schema: 0
                OpCapability Shader
          %35 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "twoandthree"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
@@ -20,27 +20,26 @@
                OpName %x_47_phi "x_47_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_v2float = OpTypePointer Function %v2float
@@ -60,7 +59,7 @@
          %56 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %57 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %58 = OpTypeFunction %void %main_out
+         %58 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_v2float Function %18
@@ -104,18 +103,17 @@
          %52 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %58
-%tint_symbol = OpFunctionParameter %main_out
-         %62 = OpLabel
-         %63 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %63
-               OpReturn
+ %main_inner = OpFunction %main_out None %58
+         %61 = OpLabel
+         %62 = OpFunctionCall %void %main_1
+         %63 = OpLoad %v4float %x_GLF_color
+         %64 = OpCompositeConstruct %main_out %63
+               OpReturnValue %64
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %65 = OpLabel
-         %66 = OpFunctionCall %void %main_1
-         %68 = OpLoad %v4float %x_GLF_color
-         %69 = OpCompositeConstruct %main_out %68
-         %67 = OpFunctionCall %void %tint_symbol_2 %69
+         %66 = OpLabel
+         %67 = OpFunctionCall %main_out %main_inner
+         %68 = OpCompositeExtract %v4float %67 0
+               OpStore %x_GLF_color_1_1 %68
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.wgsl.expected.spvasm
index e0f212a..2791bce 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.wgsl.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 70
+; Bound: 69
 ; Schema: 0
                OpCapability Shader
          %35 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "twoandthree"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
@@ -20,27 +20,26 @@
                OpName %x_47_phi "x_47_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_v2float = OpTypePointer Function %v2float
@@ -60,7 +59,7 @@
          %56 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %57 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %58 = OpTypeFunction %void %main_out
+         %58 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_v2float Function %18
@@ -104,18 +103,17 @@
          %52 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %58
-%tint_symbol = OpFunctionParameter %main_out
-         %62 = OpLabel
-         %63 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %63
-               OpReturn
+ %main_inner = OpFunction %main_out None %58
+         %61 = OpLabel
+         %62 = OpFunctionCall %void %main_1
+         %63 = OpLoad %v4float %x_GLF_color
+         %64 = OpCompositeConstruct %main_out %63
+               OpReturnValue %64
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %65 = OpLabel
-         %66 = OpFunctionCall %void %main_1
-         %68 = OpLoad %v4float %x_GLF_color
-         %69 = OpCompositeConstruct %main_out %68
-         %67 = OpFunctionCall %void %tint_symbol_2 %69
+         %66 = OpLabel
+         %67 = OpFunctionCall %main_out %main_inner
+         %68 = OpCompositeExtract %v4float %67 0
+               OpStore %x_GLF_color_1_1 %68
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.spvasm.expected.spvasm
index d9bb8a7..89884c7 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.spvasm.expected.spvasm
@@ -1,40 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "three"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -49,7 +48,7 @@
          %32 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %33 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %34 = OpTypeFunction %void %main_out
+         %34 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
          %18 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0
@@ -68,18 +67,17 @@
          %29 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %34
-%tint_symbol = OpFunctionParameter %main_out
-         %38 = OpLabel
-         %39 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %39
-               OpReturn
+ %main_inner = OpFunction %main_out None %34
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %main_1
+         %39 = OpLoad %v4float %x_GLF_color
+         %40 = OpCompositeConstruct %main_out %39
+               OpReturnValue %40
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %main_1
-         %44 = OpLoad %v4float %x_GLF_color
-         %45 = OpCompositeConstruct %main_out %44
-         %43 = OpFunctionCall %void %tint_symbol_2 %45
+         %42 = OpLabel
+         %43 = OpFunctionCall %main_out %main_inner
+         %44 = OpCompositeExtract %v4float %43 0
+               OpStore %x_GLF_color_1_1 %44
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.wgsl.expected.spvasm
index d9bb8a7..89884c7 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "three"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -49,7 +48,7 @@
          %32 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %33 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %34 = OpTypeFunction %void %main_out
+         %34 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
          %18 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0
@@ -68,18 +67,17 @@
          %29 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %34
-%tint_symbol = OpFunctionParameter %main_out
-         %38 = OpLabel
-         %39 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %39
-               OpReturn
+ %main_inner = OpFunction %main_out None %34
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %main_1
+         %39 = OpLoad %v4float %x_GLF_color
+         %40 = OpCompositeConstruct %main_out %39
+               OpReturnValue %40
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %main_1
-         %44 = OpLoad %v4float %x_GLF_color
-         %45 = OpCompositeConstruct %main_out %44
-         %43 = OpFunctionCall %void %tint_symbol_2 %45
+         %42 = OpLabel
+         %43 = OpFunctionCall %main_out %main_inner
+         %44 = OpCompositeExtract %v4float %43 0
+               OpStore %x_GLF_color_1_1 %44
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.spvasm.expected.spvasm
index 61c450f..4bb2e2f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.spvasm.expected.spvasm
@@ -1,40 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "three"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -50,7 +49,7 @@
          %33 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %34 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %35 = OpTypeFunction %void %main_out
+         %35 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
          %18 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0
@@ -69,18 +68,17 @@
          %29 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %35
-%tint_symbol = OpFunctionParameter %main_out
-         %39 = OpLabel
-         %40 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %40
-               OpReturn
+ %main_inner = OpFunction %main_out None %35
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %main_1
+         %40 = OpLoad %v4float %x_GLF_color
+         %41 = OpCompositeConstruct %main_out %40
+               OpReturnValue %41
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %main_1
-         %45 = OpLoad %v4float %x_GLF_color
-         %46 = OpCompositeConstruct %main_out %45
-         %44 = OpFunctionCall %void %tint_symbol_2 %46
+         %43 = OpLabel
+         %44 = OpFunctionCall %main_out %main_inner
+         %45 = OpCompositeExtract %v4float %44 0
+               OpStore %x_GLF_color_1_1 %45
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.wgsl.expected.spvasm
index 61c450f..4bb2e2f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "three"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -50,7 +49,7 @@
          %33 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %34 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %35 = OpTypeFunction %void %main_out
+         %35 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
          %18 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0
@@ -69,18 +68,17 @@
          %29 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %35
-%tint_symbol = OpFunctionParameter %main_out
-         %39 = OpLabel
-         %40 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %40
-               OpReturn
+ %main_inner = OpFunction %main_out None %35
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %main_1
+         %40 = OpLoad %v4float %x_GLF_color
+         %41 = OpCompositeConstruct %main_out %40
+               OpReturnValue %41
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %main_1
-         %45 = OpLoad %v4float %x_GLF_color
-         %46 = OpCompositeConstruct %main_out %45
-         %44 = OpFunctionCall %void %tint_symbol_2 %46
+         %43 = OpLabel
+         %44 = OpFunctionCall %main_out %main_inner
+         %45 = OpCompositeExtract %v4float %44 0
+               OpStore %x_GLF_color_1_1 %45
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.spvasm.expected.spvasm
index 85eee57..6996dcd 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.spvasm.expected.spvasm
@@ -1,30 +1,29 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -41,7 +40,7 @@
          %42 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %43 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %44 = OpTypeFunction %void %main_out
+         %44 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %15
@@ -83,18 +82,17 @@
          %37 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %44
-%tint_symbol = OpFunctionParameter %main_out
-         %48 = OpLabel
-         %49 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %49
-               OpReturn
+ %main_inner = OpFunction %main_out None %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %main_1
+         %49 = OpLoad %v4float %x_GLF_color
+         %50 = OpCompositeConstruct %main_out %49
+               OpReturnValue %50
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %main_1
-         %54 = OpLoad %v4float %x_GLF_color
-         %55 = OpCompositeConstruct %main_out %54
-         %53 = OpFunctionCall %void %tint_symbol_2 %55
+         %52 = OpLabel
+         %53 = OpFunctionCall %main_out %main_inner
+         %54 = OpCompositeExtract %v4float %53 0
+               OpStore %x_GLF_color_1_1 %54
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.wgsl.expected.spvasm
index 85eee57..6996dcd 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.wgsl.expected.spvasm
@@ -1,30 +1,29 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -41,7 +40,7 @@
          %42 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %43 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %44 = OpTypeFunction %void %main_out
+         %44 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %15
@@ -83,18 +82,17 @@
          %37 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %44
-%tint_symbol = OpFunctionParameter %main_out
-         %48 = OpLabel
-         %49 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %49
-               OpReturn
+ %main_inner = OpFunction %main_out None %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %main_1
+         %49 = OpLoad %v4float %x_GLF_color
+         %50 = OpCompositeConstruct %main_out %49
+               OpReturnValue %50
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %main_1
-         %54 = OpLoad %v4float %x_GLF_color
-         %55 = OpCompositeConstruct %main_out %54
-         %53 = OpFunctionCall %void %tint_symbol_2 %55
+         %52 = OpLabel
+         %53 = OpFunctionCall %main_out %main_inner
+         %54 = OpCompositeExtract %v4float %53 0
+               OpStore %x_GLF_color_1_1 %54
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.spvasm
index ea91153..4be3bd8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -53,7 +52,7 @@
          %40 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %41 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %42 = OpTypeFunction %void %main_out
+         %42 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %17
@@ -78,18 +77,17 @@
          %35 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %42
-%tint_symbol = OpFunctionParameter %main_out
-         %46 = OpLabel
-         %47 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %47
-               OpReturn
+ %main_inner = OpFunction %main_out None %42
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %main_1
+         %47 = OpLoad %v4float %x_GLF_color
+         %48 = OpCompositeConstruct %main_out %47
+               OpReturnValue %48
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %main_1
-         %52 = OpLoad %v4float %x_GLF_color
-         %53 = OpCompositeConstruct %main_out %52
-         %51 = OpFunctionCall %void %tint_symbol_2 %53
+         %50 = OpLabel
+         %51 = OpFunctionCall %main_out %main_inner
+         %52 = OpCompositeExtract %v4float %51 0
+               OpStore %x_GLF_color_1_1 %52
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.wgsl.expected.spvasm
index 056fe41..cbf22d4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -53,7 +52,7 @@
          %42 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %43 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %44 = OpTypeFunction %void %main_out
+         %44 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %17
@@ -83,18 +82,17 @@
          %37 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %44
-%tint_symbol = OpFunctionParameter %main_out
-         %48 = OpLabel
-         %49 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %49
-               OpReturn
+ %main_inner = OpFunction %main_out None %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %main_1
+         %49 = OpLoad %v4float %x_GLF_color
+         %50 = OpCompositeConstruct %main_out %49
+               OpReturnValue %50
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %main_1
-         %54 = OpLoad %v4float %x_GLF_color
-         %55 = OpCompositeConstruct %main_out %54
-         %53 = OpFunctionCall %void %tint_symbol_2 %55
+         %52 = OpLabel
+         %53 = OpFunctionCall %main_out %main_inner
+         %54 = OpCompositeExtract %v4float %53 0
+               OpStore %x_GLF_color_1_1 %54
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.spvasm
index 83d0a8f..0a0d2b8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "four"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -52,7 +51,7 @@
          %39 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %40 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %41 = OpTypeFunction %void %main_out
+         %41 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %17
@@ -77,18 +76,17 @@
          %35 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %41
-%tint_symbol = OpFunctionParameter %main_out
-         %45 = OpLabel
-         %46 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %46
-               OpReturn
+ %main_inner = OpFunction %main_out None %41
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %main_1
+         %46 = OpLoad %v4float %x_GLF_color
+         %47 = OpCompositeConstruct %main_out %46
+               OpReturnValue %47
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %main_1
-         %51 = OpLoad %v4float %x_GLF_color
-         %52 = OpCompositeConstruct %main_out %51
-         %50 = OpFunctionCall %void %tint_symbol_2 %52
+         %49 = OpLabel
+         %50 = OpFunctionCall %main_out %main_inner
+         %51 = OpCompositeExtract %v4float %50 0
+               OpStore %x_GLF_color_1_1 %51
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.wgsl.expected.spvasm
index 595ed70..63aee27 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "four"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -52,7 +51,7 @@
          %41 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %42 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %43 = OpTypeFunction %void %main_out
+         %43 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %17
@@ -82,18 +81,17 @@
          %37 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %43
-%tint_symbol = OpFunctionParameter %main_out
-         %47 = OpLabel
-         %48 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %48
-               OpReturn
+ %main_inner = OpFunction %main_out None %43
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %main_1
+         %48 = OpLoad %v4float %x_GLF_color
+         %49 = OpCompositeConstruct %main_out %48
+               OpReturnValue %49
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %main_1
-         %53 = OpLoad %v4float %x_GLF_color
-         %54 = OpCompositeConstruct %main_out %53
-         %52 = OpFunctionCall %void %tint_symbol_2 %54
+         %51 = OpLabel
+         %52 = OpFunctionCall %main_out %main_inner
+         %53 = OpCompositeExtract %v4float %52 0
+               OpStore %x_GLF_color_1_1 %53
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.spvasm
index 3380bc1..637a850 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -53,7 +52,7 @@
          %40 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %41 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %42 = OpTypeFunction %void %main_out
+         %42 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %17
@@ -78,18 +77,17 @@
          %35 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %42
-%tint_symbol = OpFunctionParameter %main_out
-         %46 = OpLabel
-         %47 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %47
-               OpReturn
+ %main_inner = OpFunction %main_out None %42
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %main_1
+         %47 = OpLoad %v4float %x_GLF_color
+         %48 = OpCompositeConstruct %main_out %47
+               OpReturnValue %48
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %main_1
-         %52 = OpLoad %v4float %x_GLF_color
-         %53 = OpCompositeConstruct %main_out %52
-         %51 = OpFunctionCall %void %tint_symbol_2 %53
+         %50 = OpLabel
+         %51 = OpFunctionCall %main_out %main_inner
+         %52 = OpCompositeExtract %v4float %51 0
+               OpStore %x_GLF_color_1_1 %52
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.wgsl.expected.spvasm
index a3e6ce2..9a491a8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 56
+; Bound: 55
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -53,7 +52,7 @@
          %42 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %43 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %44 = OpTypeFunction %void %main_out
+         %44 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %17
@@ -83,18 +82,17 @@
          %37 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %44
-%tint_symbol = OpFunctionParameter %main_out
-         %48 = OpLabel
-         %49 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %49
-               OpReturn
+ %main_inner = OpFunction %main_out None %44
+         %47 = OpLabel
+         %48 = OpFunctionCall %void %main_1
+         %49 = OpLoad %v4float %x_GLF_color
+         %50 = OpCompositeConstruct %main_out %49
+               OpReturnValue %50
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %51 = OpLabel
-         %52 = OpFunctionCall %void %main_1
-         %54 = OpLoad %v4float %x_GLF_color
-         %55 = OpCompositeConstruct %main_out %54
-         %53 = OpFunctionCall %void %tint_symbol_2 %55
+         %52 = OpLabel
+         %53 = OpFunctionCall %main_out %main_inner
+         %54 = OpCompositeExtract %v4float %53 0
+               OpStore %x_GLF_color_1_1 %54
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.spvasm.expected.spvasm
index 8756e12..9eb7c82 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.spvasm.expected.spvasm
@@ -1,32 +1,31 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 67
+; Bound: 66
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %b "b"
                OpName %i "i"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -47,7 +46,7 @@
          %53 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %54 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %55 = OpTypeFunction %void %main_out
+         %55 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %b = OpVariable %_ptr_Function_bool Function %15
@@ -101,18 +100,17 @@
          %50 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %55
-%tint_symbol = OpFunctionParameter %main_out
-         %59 = OpLabel
-         %60 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %60
-               OpReturn
+ %main_inner = OpFunction %main_out None %55
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %main_1
+         %60 = OpLoad %v4float %x_GLF_color
+         %61 = OpCompositeConstruct %main_out %60
+               OpReturnValue %61
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %62 = OpLabel
-         %63 = OpFunctionCall %void %main_1
-         %65 = OpLoad %v4float %x_GLF_color
-         %66 = OpCompositeConstruct %main_out %65
-         %64 = OpFunctionCall %void %tint_symbol_2 %66
+         %63 = OpLabel
+         %64 = OpFunctionCall %main_out %main_inner
+         %65 = OpCompositeExtract %v4float %64 0
+               OpStore %x_GLF_color_1_1 %65
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.wgsl.expected.spvasm
index 8756e12..9eb7c82 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.wgsl.expected.spvasm
@@ -1,32 +1,31 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 67
+; Bound: 66
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %b "b"
                OpName %i "i"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -47,7 +46,7 @@
          %53 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %54 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %55 = OpTypeFunction %void %main_out
+         %55 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %b = OpVariable %_ptr_Function_bool Function %15
@@ -101,18 +100,17 @@
          %50 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %55
-%tint_symbol = OpFunctionParameter %main_out
-         %59 = OpLabel
-         %60 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %60
-               OpReturn
+ %main_inner = OpFunction %main_out None %55
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %main_1
+         %60 = OpLoad %v4float %x_GLF_color
+         %61 = OpCompositeConstruct %main_out %60
+               OpReturnValue %61
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %62 = OpLabel
-         %63 = OpFunctionCall %void %main_1
-         %65 = OpLoad %v4float %x_GLF_color
-         %66 = OpCompositeConstruct %main_out %65
-         %64 = OpFunctionCall %void %tint_symbol_2 %66
+         %63 = OpLabel
+         %64 = OpFunctionCall %main_out %main_inner
+         %65 = OpCompositeExtract %v4float %64 0
+               OpStore %x_GLF_color_1_1 %65
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.spvasm.expected.spvasm
index 2c915e9..de0f5f9 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.spvasm.expected.spvasm
@@ -1,32 +1,31 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 68
+; Bound: 67
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %b "b"
                OpName %i "i"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -48,7 +47,7 @@
          %54 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %55 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %56 = OpTypeFunction %void %main_out
+         %56 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %b = OpVariable %_ptr_Function_bool Function %15
@@ -102,18 +101,17 @@
          %50 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %56
-%tint_symbol = OpFunctionParameter %main_out
-         %60 = OpLabel
-         %61 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %61
-               OpReturn
+ %main_inner = OpFunction %main_out None %56
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %main_1
+         %61 = OpLoad %v4float %x_GLF_color
+         %62 = OpCompositeConstruct %main_out %61
+               OpReturnValue %62
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %63 = OpLabel
-         %64 = OpFunctionCall %void %main_1
-         %66 = OpLoad %v4float %x_GLF_color
-         %67 = OpCompositeConstruct %main_out %66
-         %65 = OpFunctionCall %void %tint_symbol_2 %67
+         %64 = OpLabel
+         %65 = OpFunctionCall %main_out %main_inner
+         %66 = OpCompositeExtract %v4float %65 0
+               OpStore %x_GLF_color_1_1 %66
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.wgsl.expected.spvasm
index 2c915e9..de0f5f9 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.wgsl.expected.spvasm
@@ -1,32 +1,31 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 68
+; Bound: 67
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %b "b"
                OpName %i "i"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -48,7 +47,7 @@
          %54 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %55 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %56 = OpTypeFunction %void %main_out
+         %56 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %b = OpVariable %_ptr_Function_bool Function %15
@@ -102,18 +101,17 @@
          %50 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %56
-%tint_symbol = OpFunctionParameter %main_out
-         %60 = OpLabel
-         %61 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %61
-               OpReturn
+ %main_inner = OpFunction %main_out None %56
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %main_1
+         %61 = OpLoad %v4float %x_GLF_color
+         %62 = OpCompositeConstruct %main_out %61
+               OpReturnValue %62
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %63 = OpLabel
-         %64 = OpFunctionCall %void %main_1
-         %66 = OpLoad %v4float %x_GLF_color
-         %67 = OpCompositeConstruct %main_out %66
-         %65 = OpFunctionCall %void %tint_symbol_2 %67
+         %64 = OpLabel
+         %65 = OpFunctionCall %main_out %main_inner
+         %66 = OpCompositeExtract %v4float %65 0
+               OpStore %x_GLF_color_1_1 %66
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.spvasm.expected.spvasm
index 30086d1..088d06c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.spvasm.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 62
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "five"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -53,7 +52,7 @@
          %48 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %49 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %50 = OpTypeFunction %void %main_out
+         %50 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %18
@@ -97,18 +96,17 @@
          %43 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %50
-%tint_symbol = OpFunctionParameter %main_out
-         %54 = OpLabel
-         %55 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %55
-               OpReturn
+ %main_inner = OpFunction %main_out None %50
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %main_1
+         %55 = OpLoad %v4float %x_GLF_color
+         %56 = OpCompositeConstruct %main_out %55
+               OpReturnValue %56
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %main_1
-         %60 = OpLoad %v4float %x_GLF_color
-         %61 = OpCompositeConstruct %main_out %60
-         %59 = OpFunctionCall %void %tint_symbol_2 %61
+         %58 = OpLabel
+         %59 = OpFunctionCall %main_out %main_inner
+         %60 = OpCompositeExtract %v4float %59 0
+               OpStore %x_GLF_color_1_1 %60
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.wgsl.expected.spvasm
index 30086d1..088d06c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 62
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "five"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -53,7 +52,7 @@
          %48 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %49 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %50 = OpTypeFunction %void %main_out
+         %50 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %18
@@ -97,18 +96,17 @@
          %43 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %50
-%tint_symbol = OpFunctionParameter %main_out
-         %54 = OpLabel
-         %55 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %55
-               OpReturn
+ %main_inner = OpFunction %main_out None %50
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %main_1
+         %55 = OpLoad %v4float %x_GLF_color
+         %56 = OpCompositeConstruct %main_out %55
+               OpReturnValue %56
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %main_1
-         %60 = OpLoad %v4float %x_GLF_color
-         %61 = OpCompositeConstruct %main_out %60
-         %59 = OpFunctionCall %void %tint_symbol_2 %61
+         %58 = OpLabel
+         %59 = OpFunctionCall %main_out %main_inner
+         %60 = OpCompositeExtract %v4float %59 0
+               OpStore %x_GLF_color_1_1 %60
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.spvasm.expected.spvasm
index 0427ed3..8129be1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.spvasm.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 64
+; Bound: 63
 ; Schema: 0
                OpCapability Shader
          %28 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %d "d"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -61,7 +60,7 @@
     %float_0 = OpConstant %float 0
          %51 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %52 = OpTypeFunction %void %main_out
+         %52 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
           %v = OpVariable %_ptr_Function_v3float Function %18
@@ -90,18 +89,17 @@
          %44 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %52
-%tint_symbol = OpFunctionParameter %main_out
-         %56 = OpLabel
-         %57 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %57
-               OpReturn
+ %main_inner = OpFunction %main_out None %52
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %main_1
+         %57 = OpLoad %v4float %x_GLF_color
+         %58 = OpCompositeConstruct %main_out %57
+               OpReturnValue %58
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %59 = OpLabel
-         %60 = OpFunctionCall %void %main_1
-         %62 = OpLoad %v4float %x_GLF_color
-         %63 = OpCompositeConstruct %main_out %62
-         %61 = OpFunctionCall %void %tint_symbol_2 %63
+         %60 = OpLabel
+         %61 = OpFunctionCall %main_out %main_inner
+         %62 = OpCompositeExtract %v4float %61 0
+               OpStore %x_GLF_color_1_1 %62
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.wgsl.expected.spvasm
index 0427ed3..8129be1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 64
+; Bound: 63
 ; Schema: 0
                OpCapability Shader
          %28 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %d "d"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -61,7 +60,7 @@
     %float_0 = OpConstant %float 0
          %51 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %52 = OpTypeFunction %void %main_out
+         %52 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
           %v = OpVariable %_ptr_Function_v3float Function %18
@@ -90,18 +89,17 @@
          %44 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %52
-%tint_symbol = OpFunctionParameter %main_out
-         %56 = OpLabel
-         %57 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %57
-               OpReturn
+ %main_inner = OpFunction %main_out None %52
+         %55 = OpLabel
+         %56 = OpFunctionCall %void %main_1
+         %57 = OpLoad %v4float %x_GLF_color
+         %58 = OpCompositeConstruct %main_out %57
+               OpReturnValue %58
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %59 = OpLabel
-         %60 = OpFunctionCall %void %main_1
-         %62 = OpLoad %v4float %x_GLF_color
-         %63 = OpCompositeConstruct %main_out %62
-         %61 = OpFunctionCall %void %tint_symbol_2 %63
+         %60 = OpLabel
+         %61 = OpFunctionCall %main_out %main_inner
+         %62 = OpCompositeExtract %v4float %61 0
+               OpStore %x_GLF_color_1_1 %62
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.spvasm.expected.spvasm
index 10f5bab..f0b5fc9 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.spvasm.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "four"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -49,7 +48,7 @@
          %32 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %33 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %34 = OpTypeFunction %void %main_out
+         %34 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
          %19 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0
@@ -68,18 +67,17 @@
          %27 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %34
-%tint_symbol = OpFunctionParameter %main_out
-         %38 = OpLabel
-         %39 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %39
-               OpReturn
+ %main_inner = OpFunction %main_out None %34
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %main_1
+         %39 = OpLoad %v4float %x_GLF_color
+         %40 = OpCompositeConstruct %main_out %39
+               OpReturnValue %40
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %main_1
-         %44 = OpLoad %v4float %x_GLF_color
-         %45 = OpCompositeConstruct %main_out %44
-         %43 = OpFunctionCall %void %tint_symbol_2 %45
+         %42 = OpLabel
+         %43 = OpFunctionCall %main_out %main_inner
+         %44 = OpCompositeExtract %v4float %43 0
+               OpStore %x_GLF_color_1_1 %44
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.wgsl.expected.spvasm
index 10f5bab..f0b5fc9 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "four"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -49,7 +48,7 @@
          %32 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %33 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %34 = OpTypeFunction %void %main_out
+         %34 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
          %19 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0
@@ -68,18 +67,17 @@
          %27 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %34
-%tint_symbol = OpFunctionParameter %main_out
-         %38 = OpLabel
-         %39 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %39
-               OpReturn
+ %main_inner = OpFunction %main_out None %34
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %main_1
+         %39 = OpLoad %v4float %x_GLF_color
+         %40 = OpCompositeConstruct %main_out %39
+               OpReturnValue %40
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %main_1
-         %44 = OpLoad %v4float %x_GLF_color
-         %45 = OpCompositeConstruct %main_out %44
-         %43 = OpFunctionCall %void %tint_symbol_2 %45
+         %42 = OpLabel
+         %43 = OpFunctionCall %main_out %main_inner
+         %44 = OpCompositeExtract %v4float %43 0
+               OpStore %x_GLF_color_1_1 %44
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.spvasm.expected.spvasm
index 567ae13..34c5d52 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.spvasm.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x "x"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -52,7 +51,7 @@
          %36 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %37 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %38 = OpTypeFunction %void %main_out
+         %38 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %x = OpVariable %_ptr_Function_int Function %18
@@ -74,18 +73,17 @@
          %31 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %38
-%tint_symbol = OpFunctionParameter %main_out
-         %42 = OpLabel
-         %43 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %43
-               OpReturn
+ %main_inner = OpFunction %main_out None %38
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %main_1
+         %43 = OpLoad %v4float %x_GLF_color
+         %44 = OpCompositeConstruct %main_out %43
+               OpReturnValue %44
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %main_1
-         %48 = OpLoad %v4float %x_GLF_color
-         %49 = OpCompositeConstruct %main_out %48
-         %47 = OpFunctionCall %void %tint_symbol_2 %49
+         %46 = OpLabel
+         %47 = OpFunctionCall %main_out %main_inner
+         %48 = OpCompositeExtract %v4float %47 0
+               OpStore %x_GLF_color_1_1 %48
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.wgsl.expected.spvasm
index 567ae13..34c5d52 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x "x"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -52,7 +51,7 @@
          %36 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %37 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %38 = OpTypeFunction %void %main_out
+         %38 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %x = OpVariable %_ptr_Function_int Function %18
@@ -74,18 +73,17 @@
          %31 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %38
-%tint_symbol = OpFunctionParameter %main_out
-         %42 = OpLabel
-         %43 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %43
-               OpReturn
+ %main_inner = OpFunction %main_out None %38
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %main_1
+         %43 = OpLoad %v4float %x_GLF_color
+         %44 = OpCompositeConstruct %main_out %43
+               OpReturnValue %44
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %main_1
-         %48 = OpLoad %v4float %x_GLF_color
-         %49 = OpCompositeConstruct %main_out %48
-         %47 = OpFunctionCall %void %tint_symbol_2 %49
+         %46 = OpLabel
+         %47 = OpFunctionCall %main_out %main_inner
+         %48 = OpCompositeExtract %v4float %47 0
+               OpStore %x_GLF_color_1_1 %48
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.spvasm.expected.spvasm
index f1fcd90..97e91e4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.spvasm.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
          %24 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -52,7 +51,7 @@
          %35 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %36 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %37 = OpTypeFunction %void %main_out
+         %37 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
          %19 = OpAccessChain %_ptr_Uniform_v2float %x_5 %uint_0
@@ -71,18 +70,17 @@
          %32 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %37
-%tint_symbol = OpFunctionParameter %main_out
-         %41 = OpLabel
-         %42 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %42
-               OpReturn
+ %main_inner = OpFunction %main_out None %37
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %main_1
+         %42 = OpLoad %v4float %x_GLF_color
+         %43 = OpCompositeConstruct %main_out %42
+               OpReturnValue %43
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %main_1
-         %47 = OpLoad %v4float %x_GLF_color
-         %48 = OpCompositeConstruct %main_out %47
-         %46 = OpFunctionCall %void %tint_symbol_2 %48
+         %45 = OpLabel
+         %46 = OpFunctionCall %main_out %main_inner
+         %47 = OpCompositeExtract %v4float %46 0
+               OpStore %x_GLF_color_1_1 %47
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.wgsl.expected.spvasm
index f1fcd90..97e91e4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 49
+; Bound: 48
 ; Schema: 0
                OpCapability Shader
          %24 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -52,7 +51,7 @@
          %35 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %36 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %37 = OpTypeFunction %void %main_out
+         %37 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
          %19 = OpAccessChain %_ptr_Uniform_v2float %x_5 %uint_0
@@ -71,18 +70,17 @@
          %32 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %37
-%tint_symbol = OpFunctionParameter %main_out
-         %41 = OpLabel
-         %42 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %42
-               OpReturn
+ %main_inner = OpFunction %main_out None %37
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %main_1
+         %42 = OpLoad %v4float %x_GLF_color
+         %43 = OpCompositeConstruct %main_out %42
+               OpReturnValue %43
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %44 = OpLabel
-         %45 = OpFunctionCall %void %main_1
-         %47 = OpLoad %v4float %x_GLF_color
-         %48 = OpCompositeConstruct %main_out %47
-         %46 = OpFunctionCall %void %tint_symbol_2 %48
+         %45 = OpLabel
+         %46 = OpFunctionCall %main_out %main_inner
+         %47 = OpCompositeExtract %v4float %46 0
+               OpStore %x_GLF_color_1_1 %47
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.spvasm.expected.spvasm
index 4d94830..e6eac5b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.spvasm.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -51,7 +50,7 @@
          %34 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %35 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %36 = OpTypeFunction %void %main_out
+         %36 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
          %19 = OpAccessChain %_ptr_Uniform_v2float %x_5 %uint_0
@@ -70,18 +69,17 @@
          %31 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %36
-%tint_symbol = OpFunctionParameter %main_out
-         %40 = OpLabel
-         %41 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %41
-               OpReturn
+ %main_inner = OpFunction %main_out None %36
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %main_1
+         %41 = OpLoad %v4float %x_GLF_color
+         %42 = OpCompositeConstruct %main_out %41
+               OpReturnValue %42
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %main_1
-         %46 = OpLoad %v4float %x_GLF_color
-         %47 = OpCompositeConstruct %main_out %46
-         %45 = OpFunctionCall %void %tint_symbol_2 %47
+         %44 = OpLabel
+         %45 = OpFunctionCall %main_out %main_inner
+         %46 = OpCompositeExtract %v4float %45 0
+               OpStore %x_GLF_color_1_1 %46
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.wgsl.expected.spvasm
index 4d94830..e6eac5b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -51,7 +50,7 @@
          %34 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %35 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %36 = OpTypeFunction %void %main_out
+         %36 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
          %19 = OpAccessChain %_ptr_Uniform_v2float %x_5 %uint_0
@@ -70,18 +69,17 @@
          %31 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %36
-%tint_symbol = OpFunctionParameter %main_out
-         %40 = OpLabel
-         %41 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %41
-               OpReturn
+ %main_inner = OpFunction %main_out None %36
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %main_1
+         %41 = OpLoad %v4float %x_GLF_color
+         %42 = OpCompositeConstruct %main_out %41
+               OpReturnValue %42
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %main_1
-         %46 = OpLoad %v4float %x_GLF_color
-         %47 = OpCompositeConstruct %main_out %46
-         %45 = OpFunctionCall %void %tint_symbol_2 %47
+         %44 = OpLabel
+         %45 = OpFunctionCall %main_out %main_inner
+         %46 = OpCompositeExtract %v4float %45 0
+               OpStore %x_GLF_color_1_1 %46
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.spvasm.expected.spvasm
index 86501a3..958e74b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.spvasm.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 68
+; Bound: 67
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "threeandfour"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -63,10 +62,10 @@
          %54 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %55 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %56 = OpTypeFunction %void %main_out
+         %56 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
-          %v = OpVariable %_ptr_Function_v4float Function %9
+          %v = OpVariable %_ptr_Function_v4float Function %5
                OpStore %v %22
          %27 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_1
          %28 = OpLoad %float %27
@@ -93,18 +92,17 @@
          %50 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %56
-%tint_symbol = OpFunctionParameter %main_out
-         %60 = OpLabel
-         %61 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %61
-               OpReturn
+ %main_inner = OpFunction %main_out None %56
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %main_1
+         %61 = OpLoad %v4float %x_GLF_color
+         %62 = OpCompositeConstruct %main_out %61
+               OpReturnValue %62
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %63 = OpLabel
-         %64 = OpFunctionCall %void %main_1
-         %66 = OpLoad %v4float %x_GLF_color
-         %67 = OpCompositeConstruct %main_out %66
-         %65 = OpFunctionCall %void %tint_symbol_2 %67
+         %64 = OpLabel
+         %65 = OpFunctionCall %main_out %main_inner
+         %66 = OpCompositeExtract %v4float %65 0
+               OpStore %x_GLF_color_1_1 %66
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.wgsl.expected.spvasm
index 86501a3..958e74b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 68
+; Bound: 67
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "threeandfour"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -63,10 +62,10 @@
          %54 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %55 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %56 = OpTypeFunction %void %main_out
+         %56 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
-          %v = OpVariable %_ptr_Function_v4float Function %9
+          %v = OpVariable %_ptr_Function_v4float Function %5
                OpStore %v %22
          %27 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_1
          %28 = OpLoad %float %27
@@ -93,18 +92,17 @@
          %50 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %56
-%tint_symbol = OpFunctionParameter %main_out
-         %60 = OpLabel
-         %61 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %61
-               OpReturn
+ %main_inner = OpFunction %main_out None %56
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %main_1
+         %61 = OpLoad %v4float %x_GLF_color
+         %62 = OpCompositeConstruct %main_out %61
+               OpReturnValue %62
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %63 = OpLabel
-         %64 = OpFunctionCall %void %main_1
-         %66 = OpLoad %v4float %x_GLF_color
-         %67 = OpCompositeConstruct %main_out %66
-         %65 = OpFunctionCall %void %tint_symbol_2 %67
+         %64 = OpLabel
+         %65 = OpFunctionCall %main_out %main_inner
+         %66 = OpCompositeExtract %v4float %65 0
+               OpStore %x_GLF_color_1_1 %66
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.spvasm.expected.spvasm
index e87aa5b..0f90304 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.spvasm.expected.spvasm
@@ -1,30 +1,29 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -40,7 +39,7 @@
          %41 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %42 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %43 = OpTypeFunction %void %main_out
+         %43 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %v = OpVariable %_ptr_Function_v4float Function %5
@@ -72,18 +71,17 @@
          %37 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %43
-%tint_symbol = OpFunctionParameter %main_out
-         %47 = OpLabel
-         %48 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %48
-               OpReturn
+ %main_inner = OpFunction %main_out None %43
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %main_1
+         %48 = OpLoad %v4float %x_GLF_color
+         %49 = OpCompositeConstruct %main_out %48
+               OpReturnValue %49
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %main_1
-         %53 = OpLoad %v4float %x_GLF_color
-         %54 = OpCompositeConstruct %main_out %53
-         %52 = OpFunctionCall %void %tint_symbol_2 %54
+         %51 = OpLabel
+         %52 = OpFunctionCall %main_out %main_inner
+         %53 = OpCompositeExtract %v4float %52 0
+               OpStore %x_GLF_color_1_1 %53
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.wgsl.expected.spvasm
index e87aa5b..0f90304 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.wgsl.expected.spvasm
@@ -1,30 +1,29 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -40,7 +39,7 @@
          %41 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %42 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %43 = OpTypeFunction %void %main_out
+         %43 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %v = OpVariable %_ptr_Function_v4float Function %5
@@ -72,18 +71,17 @@
          %37 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %43
-%tint_symbol = OpFunctionParameter %main_out
-         %47 = OpLabel
-         %48 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %48
-               OpReturn
+ %main_inner = OpFunction %main_out None %43
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %main_1
+         %48 = OpLoad %v4float %x_GLF_color
+         %49 = OpCompositeConstruct %main_out %48
+               OpReturnValue %49
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %main_1
-         %53 = OpLoad %v4float %x_GLF_color
-         %54 = OpCompositeConstruct %main_out %53
-         %52 = OpFunctionCall %void %tint_symbol_2 %54
+         %51 = OpLabel
+         %52 = OpFunctionCall %main_out %main_inner
+         %53 = OpCompositeExtract %v4float %52 0
+               OpStore %x_GLF_color_1_1 %53
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.spvasm.expected.spvasm
index 311c2d4..09b93ac 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.spvasm.expected.spvasm
@@ -1,44 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 68
+; Bound: 67
 ; Schema: 0
                OpCapability Shader
          %28 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zeroOne"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %d "d"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_v2float = OpTypePointer Function %v2float
@@ -62,7 +61,7 @@
     %float_0 = OpConstant %float 0
          %55 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %56 = OpTypeFunction %void %main_out
+         %56 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %v = OpVariable %_ptr_Function_v2float Function %18
@@ -94,18 +93,17 @@
          %42 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %56
-%tint_symbol = OpFunctionParameter %main_out
-         %60 = OpLabel
-         %61 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %61
-               OpReturn
+ %main_inner = OpFunction %main_out None %56
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %main_1
+         %61 = OpLoad %v4float %x_GLF_color
+         %62 = OpCompositeConstruct %main_out %61
+               OpReturnValue %62
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %63 = OpLabel
-         %64 = OpFunctionCall %void %main_1
-         %66 = OpLoad %v4float %x_GLF_color
-         %67 = OpCompositeConstruct %main_out %66
-         %65 = OpFunctionCall %void %tint_symbol_2 %67
+         %64 = OpLabel
+         %65 = OpFunctionCall %main_out %main_inner
+         %66 = OpCompositeExtract %v4float %65 0
+               OpStore %x_GLF_color_1_1 %66
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.wgsl.expected.spvasm
index 311c2d4..09b93ac 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.wgsl.expected.spvasm
@@ -1,44 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 68
+; Bound: 67
 ; Schema: 0
                OpCapability Shader
          %28 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zeroOne"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %d "d"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_v2float = OpTypePointer Function %v2float
@@ -62,7 +61,7 @@
     %float_0 = OpConstant %float 0
          %55 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %56 = OpTypeFunction %void %main_out
+         %56 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %v = OpVariable %_ptr_Function_v2float Function %18
@@ -94,18 +93,17 @@
          %42 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %56
-%tint_symbol = OpFunctionParameter %main_out
-         %60 = OpLabel
-         %61 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %61
-               OpReturn
+ %main_inner = OpFunction %main_out None %56
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %main_1
+         %61 = OpLoad %v4float %x_GLF_color
+         %62 = OpCompositeConstruct %main_out %61
+               OpReturnValue %62
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %63 = OpLabel
-         %64 = OpFunctionCall %void %main_1
-         %66 = OpLoad %v4float %x_GLF_color
-         %67 = OpCompositeConstruct %main_out %66
-         %65 = OpFunctionCall %void %tint_symbol_2 %67
+         %64 = OpLabel
+         %65 = OpFunctionCall %main_out %main_inner
+         %66 = OpCompositeExtract %v4float %65 0
+               OpStore %x_GLF_color_1_1 %66
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.spvasm.expected.spvasm
index 0d3cc7f..2841f82 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.spvasm.expected.spvasm
@@ -1,34 +1,38 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 89
+; Bound: 88
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -36,13 +40,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -60,7 +59,7 @@
       %int_3 = OpConstant %int 3
       %v2int = OpTypeVector %int 2
    %main_out = OpTypeStruct %v4float
-         %77 = OpTypeFunction %void %main_out
+         %77 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %21
@@ -122,18 +121,17 @@
                OpStore %x_GLF_color %76
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %77
-%tint_symbol = OpFunctionParameter %main_out
-         %81 = OpLabel
-         %82 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %82
-               OpReturn
+ %main_inner = OpFunction %main_out None %77
+         %80 = OpLabel
+         %81 = OpFunctionCall %void %main_1
+         %82 = OpLoad %v4float %x_GLF_color
+         %83 = OpCompositeConstruct %main_out %82
+               OpReturnValue %83
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %84 = OpLabel
-         %85 = OpFunctionCall %void %main_1
-         %87 = OpLoad %v4float %x_GLF_color
-         %88 = OpCompositeConstruct %main_out %87
-         %86 = OpFunctionCall %void %tint_symbol_2 %88
+         %85 = OpLabel
+         %86 = OpFunctionCall %main_out %main_inner
+         %87 = OpCompositeExtract %v4float %86 0
+               OpStore %x_GLF_color_1_1 %87
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.wgsl.expected.spvasm
index 0d3cc7f..2841f82 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.wgsl.expected.spvasm
@@ -1,34 +1,38 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 89
+; Bound: 88
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -36,13 +40,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -60,7 +59,7 @@
       %int_3 = OpConstant %int 3
       %v2int = OpTypeVector %int 2
    %main_out = OpTypeStruct %v4float
-         %77 = OpTypeFunction %void %main_out
+         %77 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %21
@@ -122,18 +121,17 @@
                OpStore %x_GLF_color %76
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %77
-%tint_symbol = OpFunctionParameter %main_out
-         %81 = OpLabel
-         %82 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %82
-               OpReturn
+ %main_inner = OpFunction %main_out None %77
+         %80 = OpLabel
+         %81 = OpFunctionCall %void %main_1
+         %82 = OpLoad %v4float %x_GLF_color
+         %83 = OpCompositeConstruct %main_out %82
+               OpReturnValue %83
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %84 = OpLabel
-         %85 = OpFunctionCall %void %main_1
-         %87 = OpLoad %v4float %x_GLF_color
-         %88 = OpCompositeConstruct %main_out %87
-         %86 = OpFunctionCall %void %tint_symbol_2 %88
+         %85 = OpLabel
+         %86 = OpFunctionCall %main_out %main_inner
+         %87 = OpCompositeExtract %v4float %86 0
+               OpStore %x_GLF_color_1_1 %87
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.spvasm.expected.spvasm
index 4323c1e..4055cd4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 109
+; Bound: 108
 ; Schema: 0
                OpCapability Shader
          %52 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,15 +16,14 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %arr "arr"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_4 ArrayStride 16
@@ -36,10 +36,13 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_3 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
 %_arr_float_uint_4 = OpTypeArray %float %uint_4
@@ -52,12 +55,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
@@ -75,7 +74,7 @@
        %bool = OpTypeBool
 %_ptr_Function_float = OpTypePointer Function %float
    %main_out = OpTypeStruct %v4float
-         %97 = OpTypeFunction %void %main_out
+         %97 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
         %arr = OpVariable %_ptr_Function__arr_float_uint_3 Function %27
@@ -157,18 +156,17 @@
          %77 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %97
-%tint_symbol = OpFunctionParameter %main_out
-        %101 = OpLabel
-        %102 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %102
-               OpReturn
+ %main_inner = OpFunction %main_out None %97
+        %100 = OpLabel
+        %101 = OpFunctionCall %void %main_1
+        %102 = OpLoad %v4float %x_GLF_color
+        %103 = OpCompositeConstruct %main_out %102
+               OpReturnValue %103
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %104 = OpLabel
-        %105 = OpFunctionCall %void %main_1
-        %107 = OpLoad %v4float %x_GLF_color
-        %108 = OpCompositeConstruct %main_out %107
-        %106 = OpFunctionCall %void %tint_symbol_2 %108
+        %105 = OpLabel
+        %106 = OpFunctionCall %main_out %main_inner
+        %107 = OpCompositeExtract %v4float %106 0
+               OpStore %x_GLF_color_1_1 %107
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.wgsl.expected.spvasm
index 4323c1e..4055cd4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 109
+; Bound: 108
 ; Schema: 0
                OpCapability Shader
          %52 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,15 +16,14 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %arr "arr"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_4 ArrayStride 16
@@ -36,10 +36,13 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_3 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
 %_arr_float_uint_4 = OpTypeArray %float %uint_4
@@ -52,12 +55,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
@@ -75,7 +74,7 @@
        %bool = OpTypeBool
 %_ptr_Function_float = OpTypePointer Function %float
    %main_out = OpTypeStruct %v4float
-         %97 = OpTypeFunction %void %main_out
+         %97 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
         %arr = OpVariable %_ptr_Function__arr_float_uint_3 Function %27
@@ -157,18 +156,17 @@
          %77 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %97
-%tint_symbol = OpFunctionParameter %main_out
-        %101 = OpLabel
-        %102 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %102
-               OpReturn
+ %main_inner = OpFunction %main_out None %97
+        %100 = OpLabel
+        %101 = OpFunctionCall %void %main_1
+        %102 = OpLoad %v4float %x_GLF_color
+        %103 = OpCompositeConstruct %main_out %102
+               OpReturnValue %103
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %104 = OpLabel
-        %105 = OpFunctionCall %void %main_1
-        %107 = OpLoad %v4float %x_GLF_color
-        %108 = OpCompositeConstruct %main_out %107
-        %106 = OpFunctionCall %void %tint_symbol_2 %108
+        %105 = OpLabel
+        %106 = OpFunctionCall %main_out %main_inner
+        %107 = OpCompositeExtract %v4float %106 0
+               OpStore %x_GLF_color_1_1 %107
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.spvasm.expected.spvasm
index 89156fd..b10aa66 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.spvasm.expected.spvasm
@@ -1,33 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 88
+; Bound: 87
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -35,13 +39,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -53,7 +52,7 @@
        %bool = OpTypeBool
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %76 = OpTypeFunction %void %main_out
+         %76 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -130,18 +129,17 @@
          %56 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %76
-%tint_symbol = OpFunctionParameter %main_out
-         %80 = OpLabel
-         %81 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %81
-               OpReturn
+ %main_inner = OpFunction %main_out None %76
+         %79 = OpLabel
+         %80 = OpFunctionCall %void %main_1
+         %81 = OpLoad %v4float %x_GLF_color
+         %82 = OpCompositeConstruct %main_out %81
+               OpReturnValue %82
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %83 = OpLabel
-         %84 = OpFunctionCall %void %main_1
-         %86 = OpLoad %v4float %x_GLF_color
-         %87 = OpCompositeConstruct %main_out %86
-         %85 = OpFunctionCall %void %tint_symbol_2 %87
+         %84 = OpLabel
+         %85 = OpFunctionCall %main_out %main_inner
+         %86 = OpCompositeExtract %v4float %85 0
+               OpStore %x_GLF_color_1_1 %86
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.wgsl.expected.spvasm
index 89156fd..b10aa66 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.wgsl.expected.spvasm
@@ -1,33 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 88
+; Bound: 87
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -35,13 +39,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -53,7 +52,7 @@
        %bool = OpTypeBool
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %76 = OpTypeFunction %void %main_out
+         %76 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -130,18 +129,17 @@
          %56 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %76
-%tint_symbol = OpFunctionParameter %main_out
-         %80 = OpLabel
-         %81 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %81
-               OpReturn
+ %main_inner = OpFunction %main_out None %76
+         %79 = OpLabel
+         %80 = OpFunctionCall %void %main_1
+         %81 = OpLoad %v4float %x_GLF_color
+         %82 = OpCompositeConstruct %main_out %81
+               OpReturnValue %82
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %83 = OpLabel
-         %84 = OpFunctionCall %void %main_1
-         %86 = OpLoad %v4float %x_GLF_color
-         %87 = OpCompositeConstruct %main_out %86
-         %85 = OpFunctionCall %void %tint_symbol_2 %87
+         %84 = OpLabel
+         %85 = OpFunctionCall %main_out %main_inner
+         %86 = OpCompositeExtract %v4float %85 0
+               OpStore %x_GLF_color_1_1 %86
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.spvasm.expected.spvasm
index 2097959..cc72c64 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %34 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
@@ -16,16 +18,16 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %f0 "f0"
                OpName %f1 "f1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_1 ArrayStride 16
@@ -38,31 +40,29 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -76,7 +76,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %65 = OpTypeFunction %void %main_out
+         %65 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
          %f0 = OpVariable %_ptr_Function_float Function %29
@@ -116,20 +116,20 @@
          %45 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %65
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %65
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %69 = OpLabel
-         %70 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %70
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %70 = OpFunctionCall %void %main_1
+         %71 = OpLoad %v4float %x_GLF_color
+         %72 = OpCompositeConstruct %main_out %71
+               OpReturnValue %72
                OpFunctionEnd
        %main = OpFunction %void None %23
-         %72 = OpLabel
-         %73 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %73
-         %74 = OpFunctionCall %void %main_1
-         %76 = OpLoad %v4float %x_GLF_color
-         %77 = OpCompositeConstruct %main_out %76
-         %75 = OpFunctionCall %void %tint_symbol_3 %77
+         %74 = OpLabel
+         %76 = OpLoad %v4float %gl_FragCoord_param_1
+         %75 = OpFunctionCall %main_out %main_inner %76
+         %77 = OpCompositeExtract %v4float %75 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.wgsl.expected.spvasm
index 2fb16eb..2e63fe9 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %34 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
@@ -16,16 +18,16 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %f0 "f0"
                OpName %f1 "f1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_1 ArrayStride 16
@@ -38,31 +40,29 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -76,7 +76,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %65 = OpTypeFunction %void %main_out
+         %65 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
          %f0 = OpVariable %_ptr_Function_float Function %29
@@ -116,20 +116,20 @@
          %45 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %65
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %65
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %69 = OpLabel
-         %70 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %70
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %70 = OpFunctionCall %void %main_1
+         %71 = OpLoad %v4float %x_GLF_color
+         %72 = OpCompositeConstruct %main_out %71
+               OpReturnValue %72
                OpFunctionEnd
        %main = OpFunction %void None %23
-         %72 = OpLabel
-         %73 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %73
-         %74 = OpFunctionCall %void %main_1
-         %76 = OpLoad %v4float %x_GLF_color
-         %77 = OpCompositeConstruct %main_out %76
-         %75 = OpFunctionCall %void %tint_symbol_3 %77
+         %74 = OpLabel
+         %76 = OpLoad %v4float %gl_FragCoord_param_1
+         %75 = OpFunctionCall %main_out %main_inner %76
+         %77 = OpCompositeExtract %v4float %75 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.spvasm.expected.spvasm
index 8371f68..26e9f23 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.spvasm.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 90
+; Bound: 89
 ; Schema: 0
                OpCapability Shader
          %40 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v1 "v1"
                OpName %b "b"
@@ -21,30 +21,29 @@
                OpName %x_52_phi "x_52_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_1 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -62,7 +61,7 @@
     %float_1 = OpConstant %float 1
          %44 = OpConstantComposite %v2float %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-         %78 = OpTypeFunction %void %main_out
+         %78 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %v1 = OpVariable %_ptr_Function_v2float Function %21
@@ -128,18 +127,17 @@
          %63 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %78
-%tint_symbol = OpFunctionParameter %main_out
-         %82 = OpLabel
-         %83 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %83
-               OpReturn
+ %main_inner = OpFunction %main_out None %78
+         %81 = OpLabel
+         %82 = OpFunctionCall %void %main_1
+         %83 = OpLoad %v4float %x_GLF_color
+         %84 = OpCompositeConstruct %main_out %83
+               OpReturnValue %84
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %85 = OpLabel
-         %86 = OpFunctionCall %void %main_1
-         %88 = OpLoad %v4float %x_GLF_color
-         %89 = OpCompositeConstruct %main_out %88
-         %87 = OpFunctionCall %void %tint_symbol_2 %89
+         %86 = OpLabel
+         %87 = OpFunctionCall %main_out %main_inner
+         %88 = OpCompositeExtract %v4float %87 0
+               OpStore %x_GLF_color_1_1 %88
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.wgsl.expected.spvasm
index 8371f68..26e9f23 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.wgsl.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 90
+; Bound: 89
 ; Schema: 0
                OpCapability Shader
          %40 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v1 "v1"
                OpName %b "b"
@@ -21,30 +21,29 @@
                OpName %x_52_phi "x_52_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_1 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -62,7 +61,7 @@
     %float_1 = OpConstant %float 1
          %44 = OpConstantComposite %v2float %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-         %78 = OpTypeFunction %void %main_out
+         %78 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %v1 = OpVariable %_ptr_Function_v2float Function %21
@@ -128,18 +127,17 @@
          %63 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %78
-%tint_symbol = OpFunctionParameter %main_out
-         %82 = OpLabel
-         %83 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %83
-               OpReturn
+ %main_inner = OpFunction %main_out None %78
+         %81 = OpLabel
+         %82 = OpFunctionCall %void %main_1
+         %83 = OpLoad %v4float %x_GLF_color
+         %84 = OpCompositeConstruct %main_out %83
+               OpReturnValue %84
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %85 = OpLabel
-         %86 = OpFunctionCall %void %main_1
-         %88 = OpLoad %v4float %x_GLF_color
-         %89 = OpCompositeConstruct %main_out %88
-         %87 = OpFunctionCall %void %tint_symbol_2 %89
+         %86 = OpLabel
+         %87 = OpFunctionCall %main_out %main_inner
+         %88 = OpCompositeExtract %v4float %87 0
+               OpStore %x_GLF_color_1_1 %88
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.spvasm.expected.spvasm
index 698e085..bfd9935 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.spvasm.expected.spvasm
@@ -5,36 +5,40 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -42,11 +46,7 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -58,7 +58,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %65 = OpTypeFunction %void %main_out
+         %65 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %24
@@ -109,20 +109,20 @@
          %45 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %65
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %65
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %69 = OpLabel
-         %70 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %70
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %70 = OpFunctionCall %void %main_1
+         %71 = OpLoad %v4float %x_GLF_color
+         %72 = OpCompositeConstruct %main_out %71
+               OpReturnValue %72
                OpFunctionEnd
        %main = OpFunction %void None %18
-         %72 = OpLabel
-         %73 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %73
-         %74 = OpFunctionCall %void %main_1
-         %76 = OpLoad %v4float %x_GLF_color
-         %77 = OpCompositeConstruct %main_out %76
-         %75 = OpFunctionCall %void %tint_symbol_3 %77
+         %74 = OpLabel
+         %76 = OpLoad %v4float %gl_FragCoord_param_1
+         %75 = OpFunctionCall %main_out %main_inner %76
+         %77 = OpCompositeExtract %v4float %75 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.wgsl.expected.spvasm
index 698e085..bfd9935 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.wgsl.expected.spvasm
@@ -5,36 +5,40 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -42,11 +46,7 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -58,7 +58,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %65 = OpTypeFunction %void %main_out
+         %65 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %24
@@ -109,20 +109,20 @@
          %45 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %65
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %65
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %69 = OpLabel
-         %70 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %70
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %70 = OpFunctionCall %void %main_1
+         %71 = OpLoad %v4float %x_GLF_color
+         %72 = OpCompositeConstruct %main_out %71
+               OpReturnValue %72
                OpFunctionEnd
        %main = OpFunction %void None %18
-         %72 = OpLabel
-         %73 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %73
-         %74 = OpFunctionCall %void %main_1
-         %76 = OpLoad %v4float %x_GLF_color
-         %77 = OpCompositeConstruct %main_out %76
-         %75 = OpFunctionCall %void %tint_symbol_3 %77
+         %74 = OpLabel
+         %76 = OpLoad %v4float %gl_FragCoord_param_1
+         %75 = OpFunctionCall %main_out %main_inner %76
+         %77 = OpCompositeExtract %v4float %75 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.spvasm.expected.spvasm
index 7fc19f9..04622ad 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %61 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_7 "x_7"
@@ -16,8 +18,6 @@
                OpName %x_10 "x_10"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %data "data"
                OpName %b "b"
@@ -27,9 +27,11 @@
                OpName %x_83_phi "x_83_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_1 ArrayStride 16
@@ -42,11 +44,15 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_2 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
@@ -59,15 +65,9 @@
        %buf1 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
@@ -89,7 +89,7 @@
       %int_3 = OpConstant %int 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %140 = OpTypeFunction %void %main_out
+        %140 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
        %data = OpVariable %_ptr_Function__arr_v4float_uint_2 Function %31
@@ -217,20 +217,20 @@
                OpStore %x_GLF_color %139
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %140
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %140
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %144 = OpLabel
-        %145 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %145
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %145 = OpFunctionCall %void %main_1
+        %146 = OpLoad %v4float %x_GLF_color
+        %147 = OpCompositeConstruct %main_out %146
+               OpReturnValue %147
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %147 = OpLabel
-        %148 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %148
-        %149 = OpFunctionCall %void %main_1
-        %151 = OpLoad %v4float %x_GLF_color
-        %152 = OpCompositeConstruct %main_out %151
-        %150 = OpFunctionCall %void %tint_symbol_3 %152
+        %149 = OpLabel
+        %151 = OpLoad %v4float %gl_FragCoord_param_1
+        %150 = OpFunctionCall %main_out %main_inner %151
+        %152 = OpCompositeExtract %v4float %150 0
+               OpStore %x_GLF_color_1_1 %152
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.wgsl.expected.spvasm
index 7fc19f9..04622ad 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %61 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_7 "x_7"
@@ -16,8 +18,6 @@
                OpName %x_10 "x_10"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %data "data"
                OpName %b "b"
@@ -27,9 +27,11 @@
                OpName %x_83_phi "x_83_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_1 ArrayStride 16
@@ -42,11 +44,15 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_2 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
@@ -59,15 +65,9 @@
        %buf1 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
@@ -89,7 +89,7 @@
       %int_3 = OpConstant %int 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %140 = OpTypeFunction %void %main_out
+        %140 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
        %data = OpVariable %_ptr_Function__arr_v4float_uint_2 Function %31
@@ -217,20 +217,20 @@
                OpStore %x_GLF_color %139
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %140
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %140
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %144 = OpLabel
-        %145 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %145
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %145 = OpFunctionCall %void %main_1
+        %146 = OpLoad %v4float %x_GLF_color
+        %147 = OpCompositeConstruct %main_out %146
+               OpReturnValue %147
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %147 = OpLabel
-        %148 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %148
-        %149 = OpFunctionCall %void %main_1
-        %151 = OpLoad %v4float %x_GLF_color
-        %152 = OpCompositeConstruct %main_out %151
-        %150 = OpFunctionCall %void %tint_symbol_3 %152
+        %149 = OpLabel
+        %151 = OpLoad %v4float %gl_FragCoord_param_1
+        %150 = OpFunctionCall %main_out %main_inner %151
+        %152 = OpCompositeExtract %v4float %150 0
+               OpStore %x_GLF_color_1_1 %152
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.spvasm.expected.spvasm
index 76e8564..2aadd56 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
@@ -15,17 +17,17 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %icoord "icoord"
                OpName %x_40 "x_40"
                OpName %icoord_1 "icoord_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_4 ArrayStride 16
@@ -38,31 +40,29 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
 %_arr_float_uint_4 = OpTypeArray %float %uint_4
        %buf1 = OpTypeStruct %_arr_float_uint_4
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
      %uint_1 = OpConstant %uint 1
 %_arr_int_uint_1 = OpTypeArray %int %uint_1
        %buf0 = OpTypeStruct %_arr_int_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
@@ -82,7 +82,7 @@
 %_ptr_Function_int = OpTypePointer Function %int
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-        %119 = OpTypeFunction %void %main_out
+        %119 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
      %icoord = OpVariable %_ptr_Function_v2int Function %30
@@ -177,20 +177,20 @@
          %49 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %119
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %119
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %123 = OpLabel
-        %124 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %124
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %124 = OpFunctionCall %void %main_1
+        %125 = OpLoad %v4float %x_GLF_color
+        %126 = OpCompositeConstruct %main_out %125
+               OpReturnValue %126
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %126 = OpLabel
-        %127 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %127
-        %128 = OpFunctionCall %void %main_1
-        %130 = OpLoad %v4float %x_GLF_color
-        %131 = OpCompositeConstruct %main_out %130
-        %129 = OpFunctionCall %void %tint_symbol_3 %131
+        %128 = OpLabel
+        %130 = OpLoad %v4float %gl_FragCoord_param_1
+        %129 = OpFunctionCall %main_out %main_inner %130
+        %131 = OpCompositeExtract %v4float %129 0
+               OpStore %x_GLF_color_1_1 %131
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.wgsl.expected.spvasm
index 76e8564..2aadd56 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
@@ -15,17 +17,17 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %icoord "icoord"
                OpName %x_40 "x_40"
                OpName %icoord_1 "icoord_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_4 ArrayStride 16
@@ -38,31 +40,29 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
 %_arr_float_uint_4 = OpTypeArray %float %uint_4
        %buf1 = OpTypeStruct %_arr_float_uint_4
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
      %uint_1 = OpConstant %uint 1
 %_arr_int_uint_1 = OpTypeArray %int %uint_1
        %buf0 = OpTypeStruct %_arr_int_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
       %v2int = OpTypeVector %int 2
@@ -82,7 +82,7 @@
 %_ptr_Function_int = OpTypePointer Function %int
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-        %119 = OpTypeFunction %void %main_out
+        %119 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
      %icoord = OpVariable %_ptr_Function_v2int Function %30
@@ -177,20 +177,20 @@
          %49 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %119
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %119
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %123 = OpLabel
-        %124 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %124
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %124 = OpFunctionCall %void %main_1
+        %125 = OpLoad %v4float %x_GLF_color
+        %126 = OpCompositeConstruct %main_out %125
+               OpReturnValue %126
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %126 = OpLabel
-        %127 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %127
-        %128 = OpFunctionCall %void %main_1
-        %130 = OpLoad %v4float %x_GLF_color
-        %131 = OpCompositeConstruct %main_out %130
-        %129 = OpFunctionCall %void %tint_symbol_3 %131
+        %128 = OpLabel
+        %130 = OpLoad %v4float %gl_FragCoord_param_1
+        %129 = OpFunctionCall %main_out %main_inner %130
+        %131 = OpCompositeExtract %v4float %129 0
+               OpStore %x_GLF_color_1_1 %131
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.spvasm.expected.spvasm
index 7b6efef..53467bd 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
@@ -15,17 +17,17 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_11 "x_11"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %func_f1_ "func_f1_"
                OpName %x "x"
                OpName %main_1 "main_1"
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_4 ArrayStride 16
@@ -38,31 +40,29 @@
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
 %_arr_float_uint_4 = OpTypeArray %float %uint_4
        %buf1 = OpTypeStruct %_arr_float_uint_4
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_11 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
 %_ptr_Function_float = OpTypePointer Function %float
          %23 = OpTypeFunction %float %_ptr_Function_float
        %bool = OpTypeBool
@@ -80,7 +80,7 @@
          %86 = OpConstantNull %float
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-        %115 = OpTypeFunction %void %main_out
+        %115 = OpTypeFunction %main_out %v4float
    %func_f1_ = OpFunction %float None %23
           %x = OpFunctionParameter %_ptr_Function_float
          %27 = OpLabel
@@ -191,20 +191,20 @@
          %94 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %115
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %115
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %119 = OpLabel
-        %120 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %120
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %120 = OpFunctionCall %void %main_1
+        %121 = OpLoad %v4float %x_GLF_color
+        %122 = OpCompositeConstruct %main_out %121
+               OpReturnValue %122
                OpFunctionEnd
        %main = OpFunction %void None %81
-        %122 = OpLabel
-        %123 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %123
-        %124 = OpFunctionCall %void %main_1
-        %126 = OpLoad %v4float %x_GLF_color
-        %127 = OpCompositeConstruct %main_out %126
-        %125 = OpFunctionCall %void %tint_symbol_3 %127
+        %124 = OpLabel
+        %126 = OpLoad %v4float %gl_FragCoord_param_1
+        %125 = OpFunctionCall %main_out %main_inner %126
+        %127 = OpCompositeExtract %v4float %125 0
+               OpStore %x_GLF_color_1_1 %127
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.wgsl.expected.spvasm
index 7b6efef..53467bd 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
@@ -15,17 +17,17 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_11 "x_11"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %func_f1_ "func_f1_"
                OpName %x "x"
                OpName %main_1 "main_1"
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_4 ArrayStride 16
@@ -38,31 +40,29 @@
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
 %_arr_float_uint_4 = OpTypeArray %float %uint_4
        %buf1 = OpTypeStruct %_arr_float_uint_4
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_11 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
 %_ptr_Function_float = OpTypePointer Function %float
          %23 = OpTypeFunction %float %_ptr_Function_float
        %bool = OpTypeBool
@@ -80,7 +80,7 @@
          %86 = OpConstantNull %float
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-        %115 = OpTypeFunction %void %main_out
+        %115 = OpTypeFunction %main_out %v4float
    %func_f1_ = OpFunction %float None %23
           %x = OpFunctionParameter %_ptr_Function_float
          %27 = OpLabel
@@ -191,20 +191,20 @@
          %94 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %115
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %115
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %119 = OpLabel
-        %120 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %120
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %120 = OpFunctionCall %void %main_1
+        %121 = OpLoad %v4float %x_GLF_color
+        %122 = OpCompositeConstruct %main_out %121
+               OpReturnValue %122
                OpFunctionEnd
        %main = OpFunction %void None %81
-        %122 = OpLabel
-        %123 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %123
-        %124 = OpFunctionCall %void %main_1
-        %126 = OpLoad %v4float %x_GLF_color
-        %127 = OpCompositeConstruct %main_out %126
-        %125 = OpFunctionCall %void %tint_symbol_3 %127
+        %124 = OpLabel
+        %126 = OpLoad %v4float %gl_FragCoord_param_1
+        %125 = OpFunctionCall %main_out %main_inner %126
+        %127 = OpCompositeExtract %v4float %125 0
+               OpStore %x_GLF_color_1_1 %127
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.spvasm.expected.spvasm
index 66c0a8c..3ccba4e 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
@@ -18,17 +20,17 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_13 "x_13"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %func_vf2_ "func_vf2_"
                OpName %pos "pos"
                OpName %main_1 "main_1"
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -46,10 +48,14 @@
                OpDecorate %x_13 NonWritable
                OpDecorate %x_13 DescriptorSet 0
                OpDecorate %x_13 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -59,20 +65,14 @@
        %buf2 = OpTypeStruct %float
 %_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2
        %x_10 = OpVariable %_ptr_Uniform_buf2 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %14 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %14
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %14
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_13 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %14
        %bool = OpTypeBool
     %v2float = OpTypeVector %float 2
 %_ptr_Function_v2float = OpTypePointer Function %v2float
@@ -90,7 +90,7 @@
          %68 = OpConstantNull %v2float
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %91 = OpTypeFunction %void %main_out
+         %91 = OpTypeFunction %main_out %v4float
   %func_vf2_ = OpFunction %bool None %25
         %pos = OpFunctionParameter %_ptr_Function_v2float
          %31 = OpLabel
@@ -156,20 +156,20 @@
                OpStore %x_GLF_color %90
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %91
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %91
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %95 = OpLabel
-         %96 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %96
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %96 = OpFunctionCall %void %main_1
+         %97 = OpLoad %v4float %x_GLF_color
+         %98 = OpCompositeConstruct %main_out %97
+               OpReturnValue %98
                OpFunctionEnd
        %main = OpFunction %void None %63
-         %98 = OpLabel
-         %99 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %99
-        %100 = OpFunctionCall %void %main_1
-        %102 = OpLoad %v4float %x_GLF_color
-        %103 = OpCompositeConstruct %main_out %102
-        %101 = OpFunctionCall %void %tint_symbol_3 %103
+        %100 = OpLabel
+        %102 = OpLoad %v4float %gl_FragCoord_param_1
+        %101 = OpFunctionCall %main_out %main_inner %102
+        %103 = OpCompositeExtract %v4float %101 0
+               OpStore %x_GLF_color_1_1 %103
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.wgsl.expected.spvasm
index 66c0a8c..3ccba4e 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
@@ -18,17 +20,17 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_13 "x_13"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %func_vf2_ "func_vf2_"
                OpName %pos "pos"
                OpName %main_1 "main_1"
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -46,10 +48,14 @@
                OpDecorate %x_13 NonWritable
                OpDecorate %x_13 DescriptorSet 0
                OpDecorate %x_13 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -59,20 +65,14 @@
        %buf2 = OpTypeStruct %float
 %_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2
        %x_10 = OpVariable %_ptr_Uniform_buf2 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %14 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %14
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %14
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_13 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %14
        %bool = OpTypeBool
     %v2float = OpTypeVector %float 2
 %_ptr_Function_v2float = OpTypePointer Function %v2float
@@ -90,7 +90,7 @@
          %68 = OpConstantNull %v2float
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %91 = OpTypeFunction %void %main_out
+         %91 = OpTypeFunction %main_out %v4float
   %func_vf2_ = OpFunction %bool None %25
         %pos = OpFunctionParameter %_ptr_Function_v2float
          %31 = OpLabel
@@ -156,20 +156,20 @@
                OpStore %x_GLF_color %90
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %91
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %91
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %95 = OpLabel
-         %96 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %96
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %96 = OpFunctionCall %void %main_1
+         %97 = OpLoad %v4float %x_GLF_color
+         %98 = OpCompositeConstruct %main_out %97
+               OpReturnValue %98
                OpFunctionEnd
        %main = OpFunction %void None %63
-         %98 = OpLabel
-         %99 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %99
-        %100 = OpFunctionCall %void %main_1
-        %102 = OpLoad %v4float %x_GLF_color
-        %103 = OpCompositeConstruct %main_out %102
-        %101 = OpFunctionCall %void %tint_symbol_3 %103
+        %100 = OpLabel
+        %102 = OpLoad %v4float %gl_FragCoord_param_1
+        %101 = OpFunctionCall %main_out %main_inner %102
+        %103 = OpCompositeExtract %v4float %101 0
+               OpStore %x_GLF_color_1_1 %103
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.spvasm.expected.spvasm
index d85fb18..ea2c15e 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.spvasm.expected.spvasm
@@ -1,51 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 97
+; Bound: 96
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_global_loop_count "x_GLF_global_loop_count"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_54 "x_54"
                OpName %x_55_phi "x_55_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %4
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+        %int = OpTypeInt 32 1
+%_ptr_Private_int = OpTypePointer Private %int
+          %9 = OpConstantNull %int
+%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %9
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
       %int_0 = OpConstant %int 0
@@ -58,7 +57,7 @@
     %int_100 = OpConstant %int 100
        %true = OpConstantTrue %bool
    %main_out = OpTypeStruct %v4float
-         %85 = OpTypeFunction %void %main_out
+         %85 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
        %x_54 = OpVariable %_ptr_Function_bool Function %46
@@ -149,18 +148,17 @@
          %71 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %85
-%tint_symbol = OpFunctionParameter %main_out
-         %89 = OpLabel
-         %90 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %90
-               OpReturn
+ %main_inner = OpFunction %main_out None %85
+         %88 = OpLabel
+         %89 = OpFunctionCall %void %main_1
+         %90 = OpLoad %v4float %x_GLF_color
+         %91 = OpCompositeConstruct %main_out %90
+               OpReturnValue %91
                OpFunctionEnd
        %main = OpFunction %void None %18
-         %92 = OpLabel
-         %93 = OpFunctionCall %void %main_1
-         %95 = OpLoad %v4float %x_GLF_color
-         %96 = OpCompositeConstruct %main_out %95
-         %94 = OpFunctionCall %void %tint_symbol_2 %96
+         %93 = OpLabel
+         %94 = OpFunctionCall %main_out %main_inner
+         %95 = OpCompositeExtract %v4float %94 0
+               OpStore %x_GLF_color_1_1 %95
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.wgsl.expected.spvasm
index d85fb18..ea2c15e 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.wgsl.expected.spvasm
@@ -1,51 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 97
+; Bound: 96
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_global_loop_count "x_GLF_global_loop_count"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_54 "x_54"
                OpName %x_55_phi "x_55_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %4
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+        %int = OpTypeInt 32 1
+%_ptr_Private_int = OpTypePointer Private %int
+          %9 = OpConstantNull %int
+%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %9
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
       %int_0 = OpConstant %int 0
@@ -58,7 +57,7 @@
     %int_100 = OpConstant %int 100
        %true = OpConstantTrue %bool
    %main_out = OpTypeStruct %v4float
-         %85 = OpTypeFunction %void %main_out
+         %85 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
        %x_54 = OpVariable %_ptr_Function_bool Function %46
@@ -149,18 +148,17 @@
          %71 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %85
-%tint_symbol = OpFunctionParameter %main_out
-         %89 = OpLabel
-         %90 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %90
-               OpReturn
+ %main_inner = OpFunction %main_out None %85
+         %88 = OpLabel
+         %89 = OpFunctionCall %void %main_1
+         %90 = OpLoad %v4float %x_GLF_color
+         %91 = OpCompositeConstruct %main_out %90
+               OpReturnValue %91
                OpFunctionEnd
        %main = OpFunction %void None %18
-         %92 = OpLabel
-         %93 = OpFunctionCall %void %main_1
-         %95 = OpLoad %v4float %x_GLF_color
-         %96 = OpCompositeConstruct %main_out %95
-         %94 = OpFunctionCall %void %tint_symbol_2 %96
+         %93 = OpLabel
+         %94 = OpFunctionCall %main_out %main_inner
+         %95 = OpCompositeExtract %v4float %94 0
+               OpStore %x_GLF_color_1_1 %95
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.spvasm.expected.spvasm
index f1de9d2..6308fc5 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 213
+; Bound: 212
 ; Schema: 0
                OpCapability Shader
         %127 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_global_loop_count "x_GLF_global_loop_count"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
@@ -19,7 +20,6 @@
                OpMemberName %buf2 0 "one"
                OpName %x_15 "x_15"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m "m"
                OpName %v "v"
@@ -29,9 +29,9 @@
                OpName %zero "zero"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_18 ArrayStride 16
@@ -49,13 +49,16 @@
                OpDecorate %x_15 NonWritable
                OpDecorate %x_15 DescriptorSet 0
                OpDecorate %x_15 Binding 2
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
 %_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %4
-      %float = OpTypeFloat 32
+          %9 = OpConstantNull %int
+%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %9
        %uint = OpTypeInt 32 0
     %uint_18 = OpConstant %uint 18
 %_arr_float_uint_18 = OpTypeArray %float %uint_18
@@ -70,12 +73,8 @@
        %buf2 = OpTypeStruct %int
 %_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2
        %x_15 = OpVariable %_ptr_Uniform_buf2 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %23 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %23
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %23
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %26 = OpTypeFunction %void
 %mat4v4float = OpTypeMatrix %v4float 4
@@ -108,14 +107,14 @@
        %bool = OpTypeBool
      %int_17 = OpConstant %int 17
    %main_out = OpTypeStruct %v4float
-        %201 = OpTypeFunction %void %main_out
+        %201 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %26
          %29 = OpLabel
           %m = OpVariable %_ptr_Function_mat4v4float Function %33
-          %v = OpVariable %_ptr_Function_v4float Function %23
+          %v = OpVariable %_ptr_Function_v4float Function %5
           %f = OpVariable %_ptr_Function_float Function %38
-          %a = OpVariable %_ptr_Function_int Function %4
-          %b = OpVariable %_ptr_Function_int Function %4
+          %a = OpVariable %_ptr_Function_int Function %9
+          %b = OpVariable %_ptr_Function_int Function %9
        %zero = OpVariable %_ptr_Function_float Function %38
                OpStore %x_GLF_global_loop_count %int_0
          %47 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 %int_1
@@ -297,18 +296,17 @@
                OpStore %x_GLF_color %200
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %201
-%tint_symbol = OpFunctionParameter %main_out
-        %205 = OpLabel
-        %206 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %206
-               OpReturn
+ %main_inner = OpFunction %main_out None %201
+        %204 = OpLabel
+        %205 = OpFunctionCall %void %main_1
+        %206 = OpLoad %v4float %x_GLF_color
+        %207 = OpCompositeConstruct %main_out %206
+               OpReturnValue %207
                OpFunctionEnd
        %main = OpFunction %void None %26
-        %208 = OpLabel
-        %209 = OpFunctionCall %void %main_1
-        %211 = OpLoad %v4float %x_GLF_color
-        %212 = OpCompositeConstruct %main_out %211
-        %210 = OpFunctionCall %void %tint_symbol_2 %212
+        %209 = OpLabel
+        %210 = OpFunctionCall %main_out %main_inner
+        %211 = OpCompositeExtract %v4float %210 0
+               OpStore %x_GLF_color_1_1 %211
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.wgsl.expected.spvasm
index f1de9d2..6308fc5 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 213
+; Bound: 212
 ; Schema: 0
                OpCapability Shader
         %127 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_global_loop_count "x_GLF_global_loop_count"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
@@ -19,7 +20,6 @@
                OpMemberName %buf2 0 "one"
                OpName %x_15 "x_15"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m "m"
                OpName %v "v"
@@ -29,9 +29,9 @@
                OpName %zero "zero"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_18 ArrayStride 16
@@ -49,13 +49,16 @@
                OpDecorate %x_15 NonWritable
                OpDecorate %x_15 DescriptorSet 0
                OpDecorate %x_15 Binding 2
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
 %_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %4
-      %float = OpTypeFloat 32
+          %9 = OpConstantNull %int
+%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %9
        %uint = OpTypeInt 32 0
     %uint_18 = OpConstant %uint 18
 %_arr_float_uint_18 = OpTypeArray %float %uint_18
@@ -70,12 +73,8 @@
        %buf2 = OpTypeStruct %int
 %_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2
        %x_15 = OpVariable %_ptr_Uniform_buf2 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %23 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %23
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %23
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %26 = OpTypeFunction %void
 %mat4v4float = OpTypeMatrix %v4float 4
@@ -108,14 +107,14 @@
        %bool = OpTypeBool
      %int_17 = OpConstant %int 17
    %main_out = OpTypeStruct %v4float
-        %201 = OpTypeFunction %void %main_out
+        %201 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %26
          %29 = OpLabel
           %m = OpVariable %_ptr_Function_mat4v4float Function %33
-          %v = OpVariable %_ptr_Function_v4float Function %23
+          %v = OpVariable %_ptr_Function_v4float Function %5
           %f = OpVariable %_ptr_Function_float Function %38
-          %a = OpVariable %_ptr_Function_int Function %4
-          %b = OpVariable %_ptr_Function_int Function %4
+          %a = OpVariable %_ptr_Function_int Function %9
+          %b = OpVariable %_ptr_Function_int Function %9
        %zero = OpVariable %_ptr_Function_float Function %38
                OpStore %x_GLF_global_loop_count %int_0
          %47 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 %int_1
@@ -297,18 +296,17 @@
                OpStore %x_GLF_color %200
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %201
-%tint_symbol = OpFunctionParameter %main_out
-        %205 = OpLabel
-        %206 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %206
-               OpReturn
+ %main_inner = OpFunction %main_out None %201
+        %204 = OpLabel
+        %205 = OpFunctionCall %void %main_1
+        %206 = OpLoad %v4float %x_GLF_color
+        %207 = OpCompositeConstruct %main_out %206
+               OpReturnValue %207
                OpFunctionEnd
        %main = OpFunction %void None %26
-        %208 = OpLabel
-        %209 = OpFunctionCall %void %main_1
-        %211 = OpLoad %v4float %x_GLF_color
-        %212 = OpCompositeConstruct %main_out %211
-        %210 = OpFunctionCall %void %tint_symbol_2 %212
+        %209 = OpLabel
+        %210 = OpFunctionCall %main_out %main_inner
+        %211 = OpCompositeExtract %v4float %210 0
+               OpStore %x_GLF_color_1_1 %211
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.spvasm
index 53d2926..3a19101 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.spvasm
@@ -1,51 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 99
+; Bound: 98
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_global_loop_count "x_GLF_global_loop_count"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
 %_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %4
+          %9 = OpConstantNull %int
+%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %9
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_int_uint_3 = OpTypeArray %int %uint_3
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %15 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %15
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %15
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
          %18 = OpTypeFunction %int
     %int_100 = OpConstant %int 100
        %bool = OpTypeBool
@@ -60,7 +59,7 @@
       %false = OpConstantFalse %bool
        %true = OpConstantTrue %bool
    %main_out = OpTypeStruct %v4float
-         %87 = OpTypeFunction %void %main_out
+         %87 = OpTypeFunction %main_out
       %func_ = OpFunction %int None %18
          %20 = OpLabel
                OpBranch %21
@@ -92,7 +91,7 @@
                OpFunctionEnd
      %main_1 = OpFunction %void None %43
          %46 = OpLabel
-          %a = OpVariable %_ptr_Function_int Function %4
+          %a = OpVariable %_ptr_Function_int Function %9
                OpStore %x_GLF_global_loop_count %int_0
                OpBranch %49
          %49 = OpLabel
@@ -148,18 +147,17 @@
          %67 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %87
-%tint_symbol = OpFunctionParameter %main_out
-         %91 = OpLabel
-         %92 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %92
-               OpReturn
+ %main_inner = OpFunction %main_out None %87
+         %90 = OpLabel
+         %91 = OpFunctionCall %void %main_1
+         %92 = OpLoad %v4float %x_GLF_color
+         %93 = OpCompositeConstruct %main_out %92
+               OpReturnValue %93
                OpFunctionEnd
        %main = OpFunction %void None %43
-         %94 = OpLabel
-         %95 = OpFunctionCall %void %main_1
-         %97 = OpLoad %v4float %x_GLF_color
-         %98 = OpCompositeConstruct %main_out %97
-         %96 = OpFunctionCall %void %tint_symbol_2 %98
+         %95 = OpLabel
+         %96 = OpFunctionCall %main_out %main_inner
+         %97 = OpCompositeExtract %v4float %96 0
+               OpStore %x_GLF_color_1_1 %97
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.wgsl.expected.spvasm
index db5634e..534cc39 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.wgsl.expected.spvasm
@@ -1,51 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 101
+; Bound: 100
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_global_loop_count "x_GLF_global_loop_count"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
 %_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %4
+          %9 = OpConstantNull %int
+%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %9
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_int_uint_3 = OpTypeArray %int %uint_3
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %15 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %15
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %15
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
          %18 = OpTypeFunction %int
     %int_100 = OpConstant %int 100
        %bool = OpTypeBool
@@ -60,7 +59,7 @@
       %false = OpConstantFalse %bool
        %true = OpConstantTrue %bool
    %main_out = OpTypeStruct %v4float
-         %89 = OpTypeFunction %void %main_out
+         %89 = OpTypeFunction %main_out
       %func_ = OpFunction %int None %18
          %20 = OpLabel
                OpBranch %21
@@ -92,7 +91,7 @@
                OpFunctionEnd
      %main_1 = OpFunction %void None %43
          %46 = OpLabel
-          %a = OpVariable %_ptr_Function_int Function %4
+          %a = OpVariable %_ptr_Function_int Function %9
                OpStore %x_GLF_global_loop_count %int_0
                OpBranch %49
          %49 = OpLabel
@@ -153,18 +152,17 @@
          %69 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %89
-%tint_symbol = OpFunctionParameter %main_out
-         %93 = OpLabel
-         %94 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %94
-               OpReturn
+ %main_inner = OpFunction %main_out None %89
+         %92 = OpLabel
+         %93 = OpFunctionCall %void %main_1
+         %94 = OpLoad %v4float %x_GLF_color
+         %95 = OpCompositeConstruct %main_out %94
+               OpReturnValue %95
                OpFunctionEnd
        %main = OpFunction %void None %43
-         %96 = OpLabel
-         %97 = OpFunctionCall %void %main_1
-         %99 = OpLoad %v4float %x_GLF_color
-        %100 = OpCompositeConstruct %main_out %99
-         %98 = OpFunctionCall %void %tint_symbol_2 %100
+         %97 = OpLabel
+         %98 = OpFunctionCall %main_out %main_inner
+         %99 = OpCompositeExtract %v4float %98 0
+               OpStore %x_GLF_color_1_1 %99
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.spvasm.expected.spvasm
index 5db6580..1a4e770 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 107
+; Bound: 106
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_23 "x_23"
                OpName %x_27 "x_27"
@@ -25,17 +25,21 @@
                OpName %x_38 "x_38"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -43,13 +47,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -61,7 +60,7 @@
     %int_100 = OpConstant %int 100
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %95 = OpTypeFunction %void %main_out
+         %95 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %x_23 = OpVariable %_ptr_Function_int Function %21
@@ -175,18 +174,17 @@
          %86 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %95
-%tint_symbol = OpFunctionParameter %main_out
-         %99 = OpLabel
-        %100 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %100
-               OpReturn
+ %main_inner = OpFunction %main_out None %95
+         %98 = OpLabel
+         %99 = OpFunctionCall %void %main_1
+        %100 = OpLoad %v4float %x_GLF_color
+        %101 = OpCompositeConstruct %main_out %100
+               OpReturnValue %101
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %102 = OpLabel
-        %103 = OpFunctionCall %void %main_1
-        %105 = OpLoad %v4float %x_GLF_color
-        %106 = OpCompositeConstruct %main_out %105
-        %104 = OpFunctionCall %void %tint_symbol_2 %106
+        %103 = OpLabel
+        %104 = OpFunctionCall %main_out %main_inner
+        %105 = OpCompositeExtract %v4float %104 0
+               OpStore %x_GLF_color_1_1 %105
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.wgsl.expected.spvasm
index 5db6580..1a4e770 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 107
+; Bound: 106
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_23 "x_23"
                OpName %x_27 "x_27"
@@ -25,17 +25,21 @@
                OpName %x_38 "x_38"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -43,13 +47,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -61,7 +60,7 @@
     %int_100 = OpConstant %int 100
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %95 = OpTypeFunction %void %main_out
+         %95 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %x_23 = OpVariable %_ptr_Function_int Function %21
@@ -175,18 +174,17 @@
          %86 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %95
-%tint_symbol = OpFunctionParameter %main_out
-         %99 = OpLabel
-        %100 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %100
-               OpReturn
+ %main_inner = OpFunction %main_out None %95
+         %98 = OpLabel
+         %99 = OpFunctionCall %void %main_1
+        %100 = OpLoad %v4float %x_GLF_color
+        %101 = OpCompositeConstruct %main_out %100
+               OpReturnValue %101
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %102 = OpLabel
-        %103 = OpFunctionCall %void %main_1
-        %105 = OpLoad %v4float %x_GLF_color
-        %106 = OpCompositeConstruct %main_out %105
-        %104 = OpFunctionCall %void %tint_symbol_2 %106
+        %103 = OpLabel
+        %104 = OpFunctionCall %main_out %main_inner
+        %105 = OpCompositeExtract %v4float %104 0
+               OpStore %x_GLF_color_1_1 %105
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.spvasm.expected.spvasm
index 6b93297..72bea40 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.spvasm.expected.spvasm
@@ -1,49 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 81
+; Bound: 80
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_global_loop_count "x_GLF_global_loop_count"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %4
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+        %int = OpTypeInt 32 1
+%_ptr_Private_int = OpTypePointer Private %int
+          %9 = OpConstantNull %int
+%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %9
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
       %int_0 = OpConstant %int 0
@@ -55,7 +54,7 @@
      %uint_0 = OpConstant %uint 0
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %69 = OpTypeFunction %void %main_out
+         %69 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
                OpStore %x_GLF_global_loop_count %int_0
@@ -119,18 +118,17 @@
          %47 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %69
-%tint_symbol = OpFunctionParameter %main_out
-         %73 = OpLabel
-         %74 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %74
-               OpReturn
+ %main_inner = OpFunction %main_out None %69
+         %72 = OpLabel
+         %73 = OpFunctionCall %void %main_1
+         %74 = OpLoad %v4float %x_GLF_color
+         %75 = OpCompositeConstruct %main_out %74
+               OpReturnValue %75
                OpFunctionEnd
        %main = OpFunction %void None %18
-         %76 = OpLabel
-         %77 = OpFunctionCall %void %main_1
-         %79 = OpLoad %v4float %x_GLF_color
-         %80 = OpCompositeConstruct %main_out %79
-         %78 = OpFunctionCall %void %tint_symbol_2 %80
+         %77 = OpLabel
+         %78 = OpFunctionCall %main_out %main_inner
+         %79 = OpCompositeExtract %v4float %78 0
+               OpStore %x_GLF_color_1_1 %79
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.wgsl.expected.spvasm
index 6b93297..72bea40 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.wgsl.expected.spvasm
@@ -1,49 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 81
+; Bound: 80
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_global_loop_count "x_GLF_global_loop_count"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %4
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+        %int = OpTypeInt 32 1
+%_ptr_Private_int = OpTypePointer Private %int
+          %9 = OpConstantNull %int
+%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %9
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
       %int_0 = OpConstant %int 0
@@ -55,7 +54,7 @@
      %uint_0 = OpConstant %uint 0
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %69 = OpTypeFunction %void %main_out
+         %69 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
                OpStore %x_GLF_global_loop_count %int_0
@@ -119,18 +118,17 @@
          %47 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %69
-%tint_symbol = OpFunctionParameter %main_out
-         %73 = OpLabel
-         %74 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %74
-               OpReturn
+ %main_inner = OpFunction %main_out None %69
+         %72 = OpLabel
+         %73 = OpFunctionCall %void %main_1
+         %74 = OpLoad %v4float %x_GLF_color
+         %75 = OpCompositeConstruct %main_out %74
+               OpReturnValue %75
                OpFunctionEnd
        %main = OpFunction %void None %18
-         %76 = OpLabel
-         %77 = OpFunctionCall %void %main_1
-         %79 = OpLoad %v4float %x_GLF_color
-         %80 = OpCompositeConstruct %main_out %79
-         %78 = OpFunctionCall %void %tint_symbol_2 %80
+         %77 = OpLabel
+         %78 = OpFunctionCall %main_out %main_inner
+         %79 = OpCompositeExtract %v4float %78 0
+               OpStore %x_GLF_color_1_1 %79
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.spvasm.expected.spvasm
index 2016928..f2d2876 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.spvasm.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -52,7 +51,7 @@
          %43 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %44 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %45 = OpTypeFunction %void %main_out
+         %45 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %18
@@ -87,18 +86,17 @@
          %38 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %45
-%tint_symbol = OpFunctionParameter %main_out
-         %49 = OpLabel
-         %50 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %50
-               OpReturn
+ %main_inner = OpFunction %main_out None %45
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %main_1
+         %50 = OpLoad %v4float %x_GLF_color
+         %51 = OpCompositeConstruct %main_out %50
+               OpReturnValue %51
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %main_1
-         %55 = OpLoad %v4float %x_GLF_color
-         %56 = OpCompositeConstruct %main_out %55
-         %54 = OpFunctionCall %void %tint_symbol_2 %56
+         %53 = OpLabel
+         %54 = OpFunctionCall %main_out %main_inner
+         %55 = OpCompositeExtract %v4float %54 0
+               OpStore %x_GLF_color_1_1 %55
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.wgsl.expected.spvasm
index 2016928..f2d2876 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -52,7 +51,7 @@
          %43 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %44 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %45 = OpTypeFunction %void %main_out
+         %45 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %18
@@ -87,18 +86,17 @@
          %38 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %45
-%tint_symbol = OpFunctionParameter %main_out
-         %49 = OpLabel
-         %50 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %50
-               OpReturn
+ %main_inner = OpFunction %main_out None %45
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %main_1
+         %50 = OpLoad %v4float %x_GLF_color
+         %51 = OpCompositeConstruct %main_out %50
+               OpReturnValue %51
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %main_1
-         %55 = OpLoad %v4float %x_GLF_color
-         %56 = OpCompositeConstruct %main_out %55
-         %54 = OpFunctionCall %void %tint_symbol_2 %56
+         %53 = OpLabel
+         %54 = OpFunctionCall %main_out %main_inner
+         %55 = OpCompositeExtract %v4float %54 0
+               OpStore %x_GLF_color_1_1 %55
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.spvasm.expected.spvasm
index 69687bb..b378849 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
@@ -15,14 +17,14 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -35,30 +37,28 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf0 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -70,7 +70,7 @@
        %bool = OpTypeBool
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %62 = OpTypeFunction %void %main_out
+         %62 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %22
          %25 = OpLabel
          %29 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_1
@@ -116,20 +116,20 @@
          %59 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %62
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %62
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %66 = OpLabel
-         %67 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %67
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %67 = OpFunctionCall %void %main_1
+         %68 = OpLoad %v4float %x_GLF_color
+         %69 = OpCompositeConstruct %main_out %68
+               OpReturnValue %69
                OpFunctionEnd
        %main = OpFunction %void None %22
-         %69 = OpLabel
-         %70 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %70
-         %71 = OpFunctionCall %void %main_1
-         %73 = OpLoad %v4float %x_GLF_color
-         %74 = OpCompositeConstruct %main_out %73
-         %72 = OpFunctionCall %void %tint_symbol_3 %74
+         %71 = OpLabel
+         %73 = OpLoad %v4float %gl_FragCoord_param_1
+         %72 = OpFunctionCall %main_out %main_inner %73
+         %74 = OpCompositeExtract %v4float %72 0
+               OpStore %x_GLF_color_1_1 %74
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.wgsl.expected.spvasm
index 69687bb..b378849 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
@@ -15,14 +17,14 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -35,30 +37,28 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf0 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -70,7 +70,7 @@
        %bool = OpTypeBool
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %62 = OpTypeFunction %void %main_out
+         %62 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %22
          %25 = OpLabel
          %29 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_1
@@ -116,20 +116,20 @@
          %59 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %62
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %62
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %66 = OpLabel
-         %67 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %67
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %67 = OpFunctionCall %void %main_1
+         %68 = OpLoad %v4float %x_GLF_color
+         %69 = OpCompositeConstruct %main_out %68
+               OpReturnValue %69
                OpFunctionEnd
        %main = OpFunction %void None %22
-         %69 = OpLabel
-         %70 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %70
-         %71 = OpFunctionCall %void %main_1
-         %73 = OpLoad %v4float %x_GLF_color
-         %74 = OpCompositeConstruct %main_out %73
-         %72 = OpFunctionCall %void %tint_symbol_3 %74
+         %71 = OpLabel
+         %73 = OpLoad %v4float %gl_FragCoord_param_1
+         %72 = OpFunctionCall %main_out %main_inner %73
+         %74 = OpCompositeExtract %v4float %72 0
+               OpStore %x_GLF_color_1_1 %74
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.spvasm.expected.spvasm
index a7e3461..c78c5a6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 110
+; Bound: 109
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
@@ -20,17 +20,21 @@
                OpName %x_66_phi "x_66_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -38,13 +42,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -60,7 +59,7 @@
       %int_3 = OpConstant %int 3
        %true = OpConstantTrue %bool
    %main_out = OpTypeStruct %v4float
-         %98 = OpTypeFunction %void %main_out
+         %98 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -165,18 +164,17 @@
          %78 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %98
-%tint_symbol = OpFunctionParameter %main_out
-        %102 = OpLabel
-        %103 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %103
-               OpReturn
+ %main_inner = OpFunction %main_out None %98
+        %101 = OpLabel
+        %102 = OpFunctionCall %void %main_1
+        %103 = OpLoad %v4float %x_GLF_color
+        %104 = OpCompositeConstruct %main_out %103
+               OpReturnValue %104
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %105 = OpLabel
-        %106 = OpFunctionCall %void %main_1
-        %108 = OpLoad %v4float %x_GLF_color
-        %109 = OpCompositeConstruct %main_out %108
-        %107 = OpFunctionCall %void %tint_symbol_2 %109
+        %106 = OpLabel
+        %107 = OpFunctionCall %main_out %main_inner
+        %108 = OpCompositeExtract %v4float %107 0
+               OpStore %x_GLF_color_1_1 %108
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.wgsl.expected.spvasm
index a7e3461..c78c5a6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 110
+; Bound: 109
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
@@ -20,17 +20,21 @@
                OpName %x_66_phi "x_66_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -38,13 +42,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -60,7 +59,7 @@
       %int_3 = OpConstant %int 3
        %true = OpConstantTrue %bool
    %main_out = OpTypeStruct %v4float
-         %98 = OpTypeFunction %void %main_out
+         %98 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -165,18 +164,17 @@
          %78 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %98
-%tint_symbol = OpFunctionParameter %main_out
-        %102 = OpLabel
-        %103 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %103
-               OpReturn
+ %main_inner = OpFunction %main_out None %98
+        %101 = OpLabel
+        %102 = OpFunctionCall %void %main_1
+        %103 = OpLoad %v4float %x_GLF_color
+        %104 = OpCompositeConstruct %main_out %103
+               OpReturnValue %104
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %105 = OpLabel
-        %106 = OpFunctionCall %void %main_1
-        %108 = OpLoad %v4float %x_GLF_color
-        %109 = OpCompositeConstruct %main_out %108
-        %107 = OpFunctionCall %void %tint_symbol_2 %109
+        %106 = OpLabel
+        %107 = OpFunctionCall %main_out %main_inner
+        %108 = OpCompositeExtract %v4float %107 0
+               OpStore %x_GLF_color_1_1 %108
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.spvasm.expected.spvasm
index 03697ab..b46675e 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.spvasm.expected.spvasm
@@ -1,32 +1,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 76
+; Bound: 75
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -34,13 +38,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -53,7 +52,7 @@
        %true = OpConstantTrue %bool
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %64 = OpTypeFunction %void %main_out
+         %64 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -113,18 +112,17 @@
          %46 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %64
-%tint_symbol = OpFunctionParameter %main_out
-         %68 = OpLabel
-         %69 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %69
-               OpReturn
+ %main_inner = OpFunction %main_out None %64
+         %67 = OpLabel
+         %68 = OpFunctionCall %void %main_1
+         %69 = OpLoad %v4float %x_GLF_color
+         %70 = OpCompositeConstruct %main_out %69
+               OpReturnValue %70
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %71 = OpLabel
-         %72 = OpFunctionCall %void %main_1
-         %74 = OpLoad %v4float %x_GLF_color
-         %75 = OpCompositeConstruct %main_out %74
-         %73 = OpFunctionCall %void %tint_symbol_2 %75
+         %72 = OpLabel
+         %73 = OpFunctionCall %main_out %main_inner
+         %74 = OpCompositeExtract %v4float %73 0
+               OpStore %x_GLF_color_1_1 %74
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.wgsl.expected.spvasm
index 03697ab..b46675e 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.wgsl.expected.spvasm
@@ -1,32 +1,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 76
+; Bound: 75
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -34,13 +38,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -53,7 +52,7 @@
        %true = OpConstantTrue %bool
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %64 = OpTypeFunction %void %main_out
+         %64 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -113,18 +112,17 @@
          %46 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %64
-%tint_symbol = OpFunctionParameter %main_out
-         %68 = OpLabel
-         %69 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %69
-               OpReturn
+ %main_inner = OpFunction %main_out None %64
+         %67 = OpLabel
+         %68 = OpFunctionCall %void %main_1
+         %69 = OpLoad %v4float %x_GLF_color
+         %70 = OpCompositeConstruct %main_out %69
+               OpReturnValue %70
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %71 = OpLabel
-         %72 = OpFunctionCall %void %main_1
-         %74 = OpLoad %v4float %x_GLF_color
-         %75 = OpCompositeConstruct %main_out %74
-         %73 = OpFunctionCall %void %tint_symbol_2 %75
+         %72 = OpLabel
+         %73 = OpFunctionCall %main_out %main_inner
+         %74 = OpCompositeExtract %v4float %73 0
+               OpStore %x_GLF_color_1_1 %74
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.spvasm.expected.spvasm
index 5e511e0..16fd48a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.spvasm.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 69
+; Bound: 68
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "three"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -55,7 +54,7 @@
          %55 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %56 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %57 = OpTypeFunction %void %main_out
+         %57 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %18
@@ -110,18 +109,17 @@
          %50 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %57
-%tint_symbol = OpFunctionParameter %main_out
-         %61 = OpLabel
-         %62 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %62
-               OpReturn
+ %main_inner = OpFunction %main_out None %57
+         %60 = OpLabel
+         %61 = OpFunctionCall %void %main_1
+         %62 = OpLoad %v4float %x_GLF_color
+         %63 = OpCompositeConstruct %main_out %62
+               OpReturnValue %63
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %64 = OpLabel
-         %65 = OpFunctionCall %void %main_1
-         %67 = OpLoad %v4float %x_GLF_color
-         %68 = OpCompositeConstruct %main_out %67
-         %66 = OpFunctionCall %void %tint_symbol_2 %68
+         %65 = OpLabel
+         %66 = OpFunctionCall %main_out %main_inner
+         %67 = OpCompositeExtract %v4float %66 0
+               OpStore %x_GLF_color_1_1 %67
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.wgsl.expected.spvasm
index 5e511e0..16fd48a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 69
+; Bound: 68
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "three"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -55,7 +54,7 @@
          %55 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %56 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %57 = OpTypeFunction %void %main_out
+         %57 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %18
@@ -110,18 +109,17 @@
          %50 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %57
-%tint_symbol = OpFunctionParameter %main_out
-         %61 = OpLabel
-         %62 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %62
-               OpReturn
+ %main_inner = OpFunction %main_out None %57
+         %60 = OpLabel
+         %61 = OpFunctionCall %void %main_1
+         %62 = OpLoad %v4float %x_GLF_color
+         %63 = OpCompositeConstruct %main_out %62
+               OpReturnValue %63
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %64 = OpLabel
-         %65 = OpFunctionCall %void %main_1
-         %67 = OpLoad %v4float %x_GLF_color
-         %68 = OpCompositeConstruct %main_out %67
-         %66 = OpFunctionCall %void %tint_symbol_2 %68
+         %65 = OpLabel
+         %66 = OpFunctionCall %main_out %main_inner
+         %67 = OpCompositeExtract %v4float %66 0
+               OpStore %x_GLF_color_1_1 %67
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.spvasm.expected.spvasm
index 9d4d51a..a28e313 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 125
+; Bound: 124
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -14,7 +15,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %arr "arr"
                OpName %a "a"
@@ -24,9 +24,9 @@
                OpName %x_80_phi "x_80_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
@@ -39,10 +39,13 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_3_0 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
@@ -54,12 +57,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_arr_float_uint_3_0 = OpTypeArray %float %uint_3
@@ -78,7 +77,7 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
 %_ptr_Function_float = OpTypePointer Function %float
    %main_out = OpTypeStruct %v4float
-        %113 = OpTypeFunction %void %main_out
+        %113 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
         %arr = OpVariable %_ptr_Function__arr_float_uint_3_0 Function %26
@@ -189,18 +188,17 @@
          %96 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %113
-%tint_symbol = OpFunctionParameter %main_out
-        %117 = OpLabel
-        %118 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %118
-               OpReturn
+ %main_inner = OpFunction %main_out None %113
+        %116 = OpLabel
+        %117 = OpFunctionCall %void %main_1
+        %118 = OpLoad %v4float %x_GLF_color
+        %119 = OpCompositeConstruct %main_out %118
+               OpReturnValue %119
                OpFunctionEnd
        %main = OpFunction %void None %19
-        %120 = OpLabel
-        %121 = OpFunctionCall %void %main_1
-        %123 = OpLoad %v4float %x_GLF_color
-        %124 = OpCompositeConstruct %main_out %123
-        %122 = OpFunctionCall %void %tint_symbol_2 %124
+        %121 = OpLabel
+        %122 = OpFunctionCall %main_out %main_inner
+        %123 = OpCompositeExtract %v4float %122 0
+               OpStore %x_GLF_color_1_1 %123
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.wgsl.expected.spvasm
index 9d4d51a..a28e313 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 125
+; Bound: 124
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -14,7 +15,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %arr "arr"
                OpName %a "a"
@@ -24,9 +24,9 @@
                OpName %x_80_phi "x_80_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
@@ -39,10 +39,13 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_3_0 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
@@ -54,12 +57,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_arr_float_uint_3_0 = OpTypeArray %float %uint_3
@@ -78,7 +77,7 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
 %_ptr_Function_float = OpTypePointer Function %float
    %main_out = OpTypeStruct %v4float
-        %113 = OpTypeFunction %void %main_out
+        %113 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
         %arr = OpVariable %_ptr_Function__arr_float_uint_3_0 Function %26
@@ -189,18 +188,17 @@
          %96 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %113
-%tint_symbol = OpFunctionParameter %main_out
-        %117 = OpLabel
-        %118 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %118
-               OpReturn
+ %main_inner = OpFunction %main_out None %113
+        %116 = OpLabel
+        %117 = OpFunctionCall %void %main_1
+        %118 = OpLoad %v4float %x_GLF_color
+        %119 = OpCompositeConstruct %main_out %118
+               OpReturnValue %119
                OpFunctionEnd
        %main = OpFunction %void None %19
-        %120 = OpLabel
-        %121 = OpFunctionCall %void %main_1
-        %123 = OpLoad %v4float %x_GLF_color
-        %124 = OpCompositeConstruct %main_out %123
-        %122 = OpFunctionCall %void %tint_symbol_2 %124
+        %121 = OpLabel
+        %122 = OpFunctionCall %main_out %main_inner
+        %123 = OpCompositeExtract %v4float %122 0
+               OpStore %x_GLF_color_1_1 %123
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.spvasm.expected.spvasm
index 2189bcd..a563269 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 110
+; Bound: 109
 ; Schema: 0
                OpCapability Shader
          %59 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f0 "f0"
                OpName %f1 "f1"
@@ -24,9 +24,9 @@
                OpName %x_64_phi "x_64_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
@@ -39,9 +39,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
@@ -53,12 +56,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -76,7 +75,7 @@
 %float_1_10000002 = OpConstant %float 1.10000002
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %98 = OpTypeFunction %void %main_out
+         %98 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
          %f0 = OpVariable %_ptr_Function_float Function %25
@@ -168,18 +167,17 @@
          %78 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %98
-%tint_symbol = OpFunctionParameter %main_out
-        %102 = OpLabel
-        %103 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %103
-               OpReturn
+ %main_inner = OpFunction %main_out None %98
+        %101 = OpLabel
+        %102 = OpFunctionCall %void %main_1
+        %103 = OpLoad %v4float %x_GLF_color
+        %104 = OpCompositeConstruct %main_out %103
+               OpReturnValue %104
                OpFunctionEnd
        %main = OpFunction %void None %19
-        %105 = OpLabel
-        %106 = OpFunctionCall %void %main_1
-        %108 = OpLoad %v4float %x_GLF_color
-        %109 = OpCompositeConstruct %main_out %108
-        %107 = OpFunctionCall %void %tint_symbol_2 %109
+        %106 = OpLabel
+        %107 = OpFunctionCall %main_out %main_inner
+        %108 = OpCompositeExtract %v4float %107 0
+               OpStore %x_GLF_color_1_1 %108
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.wgsl.expected.spvasm
index 2189bcd..a563269 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 110
+; Bound: 109
 ; Schema: 0
                OpCapability Shader
          %59 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f0 "f0"
                OpName %f1 "f1"
@@ -24,9 +24,9 @@
                OpName %x_64_phi "x_64_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
@@ -39,9 +39,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
@@ -53,12 +56,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -76,7 +75,7 @@
 %float_1_10000002 = OpConstant %float 1.10000002
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %98 = OpTypeFunction %void %main_out
+         %98 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
          %f0 = OpVariable %_ptr_Function_float Function %25
@@ -168,18 +167,17 @@
          %78 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %98
-%tint_symbol = OpFunctionParameter %main_out
-        %102 = OpLabel
-        %103 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %103
-               OpReturn
+ %main_inner = OpFunction %main_out None %98
+        %101 = OpLabel
+        %102 = OpFunctionCall %void %main_1
+        %103 = OpLoad %v4float %x_GLF_color
+        %104 = OpCompositeConstruct %main_out %103
+               OpReturnValue %104
                OpFunctionEnd
        %main = OpFunction %void None %19
-        %105 = OpLabel
-        %106 = OpFunctionCall %void %main_1
-        %108 = OpLoad %v4float %x_GLF_color
-        %109 = OpCompositeConstruct %main_out %108
-        %107 = OpFunctionCall %void %tint_symbol_2 %109
+        %106 = OpLabel
+        %107 = OpFunctionCall %main_out %main_inner
+        %108 = OpCompositeExtract %v4float %107 0
+               OpStore %x_GLF_color_1_1 %108
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.spvasm.expected.spvasm
index 209a878..9036139 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.spvasm.expected.spvasm
@@ -1,52 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 110
+; Bound: 109
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_global_loop_count "x_GLF_global_loop_count"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %x_66_phi "x_66_phi"
                OpName %x_67 "x_67"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
 %_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %4
+          %9 = OpConstantNull %int
+%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %9
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
 %_arr_int_uint_4 = OpTypeArray %int %uint_4
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %15 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %15
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %15
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -59,11 +58,11 @@
      %int_10 = OpConstant %int 10
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %98 = OpTypeFunction %void %main_out
+         %98 = OpTypeFunction %main_out
       %func_ = OpFunction %void None %18
          %21 = OpLabel
-   %x_66_phi = OpVariable %_ptr_Function_int Function %4
-       %x_67 = OpVariable %_ptr_Function_int Function %4
+   %x_66_phi = OpVariable %_ptr_Function_int Function %9
+       %x_67 = OpVariable %_ptr_Function_int Function %9
          %27 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_1
          %28 = OpLoad %int %27
          %30 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0
@@ -176,18 +175,17 @@
          %84 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %98
-%tint_symbol = OpFunctionParameter %main_out
-        %102 = OpLabel
-        %103 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %103
-               OpReturn
+ %main_inner = OpFunction %main_out None %98
+        %101 = OpLabel
+        %102 = OpFunctionCall %void %main_1
+        %103 = OpLoad %v4float %x_GLF_color
+        %104 = OpCompositeConstruct %main_out %103
+               OpReturnValue %104
                OpFunctionEnd
        %main = OpFunction %void None %18
-        %105 = OpLabel
-        %106 = OpFunctionCall %void %main_1
-        %108 = OpLoad %v4float %x_GLF_color
-        %109 = OpCompositeConstruct %main_out %108
-        %107 = OpFunctionCall %void %tint_symbol_2 %109
+        %106 = OpLabel
+        %107 = OpFunctionCall %main_out %main_inner
+        %108 = OpCompositeExtract %v4float %107 0
+               OpStore %x_GLF_color_1_1 %108
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.wgsl.expected.spvasm
index 209a878..9036139 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.wgsl.expected.spvasm
@@ -1,52 +1,51 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 110
+; Bound: 109
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_global_loop_count "x_GLF_global_loop_count"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %x_66_phi "x_66_phi"
                OpName %x_67 "x_67"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
 %_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %4
+          %9 = OpConstantNull %int
+%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %9
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
 %_arr_int_uint_4 = OpTypeArray %int %uint_4
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %15 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %15
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %15
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -59,11 +58,11 @@
      %int_10 = OpConstant %int 10
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %98 = OpTypeFunction %void %main_out
+         %98 = OpTypeFunction %main_out
       %func_ = OpFunction %void None %18
          %21 = OpLabel
-   %x_66_phi = OpVariable %_ptr_Function_int Function %4
-       %x_67 = OpVariable %_ptr_Function_int Function %4
+   %x_66_phi = OpVariable %_ptr_Function_int Function %9
+       %x_67 = OpVariable %_ptr_Function_int Function %9
          %27 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_1
          %28 = OpLoad %int %27
          %30 = OpAccessChain %_ptr_Uniform_int %x_7 %uint_0 %int_0
@@ -176,18 +175,17 @@
          %84 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %98
-%tint_symbol = OpFunctionParameter %main_out
-        %102 = OpLabel
-        %103 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %103
-               OpReturn
+ %main_inner = OpFunction %main_out None %98
+        %101 = OpLabel
+        %102 = OpFunctionCall %void %main_1
+        %103 = OpLoad %v4float %x_GLF_color
+        %104 = OpCompositeConstruct %main_out %103
+               OpReturnValue %104
                OpFunctionEnd
        %main = OpFunction %void None %18
-        %105 = OpLabel
-        %106 = OpFunctionCall %void %main_1
-        %108 = OpLoad %v4float %x_GLF_color
-        %109 = OpCompositeConstruct %main_out %108
-        %107 = OpFunctionCall %void %tint_symbol_2 %109
+        %106 = OpLabel
+        %107 = OpFunctionCall %main_out %main_inner
+        %108 = OpCompositeExtract %v4float %107 0
+               OpStore %x_GLF_color_1_1 %108
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.spvasm.expected.spvasm
index 413b393..823ca34 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.spvasm.expected.spvasm
@@ -1,46 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 78
+; Bound: 77
 ; Schema: 0
                OpCapability Shader
          %52 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
                OpName %c "c"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_3 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -64,7 +63,7 @@
          %64 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %65 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %66 = OpTypeFunction %void %main_out
+         %66 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function__arr_int_uint_3 Function %21
@@ -116,18 +115,17 @@
          %61 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %66
-%tint_symbol = OpFunctionParameter %main_out
-         %70 = OpLabel
-         %71 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %71
-               OpReturn
+ %main_inner = OpFunction %main_out None %66
+         %69 = OpLabel
+         %70 = OpFunctionCall %void %main_1
+         %71 = OpLoad %v4float %x_GLF_color
+         %72 = OpCompositeConstruct %main_out %71
+               OpReturnValue %72
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %73 = OpLabel
-         %74 = OpFunctionCall %void %main_1
-         %76 = OpLoad %v4float %x_GLF_color
-         %77 = OpCompositeConstruct %main_out %76
-         %75 = OpFunctionCall %void %tint_symbol_2 %77
+         %74 = OpLabel
+         %75 = OpFunctionCall %main_out %main_inner
+         %76 = OpCompositeExtract %v4float %75 0
+               OpStore %x_GLF_color_1_1 %76
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.wgsl.expected.spvasm
index 413b393..823ca34 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.wgsl.expected.spvasm
@@ -1,46 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 78
+; Bound: 77
 ; Schema: 0
                OpCapability Shader
          %52 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
                OpName %c "c"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_3 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -64,7 +63,7 @@
          %64 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %65 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %66 = OpTypeFunction %void %main_out
+         %66 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function__arr_int_uint_3 Function %21
@@ -116,18 +115,17 @@
          %61 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %66
-%tint_symbol = OpFunctionParameter %main_out
-         %70 = OpLabel
-         %71 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %71
-               OpReturn
+ %main_inner = OpFunction %main_out None %66
+         %69 = OpLabel
+         %70 = OpFunctionCall %void %main_1
+         %71 = OpLoad %v4float %x_GLF_color
+         %72 = OpCompositeConstruct %main_out %71
+               OpReturnValue %72
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %73 = OpLabel
-         %74 = OpFunctionCall %void %main_1
-         %76 = OpLoad %v4float %x_GLF_color
-         %77 = OpCompositeConstruct %main_out %76
-         %75 = OpFunctionCall %void %tint_symbol_2 %77
+         %74 = OpLabel
+         %75 = OpFunctionCall %main_out %main_inner
+         %76 = OpCompositeExtract %v4float %75 0
+               OpStore %x_GLF_color_1_1 %76
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.spvasm.expected.spvasm
index 761bab9..181a7a2 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.spvasm.expected.spvasm
@@ -1,35 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 103
+; Bound: 102
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %indexable "indexable"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_5 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_9 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
@@ -37,13 +41,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -67,7 +66,7 @@
       %int_9 = OpConstant %int 9
          %59 = OpConstantComposite %_arr_int_uint_9 %int_1 %int_2 %int_3 %int_4 %int_5 %int_6 %int_7 %int_8 %int_9
    %main_out = OpTypeStruct %v4float
-         %91 = OpTypeFunction %void %main_out
+         %91 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -144,18 +143,17 @@
          %71 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %91
-%tint_symbol = OpFunctionParameter %main_out
-         %95 = OpLabel
-         %96 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %96
-               OpReturn
+ %main_inner = OpFunction %main_out None %91
+         %94 = OpLabel
+         %95 = OpFunctionCall %void %main_1
+         %96 = OpLoad %v4float %x_GLF_color
+         %97 = OpCompositeConstruct %main_out %96
+               OpReturnValue %97
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %98 = OpLabel
-         %99 = OpFunctionCall %void %main_1
-        %101 = OpLoad %v4float %x_GLF_color
-        %102 = OpCompositeConstruct %main_out %101
-        %100 = OpFunctionCall %void %tint_symbol_2 %102
+         %99 = OpLabel
+        %100 = OpFunctionCall %main_out %main_inner
+        %101 = OpCompositeExtract %v4float %100 0
+               OpStore %x_GLF_color_1_1 %101
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.wgsl.expected.spvasm
index 761bab9..181a7a2 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.wgsl.expected.spvasm
@@ -1,35 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 103
+; Bound: 102
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %indexable "indexable"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_5 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_9 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
@@ -37,13 +41,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -67,7 +66,7 @@
       %int_9 = OpConstant %int 9
          %59 = OpConstantComposite %_arr_int_uint_9 %int_1 %int_2 %int_3 %int_4 %int_5 %int_6 %int_7 %int_8 %int_9
    %main_out = OpTypeStruct %v4float
-         %91 = OpTypeFunction %void %main_out
+         %91 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -144,18 +143,17 @@
          %71 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %91
-%tint_symbol = OpFunctionParameter %main_out
-         %95 = OpLabel
-         %96 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %96
-               OpReturn
+ %main_inner = OpFunction %main_out None %91
+         %94 = OpLabel
+         %95 = OpFunctionCall %void %main_1
+         %96 = OpLoad %v4float %x_GLF_color
+         %97 = OpCompositeConstruct %main_out %96
+               OpReturnValue %97
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %98 = OpLabel
-         %99 = OpFunctionCall %void %main_1
-        %101 = OpLoad %v4float %x_GLF_color
-        %102 = OpCompositeConstruct %main_out %101
-        %100 = OpFunctionCall %void %tint_symbol_2 %102
+         %99 = OpLabel
+        %100 = OpFunctionCall %main_out %main_inner
+        %101 = OpCompositeExtract %v4float %100 0
+               OpStore %x_GLF_color_1_1 %101
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.spvasm
index 0a7063b..d0e8ea0 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 133
+; Bound: 132
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
@@ -22,17 +22,21 @@
                OpName %x_84_phi "x_84_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_5 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
@@ -40,13 +44,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -64,7 +63,7 @@
       %int_5 = OpConstant %int 5
       %int_3 = OpConstant %int 3
    %main_out = OpTypeStruct %v4float
-        %121 = OpTypeFunction %void %main_out
+        %121 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -203,18 +202,17 @@
         %101 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %121
-%tint_symbol = OpFunctionParameter %main_out
-        %125 = OpLabel
-        %126 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %126
-               OpReturn
+ %main_inner = OpFunction %main_out None %121
+        %124 = OpLabel
+        %125 = OpFunctionCall %void %main_1
+        %126 = OpLoad %v4float %x_GLF_color
+        %127 = OpCompositeConstruct %main_out %126
+               OpReturnValue %127
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %128 = OpLabel
-        %129 = OpFunctionCall %void %main_1
-        %131 = OpLoad %v4float %x_GLF_color
-        %132 = OpCompositeConstruct %main_out %131
-        %130 = OpFunctionCall %void %tint_symbol_2 %132
+        %129 = OpLabel
+        %130 = OpFunctionCall %main_out %main_inner
+        %131 = OpCompositeExtract %v4float %130 0
+               OpStore %x_GLF_color_1_1 %131
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.wgsl.expected.spvasm
index 94f92e8..dd6dbe2 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 135
+; Bound: 134
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
@@ -22,17 +22,21 @@
                OpName %x_84_phi "x_84_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_5 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
@@ -40,13 +44,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -64,7 +63,7 @@
       %int_5 = OpConstant %int 5
       %int_3 = OpConstant %int 3
    %main_out = OpTypeStruct %v4float
-        %123 = OpTypeFunction %void %main_out
+        %123 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -208,18 +207,17 @@
         %103 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %123
-%tint_symbol = OpFunctionParameter %main_out
-        %127 = OpLabel
-        %128 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %128
-               OpReturn
+ %main_inner = OpFunction %main_out None %123
+        %126 = OpLabel
+        %127 = OpFunctionCall %void %main_1
+        %128 = OpLoad %v4float %x_GLF_color
+        %129 = OpCompositeConstruct %main_out %128
+               OpReturnValue %129
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %130 = OpLabel
-        %131 = OpFunctionCall %void %main_1
-        %133 = OpLoad %v4float %x_GLF_color
-        %134 = OpCompositeConstruct %main_out %133
-        %132 = OpFunctionCall %void %tint_symbol_2 %134
+        %131 = OpLabel
+        %132 = OpFunctionCall %main_out %main_inner
+        %133 = OpCompositeExtract %v4float %132 0
+               OpStore %x_GLF_color_1_1 %133
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.spvasm.expected.spvasm
index dcf9f7f..27ab1ca 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 122
+; Bound: 121
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -14,7 +15,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m "m"
                OpName %a "a"
@@ -22,9 +22,9 @@
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
@@ -37,9 +37,13 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_v3float_uint_2 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -47,18 +51,13 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf1 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -84,7 +83,7 @@
      %v3bool = OpTypeVector %bool 3
       %int_3 = OpConstant %int 3
    %main_out = OpTypeStruct %v4float
-        %110 = OpTypeFunction %void %main_out
+        %110 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %m = OpVariable %_ptr_Function_mat3v3float Function %28
@@ -165,18 +164,17 @@
          %89 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %110
-%tint_symbol = OpFunctionParameter %main_out
-        %114 = OpLabel
-        %115 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %115
-               OpReturn
+ %main_inner = OpFunction %main_out None %110
+        %113 = OpLabel
+        %114 = OpFunctionCall %void %main_1
+        %115 = OpLoad %v4float %x_GLF_color
+        %116 = OpCompositeConstruct %main_out %115
+               OpReturnValue %116
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %117 = OpLabel
-        %118 = OpFunctionCall %void %main_1
-        %120 = OpLoad %v4float %x_GLF_color
-        %121 = OpCompositeConstruct %main_out %120
-        %119 = OpFunctionCall %void %tint_symbol_2 %121
+        %118 = OpLabel
+        %119 = OpFunctionCall %main_out %main_inner
+        %120 = OpCompositeExtract %v4float %119 0
+               OpStore %x_GLF_color_1_1 %120
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.wgsl.expected.spvasm
index dcf9f7f..27ab1ca 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 122
+; Bound: 121
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -14,7 +15,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m "m"
                OpName %a "a"
@@ -22,9 +22,9 @@
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
@@ -37,9 +37,13 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_v3float_uint_2 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -47,18 +51,13 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf1 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -84,7 +83,7 @@
      %v3bool = OpTypeVector %bool 3
       %int_3 = OpConstant %int 3
    %main_out = OpTypeStruct %v4float
-        %110 = OpTypeFunction %void %main_out
+        %110 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %m = OpVariable %_ptr_Function_mat3v3float Function %28
@@ -165,18 +164,17 @@
          %89 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %110
-%tint_symbol = OpFunctionParameter %main_out
-        %114 = OpLabel
-        %115 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %115
-               OpReturn
+ %main_inner = OpFunction %main_out None %110
+        %113 = OpLabel
+        %114 = OpFunctionCall %void %main_1
+        %115 = OpLoad %v4float %x_GLF_color
+        %116 = OpCompositeConstruct %main_out %115
+               OpReturnValue %116
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %117 = OpLabel
-        %118 = OpFunctionCall %void %main_1
-        %120 = OpLoad %v4float %x_GLF_color
-        %121 = OpCompositeConstruct %main_out %120
-        %119 = OpFunctionCall %void %tint_symbol_2 %121
+        %118 = OpLabel
+        %119 = OpFunctionCall %main_out %main_inner
+        %120 = OpCompositeExtract %v4float %119 0
+               OpStore %x_GLF_color_1_1 %120
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.spvasm.expected.spvasm
index 03ce671..38c5268 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 141
+; Bound: 140
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -14,7 +15,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %v "v"
@@ -22,9 +22,9 @@
                OpName %indexable "indexable"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -37,8 +37,12 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -46,18 +50,13 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
      %uint_4 = OpConstant %uint 4
 %_arr_float_uint_4 = OpTypeArray %float %uint_4
        %buf1 = OpTypeStruct %_arr_float_uint_4
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -83,11 +82,11 @@
       %int_1 = OpConstant %int 1
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-        %129 = OpTypeFunction %void %main_out
+        %129 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %26
-          %v = OpVariable %_ptr_Function_v4float Function %17
+          %v = OpVariable %_ptr_Function_v4float Function %5
           %m = OpVariable %_ptr_Function_mat3v4float Function %32
   %indexable = OpVariable %_ptr_Function_mat4v4float Function %36
          %40 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
@@ -183,18 +182,17 @@
         %109 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %129
-%tint_symbol = OpFunctionParameter %main_out
-        %133 = OpLabel
-        %134 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %134
-               OpReturn
+ %main_inner = OpFunction %main_out None %129
+        %132 = OpLabel
+        %133 = OpFunctionCall %void %main_1
+        %134 = OpLoad %v4float %x_GLF_color
+        %135 = OpCompositeConstruct %main_out %134
+               OpReturnValue %135
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %136 = OpLabel
-        %137 = OpFunctionCall %void %main_1
-        %139 = OpLoad %v4float %x_GLF_color
-        %140 = OpCompositeConstruct %main_out %139
-        %138 = OpFunctionCall %void %tint_symbol_2 %140
+        %137 = OpLabel
+        %138 = OpFunctionCall %main_out %main_inner
+        %139 = OpCompositeExtract %v4float %138 0
+               OpStore %x_GLF_color_1_1 %139
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.wgsl.expected.spvasm
index 03ce671..38c5268 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 141
+; Bound: 140
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -14,7 +15,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %v "v"
@@ -22,9 +22,9 @@
                OpName %indexable "indexable"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -37,8 +37,12 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -46,18 +50,13 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
      %uint_4 = OpConstant %uint 4
 %_arr_float_uint_4 = OpTypeArray %float %uint_4
        %buf1 = OpTypeStruct %_arr_float_uint_4
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -83,11 +82,11 @@
       %int_1 = OpConstant %int 1
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-        %129 = OpTypeFunction %void %main_out
+        %129 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %26
-          %v = OpVariable %_ptr_Function_v4float Function %17
+          %v = OpVariable %_ptr_Function_v4float Function %5
           %m = OpVariable %_ptr_Function_mat3v4float Function %32
   %indexable = OpVariable %_ptr_Function_mat4v4float Function %36
          %40 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
@@ -183,18 +182,17 @@
         %109 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %129
-%tint_symbol = OpFunctionParameter %main_out
-        %133 = OpLabel
-        %134 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %134
-               OpReturn
+ %main_inner = OpFunction %main_out None %129
+        %132 = OpLabel
+        %133 = OpFunctionCall %void %main_1
+        %134 = OpLoad %v4float %x_GLF_color
+        %135 = OpCompositeConstruct %main_out %134
+               OpReturnValue %135
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %136 = OpLabel
-        %137 = OpFunctionCall %void %main_1
-        %139 = OpLoad %v4float %x_GLF_color
-        %140 = OpCompositeConstruct %main_out %139
-        %138 = OpFunctionCall %void %tint_symbol_2 %140
+        %137 = OpLabel
+        %138 = OpFunctionCall %main_out %main_inner
+        %139 = OpCompositeExtract %v4float %138 0
+               OpStore %x_GLF_color_1_1 %139
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.spvasm.expected.spvasm
index 62468de..db453f3 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.spvasm.expected.spvasm
@@ -5,33 +5,33 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %func_ "func_"
                OpName %x "x"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
          %11 = OpTypeFunction %v4float
 %_ptr_Function_float = OpTypePointer Function %float
          %16 = OpConstantNull %float
@@ -47,7 +47,7 @@
          %35 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
       %false = OpConstantFalse %bool
    %main_out = OpTypeStruct %v4float
-         %45 = OpTypeFunction %void %main_out
+         %45 = OpTypeFunction %main_out %v4float
       %func_ = OpFunction %v4float None %11
          %13 = OpLabel
           %x = OpVariable %_ptr_Function_float Function %16
@@ -88,20 +88,20 @@
          %37 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %45
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %45
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %49 = OpLabel
-         %50 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %50
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %50 = OpFunctionCall %void %main_1
+         %51 = OpLoad %v4float %x_GLF_color
+         %52 = OpCompositeConstruct %main_out %51
+               OpReturnValue %52
                OpFunctionEnd
        %main = OpFunction %void None %31
-         %52 = OpLabel
-         %53 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %53
-         %54 = OpFunctionCall %void %main_1
-         %56 = OpLoad %v4float %x_GLF_color
-         %57 = OpCompositeConstruct %main_out %56
-         %55 = OpFunctionCall %void %tint_symbol_3 %57
+         %54 = OpLabel
+         %56 = OpLoad %v4float %gl_FragCoord_param_1
+         %55 = OpFunctionCall %main_out %main_inner %56
+         %57 = OpCompositeExtract %v4float %55 0
+               OpStore %x_GLF_color_1_1 %57
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.wgsl.expected.spvasm
index 62468de..db453f3 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.wgsl.expected.spvasm
@@ -5,33 +5,33 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %func_ "func_"
                OpName %x "x"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
          %11 = OpTypeFunction %v4float
 %_ptr_Function_float = OpTypePointer Function %float
          %16 = OpConstantNull %float
@@ -47,7 +47,7 @@
          %35 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
       %false = OpConstantFalse %bool
    %main_out = OpTypeStruct %v4float
-         %45 = OpTypeFunction %void %main_out
+         %45 = OpTypeFunction %main_out %v4float
       %func_ = OpFunction %v4float None %11
          %13 = OpLabel
           %x = OpVariable %_ptr_Function_float Function %16
@@ -88,20 +88,20 @@
          %37 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %45
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %45
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %49 = OpLabel
-         %50 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %50
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %50 = OpFunctionCall %void %main_1
+         %51 = OpLoad %v4float %x_GLF_color
+         %52 = OpCompositeConstruct %main_out %51
+               OpReturnValue %52
                OpFunctionEnd
        %main = OpFunction %void None %31
-         %52 = OpLabel
-         %53 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %53
-         %54 = OpFunctionCall %void %main_1
-         %56 = OpLoad %v4float %x_GLF_color
-         %57 = OpCompositeConstruct %main_out %56
-         %55 = OpFunctionCall %void %tint_symbol_3 %57
+         %54 = OpLabel
+         %56 = OpLoad %v4float %gl_FragCoord_param_1
+         %55 = OpFunctionCall %main_out %main_inner %56
+         %57 = OpCompositeExtract %v4float %55 0
+               OpStore %x_GLF_color_1_1 %57
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.spvasm.expected.spvasm
index f712093..6265fa8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 80
+; Bound: 79
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %returnRed_ "returnRed_"
                OpName %x_33 "x_33"
                OpName %x_34 "x_34"
@@ -23,27 +23,26 @@
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
          %12 = OpTypeFunction %v4float
        %bool = OpTypeBool
       %false = OpConstantFalse %bool
@@ -62,15 +61,15 @@
        %void = OpTypeVoid
          %56 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %68 = OpTypeFunction %void %main_out
+         %68 = OpTypeFunction %main_out
  %returnRed_ = OpFunction %v4float None %12
          %14 = OpLabel
        %x_33 = OpVariable %_ptr_Function_bool Function %19
-       %x_34 = OpVariable %_ptr_Function_v4float Function %9
-       %x_48 = OpVariable %_ptr_Function_v4float Function %9
+       %x_34 = OpVariable %_ptr_Function_v4float Function %5
+       %x_48 = OpVariable %_ptr_Function_v4float Function %5
    %x_36_phi = OpVariable %_ptr_Function_bool Function %19
-   %x_51_phi = OpVariable %_ptr_Function_v4float Function %9
-   %x_48_phi = OpVariable %_ptr_Function_v4float Function %9
+   %x_51_phi = OpVariable %_ptr_Function_v4float Function %5
+   %x_48_phi = OpVariable %_ptr_Function_v4float Function %5
    %x_49_phi = OpVariable %_ptr_Function_bool Function %19
                OpStore %x_33 %false
                OpStore %x_36_phi %false
@@ -146,18 +145,17 @@
          %61 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %68
-%tint_symbol = OpFunctionParameter %main_out
-         %72 = OpLabel
-         %73 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %73
-               OpReturn
+ %main_inner = OpFunction %main_out None %68
+         %71 = OpLabel
+         %72 = OpFunctionCall %void %main_1
+         %73 = OpLoad %v4float %x_GLF_color
+         %74 = OpCompositeConstruct %main_out %73
+               OpReturnValue %74
                OpFunctionEnd
        %main = OpFunction %void None %56
-         %75 = OpLabel
-         %76 = OpFunctionCall %void %main_1
-         %78 = OpLoad %v4float %x_GLF_color
-         %79 = OpCompositeConstruct %main_out %78
-         %77 = OpFunctionCall %void %tint_symbol_2 %79
+         %76 = OpLabel
+         %77 = OpFunctionCall %main_out %main_inner
+         %78 = OpCompositeExtract %v4float %77 0
+               OpStore %x_GLF_color_1_1 %78
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.wgsl.expected.spvasm
index f712093..6265fa8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 80
+; Bound: 79
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %returnRed_ "returnRed_"
                OpName %x_33 "x_33"
                OpName %x_34 "x_34"
@@ -23,27 +23,26 @@
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
          %12 = OpTypeFunction %v4float
        %bool = OpTypeBool
       %false = OpConstantFalse %bool
@@ -62,15 +61,15 @@
        %void = OpTypeVoid
          %56 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %68 = OpTypeFunction %void %main_out
+         %68 = OpTypeFunction %main_out
  %returnRed_ = OpFunction %v4float None %12
          %14 = OpLabel
        %x_33 = OpVariable %_ptr_Function_bool Function %19
-       %x_34 = OpVariable %_ptr_Function_v4float Function %9
-       %x_48 = OpVariable %_ptr_Function_v4float Function %9
+       %x_34 = OpVariable %_ptr_Function_v4float Function %5
+       %x_48 = OpVariable %_ptr_Function_v4float Function %5
    %x_36_phi = OpVariable %_ptr_Function_bool Function %19
-   %x_51_phi = OpVariable %_ptr_Function_v4float Function %9
-   %x_48_phi = OpVariable %_ptr_Function_v4float Function %9
+   %x_51_phi = OpVariable %_ptr_Function_v4float Function %5
+   %x_48_phi = OpVariable %_ptr_Function_v4float Function %5
    %x_49_phi = OpVariable %_ptr_Function_bool Function %19
                OpStore %x_33 %false
                OpStore %x_36_phi %false
@@ -146,18 +145,17 @@
          %61 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %68
-%tint_symbol = OpFunctionParameter %main_out
-         %72 = OpLabel
-         %73 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %73
-               OpReturn
+ %main_inner = OpFunction %main_out None %68
+         %71 = OpLabel
+         %72 = OpFunctionCall %void %main_1
+         %73 = OpLoad %v4float %x_GLF_color
+         %74 = OpCompositeConstruct %main_out %73
+               OpReturnValue %74
                OpFunctionEnd
        %main = OpFunction %void None %56
-         %75 = OpLabel
-         %76 = OpFunctionCall %void %main_1
-         %78 = OpLoad %v4float %x_GLF_color
-         %79 = OpCompositeConstruct %main_out %78
-         %77 = OpFunctionCall %void %tint_symbol_2 %79
+         %76 = OpLabel
+         %77 = OpFunctionCall %main_out %main_inner
+         %78 = OpCompositeExtract %v4float %77 0
+               OpStore %x_GLF_color_1_1 %78
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.spvasm.expected.spvasm
index f2a69e2..f0cbfb3 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.spvasm.expected.spvasm
@@ -1,31 +1,30 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 67
+; Bound: 66
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %i "i"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
           %8 = OpTypeFunction %float
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -43,7 +42,7 @@
       %false = OpConstantFalse %bool
          %54 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %55 = OpTypeFunction %void %main_out
+         %55 = OpTypeFunction %main_out
       %func_ = OpFunction %float None %8
          %10 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %14
@@ -103,18 +102,17 @@
          %49 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %55
-%tint_symbol = OpFunctionParameter %main_out
-         %59 = OpLabel
-         %60 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %60
-               OpReturn
+ %main_inner = OpFunction %main_out None %55
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %main_1
+         %60 = OpLoad %v4float %x_GLF_color
+         %61 = OpCompositeConstruct %main_out %60
+               OpReturnValue %61
                OpFunctionEnd
        %main = OpFunction %void None %44
-         %62 = OpLabel
-         %63 = OpFunctionCall %void %main_1
-         %65 = OpLoad %v4float %x_GLF_color
-         %66 = OpCompositeConstruct %main_out %65
-         %64 = OpFunctionCall %void %tint_symbol_2 %66
+         %63 = OpLabel
+         %64 = OpFunctionCall %main_out %main_inner
+         %65 = OpCompositeExtract %v4float %64 0
+               OpStore %x_GLF_color_1_1 %65
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.wgsl.expected.spvasm
index f2a69e2..f0cbfb3 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.wgsl.expected.spvasm
@@ -1,31 +1,30 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 67
+; Bound: 66
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %i "i"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
           %8 = OpTypeFunction %float
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -43,7 +42,7 @@
       %false = OpConstantFalse %bool
          %54 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %55 = OpTypeFunction %void %main_out
+         %55 = OpTypeFunction %main_out
       %func_ = OpFunction %float None %8
          %10 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %14
@@ -103,18 +102,17 @@
          %49 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %55
-%tint_symbol = OpFunctionParameter %main_out
-         %59 = OpLabel
-         %60 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %60
-               OpReturn
+ %main_inner = OpFunction %main_out None %55
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %main_1
+         %60 = OpLoad %v4float %x_GLF_color
+         %61 = OpCompositeConstruct %main_out %60
+               OpReturnValue %61
                OpFunctionEnd
        %main = OpFunction %void None %44
-         %62 = OpLabel
-         %63 = OpFunctionCall %void %main_1
-         %65 = OpLoad %v4float %x_GLF_color
-         %66 = OpCompositeConstruct %main_out %65
-         %64 = OpFunctionCall %void %tint_symbol_2 %66
+         %63 = OpLabel
+         %64 = OpFunctionCall %main_out %main_inner
+         %65 = OpCompositeExtract %v4float %64 0
+               OpStore %x_GLF_color_1_1 %65
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.spvasm.expected.spvasm
index eaaf448..782abec 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.spvasm.expected.spvasm
@@ -5,33 +5,33 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %func_ "func_"
                OpName %x "x"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
          %11 = OpTypeFunction %float
 %_ptr_Function_float = OpTypePointer Function %float
          %16 = OpConstantNull %float
@@ -50,7 +50,7 @@
     %float_0 = OpConstant %float 0
          %50 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %51 = OpTypeFunction %void %main_out
+         %51 = OpTypeFunction %main_out %v4float
       %func_ = OpFunction %float None %11
          %13 = OpLabel
           %x = OpVariable %_ptr_Function_float Function %16
@@ -92,20 +92,20 @@
          %44 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %51
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %51
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %55 = OpLabel
-         %56 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %56
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %56 = OpFunctionCall %void %main_1
+         %57 = OpLoad %v4float %x_GLF_color
+         %58 = OpCompositeConstruct %main_out %57
+               OpReturnValue %58
                OpFunctionEnd
        %main = OpFunction %void None %39
-         %58 = OpLabel
-         %59 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %59
-         %60 = OpFunctionCall %void %main_1
-         %62 = OpLoad %v4float %x_GLF_color
-         %63 = OpCompositeConstruct %main_out %62
-         %61 = OpFunctionCall %void %tint_symbol_3 %63
+         %60 = OpLabel
+         %62 = OpLoad %v4float %gl_FragCoord_param_1
+         %61 = OpFunctionCall %main_out %main_inner %62
+         %63 = OpCompositeExtract %v4float %61 0
+               OpStore %x_GLF_color_1_1 %63
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.wgsl.expected.spvasm
index eaaf448..782abec 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.wgsl.expected.spvasm
@@ -5,33 +5,33 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %func_ "func_"
                OpName %x "x"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
          %11 = OpTypeFunction %float
 %_ptr_Function_float = OpTypePointer Function %float
          %16 = OpConstantNull %float
@@ -50,7 +50,7 @@
     %float_0 = OpConstant %float 0
          %50 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %51 = OpTypeFunction %void %main_out
+         %51 = OpTypeFunction %main_out %v4float
       %func_ = OpFunction %float None %11
          %13 = OpLabel
           %x = OpVariable %_ptr_Function_float Function %16
@@ -92,20 +92,20 @@
          %44 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %51
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %51
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %55 = OpLabel
-         %56 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %56
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %56 = OpFunctionCall %void %main_1
+         %57 = OpLoad %v4float %x_GLF_color
+         %58 = OpCompositeConstruct %main_out %57
+               OpReturnValue %58
                OpFunctionEnd
        %main = OpFunction %void None %39
-         %58 = OpLabel
-         %59 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %59
-         %60 = OpFunctionCall %void %main_1
-         %62 = OpLoad %v4float %x_GLF_color
-         %63 = OpCompositeConstruct %main_out %62
-         %61 = OpFunctionCall %void %tint_symbol_3 %63
+         %60 = OpLabel
+         %62 = OpLoad %v4float %gl_FragCoord_param_1
+         %61 = OpFunctionCall %main_out %main_inner %62
+         %63 = OpCompositeExtract %v4float %61 0
+               OpStore %x_GLF_color_1_1 %63
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.spvasm.expected.spvasm
index e953d6b..65424da 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
@@ -15,17 +17,17 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_11 "x_11"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %arr "arr"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -38,10 +40,15 @@
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -49,21 +56,14 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_7 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %12
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_11 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -82,7 +82,7 @@
 %_ptr_Private_float = OpTypePointer Private %float
 %_ptr_Uniform_float = OpTypePointer Uniform %float
    %main_out = OpTypeStruct %v4float
-        %107 = OpTypeFunction %void %main_out
+        %107 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %29
@@ -178,20 +178,20 @@
          %89 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %107
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %107
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %111 = OpLabel
-        %112 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %112
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %112 = OpFunctionCall %void %main_1
+        %113 = OpLoad %v4float %x_GLF_color
+        %114 = OpCompositeConstruct %main_out %113
+               OpReturnValue %114
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %114 = OpLabel
-        %115 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %115
-        %116 = OpFunctionCall %void %main_1
-        %118 = OpLoad %v4float %x_GLF_color
-        %119 = OpCompositeConstruct %main_out %118
-        %117 = OpFunctionCall %void %tint_symbol_3 %119
+        %116 = OpLabel
+        %118 = OpLoad %v4float %gl_FragCoord_param_1
+        %117 = OpFunctionCall %main_out %main_inner %118
+        %119 = OpCompositeExtract %v4float %117 0
+               OpStore %x_GLF_color_1_1 %119
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.wgsl.expected.spvasm
index e953d6b..65424da 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
@@ -15,17 +17,17 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_11 "x_11"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %arr "arr"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -38,10 +40,15 @@
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -49,21 +56,14 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_7 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %12
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_11 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -82,7 +82,7 @@
 %_ptr_Private_float = OpTypePointer Private %float
 %_ptr_Uniform_float = OpTypePointer Uniform %float
    %main_out = OpTypeStruct %v4float
-        %107 = OpTypeFunction %void %main_out
+        %107 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %29
@@ -178,20 +178,20 @@
          %89 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %107
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %107
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %111 = OpLabel
-        %112 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %112
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %112 = OpFunctionCall %void %main_1
+        %113 = OpLoad %v4float %x_GLF_color
+        %114 = OpCompositeConstruct %main_out %113
+               OpReturnValue %114
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %114 = OpLabel
-        %115 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %115
-        %116 = OpFunctionCall %void %main_1
-        %118 = OpLoad %v4float %x_GLF_color
-        %119 = OpCompositeConstruct %main_out %118
-        %117 = OpFunctionCall %void %tint_symbol_3 %119
+        %116 = OpLabel
+        %118 = OpLoad %v4float %gl_FragCoord_param_1
+        %117 = OpFunctionCall %main_out %main_inner %118
+        %119 = OpCompositeExtract %v4float %117 0
+               OpStore %x_GLF_color_1_1 %119
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.spvasm.expected.spvasm
index 895c6ea..cab9df1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 97
+; Bound: 96
 ; Schema: 0
                OpCapability Shader
          %56 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -15,16 +16,15 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -37,8 +37,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -46,18 +50,13 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -72,7 +71,7 @@
 %_ptr_Uniform_float = OpTypePointer Uniform %float
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %85 = OpTypeFunction %void %main_out
+         %85 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %26
@@ -146,18 +145,17 @@
          %66 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %85
-%tint_symbol = OpFunctionParameter %main_out
-         %89 = OpLabel
-         %90 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %90
-               OpReturn
+ %main_inner = OpFunction %main_out None %85
+         %88 = OpLabel
+         %89 = OpFunctionCall %void %main_1
+         %90 = OpLoad %v4float %x_GLF_color
+         %91 = OpCompositeConstruct %main_out %90
+               OpReturnValue %91
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %92 = OpLabel
-         %93 = OpFunctionCall %void %main_1
-         %95 = OpLoad %v4float %x_GLF_color
-         %96 = OpCompositeConstruct %main_out %95
-         %94 = OpFunctionCall %void %tint_symbol_2 %96
+         %93 = OpLabel
+         %94 = OpFunctionCall %main_out %main_inner
+         %95 = OpCompositeExtract %v4float %94 0
+               OpStore %x_GLF_color_1_1 %95
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.wgsl.expected.spvasm
index 895c6ea..cab9df1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 97
+; Bound: 96
 ; Schema: 0
                OpCapability Shader
          %56 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -15,16 +16,15 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -37,8 +37,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -46,18 +50,13 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -72,7 +71,7 @@
 %_ptr_Uniform_float = OpTypePointer Uniform %float
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %85 = OpTypeFunction %void %main_out
+         %85 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %26
@@ -146,18 +145,17 @@
          %66 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %85
-%tint_symbol = OpFunctionParameter %main_out
-         %89 = OpLabel
-         %90 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %90
-               OpReturn
+ %main_inner = OpFunction %main_out None %85
+         %88 = OpLabel
+         %89 = OpFunctionCall %void %main_1
+         %90 = OpLoad %v4float %x_GLF_color
+         %91 = OpCompositeConstruct %main_out %90
+               OpReturnValue %91
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %92 = OpLabel
-         %93 = OpFunctionCall %void %main_1
-         %95 = OpLoad %v4float %x_GLF_color
-         %96 = OpCompositeConstruct %main_out %95
-         %94 = OpFunctionCall %void %tint_symbol_2 %96
+         %93 = OpLabel
+         %94 = OpFunctionCall %main_out %main_inner
+         %95 = OpCompositeExtract %v4float %94 0
+               OpStore %x_GLF_color_1_1 %95
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.spvasm.expected.spvasm
index ef89a41..fdd607e 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 124
+; Bound: 123
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_f1_ "func_f1_"
                OpName %f "f"
                OpName %a "a"
@@ -21,17 +21,21 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_5 ArrayStride 16
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
@@ -39,13 +43,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Function_float = OpTypePointer Function %float
          %15 = OpTypeFunction %int %_ptr_Function_float
 %_ptr_Function_int = OpTypePointer Function %int
@@ -63,7 +62,7 @@
          %85 = OpConstantNull %float
 %float_0_699999988 = OpConstant %float 0.699999988
    %main_out = OpTypeStruct %v4float
-        %112 = OpTypeFunction %void %main_out
+        %112 = OpTypeFunction %main_out
    %func_f1_ = OpFunction %int None %15
           %f = OpFunctionParameter %_ptr_Function_float
          %19 = OpLabel
@@ -176,18 +175,17 @@
          %92 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %112
-%tint_symbol = OpFunctionParameter %main_out
-        %116 = OpLabel
-        %117 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %117
-               OpReturn
+ %main_inner = OpFunction %main_out None %112
+        %115 = OpLabel
+        %116 = OpFunctionCall %void %main_1
+        %117 = OpLoad %v4float %x_GLF_color
+        %118 = OpCompositeConstruct %main_out %117
+               OpReturnValue %118
                OpFunctionEnd
        %main = OpFunction %void None %80
-        %119 = OpLabel
-        %120 = OpFunctionCall %void %main_1
-        %122 = OpLoad %v4float %x_GLF_color
-        %123 = OpCompositeConstruct %main_out %122
-        %121 = OpFunctionCall %void %tint_symbol_2 %123
+        %120 = OpLabel
+        %121 = OpFunctionCall %main_out %main_inner
+        %122 = OpCompositeExtract %v4float %121 0
+               OpStore %x_GLF_color_1_1 %122
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.wgsl.expected.spvasm
index ef89a41..fdd607e 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 124
+; Bound: 123
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_f1_ "func_f1_"
                OpName %f "f"
                OpName %a "a"
@@ -21,17 +21,21 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_5 ArrayStride 16
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
@@ -39,13 +43,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Function_float = OpTypePointer Function %float
          %15 = OpTypeFunction %int %_ptr_Function_float
 %_ptr_Function_int = OpTypePointer Function %int
@@ -63,7 +62,7 @@
          %85 = OpConstantNull %float
 %float_0_699999988 = OpConstant %float 0.699999988
    %main_out = OpTypeStruct %v4float
-        %112 = OpTypeFunction %void %main_out
+        %112 = OpTypeFunction %main_out
    %func_f1_ = OpFunction %int None %15
           %f = OpFunctionParameter %_ptr_Function_float
          %19 = OpLabel
@@ -176,18 +175,17 @@
          %92 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %112
-%tint_symbol = OpFunctionParameter %main_out
-        %116 = OpLabel
-        %117 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %117
-               OpReturn
+ %main_inner = OpFunction %main_out None %112
+        %115 = OpLabel
+        %116 = OpFunctionCall %void %main_1
+        %117 = OpLoad %v4float %x_GLF_color
+        %118 = OpCompositeConstruct %main_out %117
+               OpReturnValue %118
                OpFunctionEnd
        %main = OpFunction %void None %80
-        %119 = OpLabel
-        %120 = OpFunctionCall %void %main_1
-        %122 = OpLoad %v4float %x_GLF_color
-        %123 = OpCompositeConstruct %main_out %122
-        %121 = OpFunctionCall %void %tint_symbol_2 %123
+        %120 = OpLabel
+        %121 = OpFunctionCall %main_out %main_inner
+        %122 = OpCompositeExtract %v4float %121 0
+               OpStore %x_GLF_color_1_1 %122
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.spvasm.expected.spvasm
index ed58ead..4cdf233 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
@@ -15,8 +17,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_12 "x_12"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %f1_ "f1_"
                OpName %i "i"
                OpName %A "A"
@@ -25,9 +25,11 @@
                OpName %i_1 "i_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -40,10 +42,15 @@
                OpDecorate %x_12 NonWritable
                OpDecorate %x_12 DescriptorSet 0
                OpDecorate %x_12 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -51,21 +58,14 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %12
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_12 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
          %23 = OpTypeFunction %int
 %_ptr_Function_int = OpTypePointer Function %int
          %28 = OpConstantNull %int
@@ -85,7 +85,7 @@
        %void = OpTypeVoid
          %91 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-        %108 = OpTypeFunction %void %main_out
+        %108 = OpTypeFunction %main_out %v4float
         %f1_ = OpFunction %int None %23
          %25 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %28
@@ -182,20 +182,20 @@
                OpStore %x_GLF_color %107
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %108
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %108
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %112 = OpLabel
-        %113 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %113
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %113 = OpFunctionCall %void %main_1
+        %114 = OpLoad %v4float %x_GLF_color
+        %115 = OpCompositeConstruct %main_out %114
+               OpReturnValue %115
                OpFunctionEnd
        %main = OpFunction %void None %91
-        %115 = OpLabel
-        %116 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %116
-        %117 = OpFunctionCall %void %main_1
-        %119 = OpLoad %v4float %x_GLF_color
-        %120 = OpCompositeConstruct %main_out %119
-        %118 = OpFunctionCall %void %tint_symbol_3 %120
+        %117 = OpLabel
+        %119 = OpLoad %v4float %gl_FragCoord_param_1
+        %118 = OpFunctionCall %main_out %main_inner %119
+        %120 = OpCompositeExtract %v4float %118 0
+               OpStore %x_GLF_color_1_1 %120
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.wgsl.expected.spvasm
index ed58ead..4cdf233 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
@@ -15,8 +17,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_12 "x_12"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %f1_ "f1_"
                OpName %i "i"
                OpName %A "A"
@@ -25,9 +25,11 @@
                OpName %i_1 "i_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -40,10 +42,15 @@
                OpDecorate %x_12 NonWritable
                OpDecorate %x_12 DescriptorSet 0
                OpDecorate %x_12 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -51,21 +58,14 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %12
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_12 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
          %23 = OpTypeFunction %int
 %_ptr_Function_int = OpTypePointer Function %int
          %28 = OpConstantNull %int
@@ -85,7 +85,7 @@
        %void = OpTypeVoid
          %91 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-        %108 = OpTypeFunction %void %main_out
+        %108 = OpTypeFunction %main_out %v4float
         %f1_ = OpFunction %int None %23
          %25 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %28
@@ -182,20 +182,20 @@
                OpStore %x_GLF_color %107
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %108
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %108
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %112 = OpLabel
-        %113 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %113
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %113 = OpFunctionCall %void %main_1
+        %114 = OpLoad %v4float %x_GLF_color
+        %115 = OpCompositeConstruct %main_out %114
+               OpReturnValue %115
                OpFunctionEnd
        %main = OpFunction %void None %91
-        %115 = OpLabel
-        %116 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %116
-        %117 = OpFunctionCall %void %main_1
-        %119 = OpLoad %v4float %x_GLF_color
-        %120 = OpCompositeConstruct %main_out %119
-        %118 = OpFunctionCall %void %tint_symbol_3 %120
+        %117 = OpLabel
+        %119 = OpLoad %v4float %gl_FragCoord_param_1
+        %118 = OpFunctionCall %main_out %main_inner %119
+        %120 = OpCompositeExtract %v4float %118 0
+               OpStore %x_GLF_color_1_1 %120
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.spvasm.expected.spvasm
index a1804d0..0bc2fa4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 160
+; Bound: 159
 ; Schema: 0
                OpCapability Shader
          %45 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %v1 "v1"
@@ -28,9 +28,9 @@
                OpName %x_110_phi "x_110_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -43,9 +43,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -58,12 +61,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -81,12 +80,12 @@
       %int_3 = OpConstant %int 3
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-        %148 = OpTypeFunction %void %main_out
+        %148 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %a = OpVariable %_ptr_Function_uint Function %26
-         %v1 = OpVariable %_ptr_Function_v4float Function %17
-        %ref = OpVariable %_ptr_Function_v4float Function %17
+         %v1 = OpVariable %_ptr_Function_v4float Function %5
+        %ref = OpVariable %_ptr_Function_v4float Function %5
        %x_85 = OpVariable %_ptr_Function_bool Function %33
        %x_97 = OpVariable %_ptr_Function_bool Function %33
       %x_109 = OpVariable %_ptr_Function_bool Function %33
@@ -222,18 +221,17 @@
         %127 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %148
-%tint_symbol = OpFunctionParameter %main_out
-        %152 = OpLabel
-        %153 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %153
-               OpReturn
+ %main_inner = OpFunction %main_out None %148
+        %151 = OpLabel
+        %152 = OpFunctionCall %void %main_1
+        %153 = OpLoad %v4float %x_GLF_color
+        %154 = OpCompositeConstruct %main_out %153
+               OpReturnValue %154
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %155 = OpLabel
-        %156 = OpFunctionCall %void %main_1
-        %158 = OpLoad %v4float %x_GLF_color
-        %159 = OpCompositeConstruct %main_out %158
-        %157 = OpFunctionCall %void %tint_symbol_2 %159
+        %156 = OpLabel
+        %157 = OpFunctionCall %main_out %main_inner
+        %158 = OpCompositeExtract %v4float %157 0
+               OpStore %x_GLF_color_1_1 %158
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.wgsl.expected.spvasm
index a1804d0..0bc2fa4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 160
+; Bound: 159
 ; Schema: 0
                OpCapability Shader
          %45 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %v1 "v1"
@@ -28,9 +28,9 @@
                OpName %x_110_phi "x_110_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -43,9 +43,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -58,12 +61,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -81,12 +80,12 @@
       %int_3 = OpConstant %int 3
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-        %148 = OpTypeFunction %void %main_out
+        %148 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %a = OpVariable %_ptr_Function_uint Function %26
-         %v1 = OpVariable %_ptr_Function_v4float Function %17
-        %ref = OpVariable %_ptr_Function_v4float Function %17
+         %v1 = OpVariable %_ptr_Function_v4float Function %5
+        %ref = OpVariable %_ptr_Function_v4float Function %5
        %x_85 = OpVariable %_ptr_Function_bool Function %33
        %x_97 = OpVariable %_ptr_Function_bool Function %33
       %x_109 = OpVariable %_ptr_Function_bool Function %33
@@ -222,18 +221,17 @@
         %127 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %148
-%tint_symbol = OpFunctionParameter %main_out
-        %152 = OpLabel
-        %153 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %153
-               OpReturn
+ %main_inner = OpFunction %main_out None %148
+        %151 = OpLabel
+        %152 = OpFunctionCall %void %main_1
+        %153 = OpLoad %v4float %x_GLF_color
+        %154 = OpCompositeConstruct %main_out %153
+               OpReturnValue %154
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %155 = OpLabel
-        %156 = OpFunctionCall %void %main_1
-        %158 = OpLoad %v4float %x_GLF_color
-        %159 = OpCompositeConstruct %main_out %158
-        %157 = OpFunctionCall %void %tint_symbol_2 %159
+        %156 = OpLabel
+        %157 = OpFunctionCall %main_out %main_inner
+        %158 = OpCompositeExtract %v4float %157 0
+               OpStore %x_GLF_color_1_1 %158
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-switch/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-switch/0-opt.spvasm.expected.spvasm
index 4075f23..130904a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-switch/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-switch/0-opt.spvasm.expected.spvasm
@@ -1,34 +1,38 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 106
+; Bound: 105
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %count0 "count0"
                OpName %count1 "count1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_5 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
@@ -36,13 +40,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -56,7 +55,7 @@
       %int_0 = OpConstant %int 0
       %int_3 = OpConstant %int 3
    %main_out = OpTypeStruct %v4float
-         %94 = OpTypeFunction %void %main_out
+         %94 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
      %count0 = OpVariable %_ptr_Function_int Function %21
@@ -156,18 +155,17 @@
          %88 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %94
-%tint_symbol = OpFunctionParameter %main_out
-         %98 = OpLabel
-         %99 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %99
-               OpReturn
+ %main_inner = OpFunction %main_out None %94
+         %97 = OpLabel
+         %98 = OpFunctionCall %void %main_1
+         %99 = OpLoad %v4float %x_GLF_color
+        %100 = OpCompositeConstruct %main_out %99
+               OpReturnValue %100
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %101 = OpLabel
-        %102 = OpFunctionCall %void %main_1
-        %104 = OpLoad %v4float %x_GLF_color
-        %105 = OpCompositeConstruct %main_out %104
-        %103 = OpFunctionCall %void %tint_symbol_2 %105
+        %102 = OpLabel
+        %103 = OpFunctionCall %main_out %main_inner
+        %104 = OpCompositeExtract %v4float %103 0
+               OpStore %x_GLF_color_1_1 %104
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-switch/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-switch/0-opt.wgsl.expected.spvasm
index 4075f23..130904a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-switch/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-switch/0-opt.wgsl.expected.spvasm
@@ -1,34 +1,38 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 106
+; Bound: 105
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %count0 "count0"
                OpName %count1 "count1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_5 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
@@ -36,13 +40,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -56,7 +55,7 @@
       %int_0 = OpConstant %int 0
       %int_3 = OpConstant %int 3
    %main_out = OpTypeStruct %v4float
-         %94 = OpTypeFunction %void %main_out
+         %94 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
      %count0 = OpVariable %_ptr_Function_int Function %21
@@ -156,18 +155,17 @@
          %88 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %94
-%tint_symbol = OpFunctionParameter %main_out
-         %98 = OpLabel
-         %99 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %99
-               OpReturn
+ %main_inner = OpFunction %main_out None %94
+         %97 = OpLabel
+         %98 = OpFunctionCall %void %main_1
+         %99 = OpLoad %v4float %x_GLF_color
+        %100 = OpCompositeConstruct %main_out %99
+               OpReturnValue %100
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %101 = OpLabel
-        %102 = OpFunctionCall %void %main_1
-        %104 = OpLoad %v4float %x_GLF_color
-        %105 = OpCompositeConstruct %main_out %104
-        %103 = OpFunctionCall %void %tint_symbol_2 %105
+        %102 = OpLabel
+        %103 = OpFunctionCall %main_out %main_inner
+        %104 = OpCompositeExtract %v4float %103 0
+               OpStore %x_GLF_color_1_1 %104
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.spvasm.expected.spvasm
index 2d8d7ba..3a60029 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 84
+; Bound: 83
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -14,15 +15,14 @@
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %data "data"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -35,9 +35,13 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_2_0 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -45,17 +49,12 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf1 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_arr_float_uint_2_0 = OpTypeArray %float %uint_2
@@ -71,7 +70,7 @@
       %int_2 = OpConstant %int 2
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %72 = OpTypeFunction %void %main_out
+         %72 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
        %data = OpVariable %_ptr_Function__arr_float_uint_2_0 Function %26
@@ -122,18 +121,17 @@
          %57 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %72
-%tint_symbol = OpFunctionParameter %main_out
-         %76 = OpLabel
-         %77 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %77
-               OpReturn
+ %main_inner = OpFunction %main_out None %72
+         %75 = OpLabel
+         %76 = OpFunctionCall %void %main_1
+         %77 = OpLoad %v4float %x_GLF_color
+         %78 = OpCompositeConstruct %main_out %77
+               OpReturnValue %78
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %79 = OpLabel
-         %80 = OpFunctionCall %void %main_1
-         %82 = OpLoad %v4float %x_GLF_color
-         %83 = OpCompositeConstruct %main_out %82
-         %81 = OpFunctionCall %void %tint_symbol_2 %83
+         %80 = OpLabel
+         %81 = OpFunctionCall %main_out %main_inner
+         %82 = OpCompositeExtract %v4float %81 0
+               OpStore %x_GLF_color_1_1 %82
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.wgsl.expected.spvasm
index 2d8d7ba..3a60029 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 84
+; Bound: 83
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -14,15 +15,14 @@
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %data "data"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -35,9 +35,13 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_2_0 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -45,17 +49,12 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf1 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_arr_float_uint_2_0 = OpTypeArray %float %uint_2
@@ -71,7 +70,7 @@
       %int_2 = OpConstant %int 2
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %72 = OpTypeFunction %void %main_out
+         %72 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
        %data = OpVariable %_ptr_Function__arr_float_uint_2_0 Function %26
@@ -122,18 +121,17 @@
          %57 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %72
-%tint_symbol = OpFunctionParameter %main_out
-         %76 = OpLabel
-         %77 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %77
-               OpReturn
+ %main_inner = OpFunction %main_out None %72
+         %75 = OpLabel
+         %76 = OpFunctionCall %void %main_1
+         %77 = OpLoad %v4float %x_GLF_color
+         %78 = OpCompositeConstruct %main_out %77
+               OpReturnValue %78
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %79 = OpLabel
-         %80 = OpFunctionCall %void %main_1
-         %82 = OpLoad %v4float %x_GLF_color
-         %83 = OpCompositeConstruct %main_out %82
-         %81 = OpFunctionCall %void %tint_symbol_2 %83
+         %80 = OpLabel
+         %81 = OpFunctionCall %main_out %main_inner
+         %82 = OpCompositeExtract %v4float %81 0
+               OpStore %x_GLF_color_1_1 %82
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-isnan/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-isnan/0-opt.spvasm.expected.spvasm
index 2b47873..1a3d162 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-isnan/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-isnan/0-opt.spvasm.expected.spvasm
@@ -1,35 +1,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 59
+; Bound: 58
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_5 "x_5"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
@@ -38,8 +39,6 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -48,7 +47,7 @@
       %int_1 = OpConstant %int 1
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %47 = OpTypeFunction %void %main_out
+         %47 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
          %22 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0
@@ -81,18 +80,17 @@
          %41 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %47
-%tint_symbol = OpFunctionParameter %main_out
-         %51 = OpLabel
-         %52 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %52
-               OpReturn
+ %main_inner = OpFunction %main_out None %47
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %main_1
+         %52 = OpLoad %v4float %x_GLF_color
+         %53 = OpCompositeConstruct %main_out %52
+               OpReturnValue %53
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %main_1
-         %57 = OpLoad %v4float %x_GLF_color
-         %58 = OpCompositeConstruct %main_out %57
-         %56 = OpFunctionCall %void %tint_symbol_2 %58
+         %55 = OpLabel
+         %56 = OpFunctionCall %main_out %main_inner
+         %57 = OpCompositeExtract %v4float %56 0
+               OpStore %x_GLF_color_1_1 %57
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-isnan/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-isnan/0-opt.wgsl.expected.spvasm
index 2b47873..1a3d162 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-isnan/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-isnan/0-opt.wgsl.expected.spvasm
@@ -1,35 +1,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 59
+; Bound: 58
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_5 "x_5"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
@@ -38,8 +39,6 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -48,7 +47,7 @@
       %int_1 = OpConstant %int 1
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %47 = OpTypeFunction %void %main_out
+         %47 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
          %22 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0
@@ -81,18 +80,17 @@
          %41 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %47
-%tint_symbol = OpFunctionParameter %main_out
-         %51 = OpLabel
-         %52 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %52
-               OpReturn
+ %main_inner = OpFunction %main_out None %47
+         %50 = OpLabel
+         %51 = OpFunctionCall %void %main_1
+         %52 = OpLoad %v4float %x_GLF_color
+         %53 = OpCompositeConstruct %main_out %52
+               OpReturnValue %53
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpFunctionCall %void %main_1
-         %57 = OpLoad %v4float %x_GLF_color
-         %58 = OpCompositeConstruct %main_out %57
-         %56 = OpFunctionCall %void %tint_symbol_2 %58
+         %55 = OpLabel
+         %56 = OpFunctionCall %main_out %main_inner
+         %57 = OpCompositeExtract %v4float %56 0
+               OpStore %x_GLF_color_1_1 %57
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.spvasm.expected.spvasm
index 6a92dec..6001a9b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 79
+; Bound: 78
 ; Schema: 0
                OpCapability Shader
          %32 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_5 "x_5"
@@ -15,13 +16,12 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_1 ArrayStride 16
@@ -34,27 +34,26 @@
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_7 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -65,7 +64,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %67 = OpTypeFunction %void %main_out
+         %67 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
          %27 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_0
@@ -111,18 +110,17 @@
          %36 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %67
-%tint_symbol = OpFunctionParameter %main_out
-         %71 = OpLabel
-         %72 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %72
-               OpReturn
+ %main_inner = OpFunction %main_out None %67
+         %70 = OpLabel
+         %71 = OpFunctionCall %void %main_1
+         %72 = OpLoad %v4float %x_GLF_color
+         %73 = OpCompositeConstruct %main_out %72
+               OpReturnValue %73
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %74 = OpLabel
-         %75 = OpFunctionCall %void %main_1
-         %77 = OpLoad %v4float %x_GLF_color
-         %78 = OpCompositeConstruct %main_out %77
-         %76 = OpFunctionCall %void %tint_symbol_2 %78
+         %75 = OpLabel
+         %76 = OpFunctionCall %main_out %main_inner
+         %77 = OpCompositeExtract %v4float %76 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.wgsl.expected.spvasm
index 6a92dec..6001a9b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 79
+; Bound: 78
 ; Schema: 0
                OpCapability Shader
          %32 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_5 "x_5"
@@ -15,13 +16,12 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_1 ArrayStride 16
@@ -34,27 +34,26 @@
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_7 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -65,7 +64,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %67 = OpTypeFunction %void %main_out
+         %67 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
          %27 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_0
@@ -111,18 +110,17 @@
          %36 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %67
-%tint_symbol = OpFunctionParameter %main_out
-         %71 = OpLabel
-         %72 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %72
-               OpReturn
+ %main_inner = OpFunction %main_out None %67
+         %70 = OpLabel
+         %71 = OpFunctionCall %void %main_1
+         %72 = OpLoad %v4float %x_GLF_color
+         %73 = OpCompositeConstruct %main_out %72
+               OpReturnValue %73
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %74 = OpLabel
-         %75 = OpFunctionCall %void %main_1
-         %77 = OpLoad %v4float %x_GLF_color
-         %78 = OpCompositeConstruct %main_out %77
-         %76 = OpFunctionCall %void %tint_symbol_2 %78
+         %75 = OpLabel
+         %76 = OpFunctionCall %main_out %main_inner
+         %77 = OpCompositeExtract %v4float %76 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.spvasm.expected.spvasm
index 3c4cb67..e2d9db9 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %64 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
@@ -16,8 +18,6 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_14 "x_14"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %f1_f1_ "f1_f1_"
                OpName %a "a"
                OpName %b "b"
@@ -27,9 +27,11 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
@@ -42,31 +44,29 @@
                OpDecorate %x_14 NonWritable
                OpDecorate %x_14 DescriptorSet 0
                OpDecorate %x_14 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
        %buf0 = OpTypeStruct %_arr_float_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_14 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
 %_ptr_Function_float = OpTypePointer Function %float
          %23 = OpTypeFunction %float %_ptr_Function_float
 %_ptr_Function_int = OpTypePointer Function %int
@@ -85,7 +85,7 @@
          %67 = OpTypeFunction %void
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-        %102 = OpTypeFunction %void %main_out
+        %102 = OpTypeFunction %main_out %v4float
      %f1_f1_ = OpFunction %float None %23
           %a = OpFunctionParameter %_ptr_Function_float
          %27 = OpLabel
@@ -167,20 +167,20 @@
          %81 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %102
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %102
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %106 = OpLabel
-        %107 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %107
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %107 = OpFunctionCall %void %main_1
+        %108 = OpLoad %v4float %x_GLF_color
+        %109 = OpCompositeConstruct %main_out %108
+               OpReturnValue %109
                OpFunctionEnd
        %main = OpFunction %void None %67
-        %109 = OpLabel
-        %110 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %110
-        %111 = OpFunctionCall %void %main_1
-        %113 = OpLoad %v4float %x_GLF_color
-        %114 = OpCompositeConstruct %main_out %113
-        %112 = OpFunctionCall %void %tint_symbol_3 %114
+        %111 = OpLabel
+        %113 = OpLoad %v4float %gl_FragCoord_param_1
+        %112 = OpFunctionCall %main_out %main_inner %113
+        %114 = OpCompositeExtract %v4float %112 0
+               OpStore %x_GLF_color_1_1 %114
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.wgsl.expected.spvasm
index 3c4cb67..e2d9db9 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %64 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
@@ -16,8 +18,6 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_14 "x_14"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %f1_f1_ "f1_f1_"
                OpName %a "a"
                OpName %b "b"
@@ -27,9 +27,11 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
@@ -42,31 +44,29 @@
                OpDecorate %x_14 NonWritable
                OpDecorate %x_14 DescriptorSet 0
                OpDecorate %x_14 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
        %buf0 = OpTypeStruct %_arr_float_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_14 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
 %_ptr_Function_float = OpTypePointer Function %float
          %23 = OpTypeFunction %float %_ptr_Function_float
 %_ptr_Function_int = OpTypePointer Function %int
@@ -85,7 +85,7 @@
          %67 = OpTypeFunction %void
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-        %102 = OpTypeFunction %void %main_out
+        %102 = OpTypeFunction %main_out %v4float
      %f1_f1_ = OpFunction %float None %23
           %a = OpFunctionParameter %_ptr_Function_float
          %27 = OpLabel
@@ -167,20 +167,20 @@
          %81 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %102
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %102
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %106 = OpLabel
-        %107 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %107
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %107 = OpFunctionCall %void %main_1
+        %108 = OpLoad %v4float %x_GLF_color
+        %109 = OpCompositeConstruct %main_out %108
+               OpReturnValue %109
                OpFunctionEnd
        %main = OpFunction %void None %67
-        %109 = OpLabel
-        %110 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %110
-        %111 = OpFunctionCall %void %main_1
-        %113 = OpLoad %v4float %x_GLF_color
-        %114 = OpCompositeConstruct %main_out %113
-        %112 = OpFunctionCall %void %tint_symbol_3 %114
+        %111 = OpLabel
+        %113 = OpLoad %v4float %gl_FragCoord_param_1
+        %112 = OpFunctionCall %main_out %main_inner %113
+        %114 = OpCompositeExtract %v4float %112 0
+               OpStore %x_GLF_color_1_1 %114
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.spvasm.expected.spvasm
index f6de722..cb59323 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
@@ -15,16 +17,16 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_4 ArrayStride 16
@@ -37,31 +39,29 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
 %_arr_float_uint_4 = OpTypeArray %float %uint_4
        %buf0 = OpTypeStruct %_arr_float_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -80,7 +80,7 @@
     %v3float = OpTypeVector %float 3
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %83 = OpTypeFunction %void %main_out
+         %83 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %29
@@ -134,20 +134,20 @@
          %62 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %83
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %83
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %87 = OpLabel
-         %88 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %88
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %88 = OpFunctionCall %void %main_1
+         %89 = OpLoad %v4float %x_GLF_color
+         %90 = OpCompositeConstruct %main_out %89
+               OpReturnValue %90
                OpFunctionEnd
        %main = OpFunction %void None %23
-         %90 = OpLabel
-         %91 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %91
-         %92 = OpFunctionCall %void %main_1
-         %94 = OpLoad %v4float %x_GLF_color
-         %95 = OpCompositeConstruct %main_out %94
-         %93 = OpFunctionCall %void %tint_symbol_3 %95
+         %92 = OpLabel
+         %94 = OpLoad %v4float %gl_FragCoord_param_1
+         %93 = OpFunctionCall %main_out %main_inner %94
+         %95 = OpCompositeExtract %v4float %93 0
+               OpStore %x_GLF_color_1_1 %95
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.wgsl.expected.spvasm
index f6de722..cb59323 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
@@ -15,16 +17,16 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_4 ArrayStride 16
@@ -37,31 +39,29 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
 %_arr_float_uint_4 = OpTypeArray %float %uint_4
        %buf0 = OpTypeStruct %_arr_float_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -80,7 +80,7 @@
     %v3float = OpTypeVector %float 3
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %83 = OpTypeFunction %void %main_out
+         %83 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %29
@@ -134,20 +134,20 @@
          %62 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %83
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %83
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %87 = OpLabel
-         %88 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %88
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %88 = OpFunctionCall %void %main_1
+         %89 = OpLoad %v4float %x_GLF_color
+         %90 = OpCompositeConstruct %main_out %89
+               OpReturnValue %90
                OpFunctionEnd
        %main = OpFunction %void None %23
-         %90 = OpLabel
-         %91 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %91
-         %92 = OpFunctionCall %void %main_1
-         %94 = OpLoad %v4float %x_GLF_color
-         %95 = OpCompositeConstruct %main_out %94
-         %93 = OpFunctionCall %void %tint_symbol_3 %95
+         %92 = OpLabel
+         %94 = OpLoad %v4float %gl_FragCoord_param_1
+         %93 = OpFunctionCall %main_out %main_inner %94
+         %95 = OpCompositeExtract %v4float %93 0
+               OpStore %x_GLF_color_1_1 %95
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.spvasm.expected.spvasm
index 6651b21..57dc194 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 79
+; Bound: 78
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -14,14 +15,13 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -34,8 +34,12 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -43,18 +47,13 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -68,7 +67,7 @@
     %float_1 = OpConstant %float 1
 %_ptr_Uniform_float = OpTypePointer Uniform %float
    %main_out = OpTypeStruct %v4float
-         %67 = OpTypeFunction %void %main_out
+         %67 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %26
@@ -123,18 +122,17 @@
          %33 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %67
-%tint_symbol = OpFunctionParameter %main_out
-         %71 = OpLabel
-         %72 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %72
-               OpReturn
+ %main_inner = OpFunction %main_out None %67
+         %70 = OpLabel
+         %71 = OpFunctionCall %void %main_1
+         %72 = OpLoad %v4float %x_GLF_color
+         %73 = OpCompositeConstruct %main_out %72
+               OpReturnValue %73
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %74 = OpLabel
-         %75 = OpFunctionCall %void %main_1
-         %77 = OpLoad %v4float %x_GLF_color
-         %78 = OpCompositeConstruct %main_out %77
-         %76 = OpFunctionCall %void %tint_symbol_2 %78
+         %75 = OpLabel
+         %76 = OpFunctionCall %main_out %main_inner
+         %77 = OpCompositeExtract %v4float %76 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.wgsl.expected.spvasm
index 6651b21..57dc194 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 79
+; Bound: 78
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -14,14 +15,13 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -34,8 +34,12 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -43,18 +47,13 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -68,7 +67,7 @@
     %float_1 = OpConstant %float 1
 %_ptr_Uniform_float = OpTypePointer Uniform %float
    %main_out = OpTypeStruct %v4float
-         %67 = OpTypeFunction %void %main_out
+         %67 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %26
@@ -123,18 +122,17 @@
          %33 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %67
-%tint_symbol = OpFunctionParameter %main_out
-         %71 = OpLabel
-         %72 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %72
-               OpReturn
+ %main_inner = OpFunction %main_out None %67
+         %70 = OpLabel
+         %71 = OpFunctionCall %void %main_1
+         %72 = OpLoad %v4float %x_GLF_color
+         %73 = OpCompositeConstruct %main_out %72
+               OpReturnValue %73
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %74 = OpLabel
-         %75 = OpFunctionCall %void %main_1
-         %77 = OpLoad %v4float %x_GLF_color
-         %78 = OpCompositeConstruct %main_out %77
-         %76 = OpFunctionCall %void %tint_symbol_2 %78
+         %75 = OpLabel
+         %76 = OpFunctionCall %main_out %main_inner
+         %77 = OpCompositeExtract %v4float %76 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-mul-div-rem-if-undefined-divide-mix/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-mul-div-rem-if-undefined-divide-mix/0-opt.spvasm.expected.spvasm
index d38b160..1370642 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-mul-div-rem-if-undefined-divide-mix/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-mul-div-rem-if-undefined-divide-mix/0-opt.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %99 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
@@ -16,8 +18,6 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_10 "x_10"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %f1_f1_ "f1_f1_"
                OpName %a "a"
                OpName %main_1 "main_1"
@@ -27,9 +27,11 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -42,14 +44,16 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -57,15 +61,11 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf1 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
 %_ptr_Function_float = OpTypePointer Function %float
          %22 = OpTypeFunction %float %_ptr_Function_float
        %void = OpTypeVoid
@@ -82,7 +82,7 @@
     %float_1 = OpConstant %float 1
     %v3float = OpTypeVector %float 3
    %main_out = OpTypeStruct %v4float
-        %109 = OpTypeFunction %void %main_out
+        %109 = OpTypeFunction %main_out %v4float
      %f1_f1_ = OpFunction %float None %22
           %a = OpFunctionParameter %_ptr_Function_float
          %26 = OpLabel
@@ -92,7 +92,7 @@
                OpFunctionEnd
      %main_1 = OpFunction %void None %30
          %33 = OpLabel
-         %v2 = OpVariable %_ptr_Function_v4float Function %5
+         %v2 = OpVariable %_ptr_Function_v4float Function %7
         %a_1 = OpVariable %_ptr_Function_float Function %37
        %x_40 = OpVariable %_ptr_Function_float Function %37
       %param = OpVariable %_ptr_Function_float Function %37
@@ -172,20 +172,20 @@
          %65 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %109
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %109
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %113 = OpLabel
-        %114 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %114
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %114 = OpFunctionCall %void %main_1
+        %115 = OpLoad %v4float %x_GLF_color
+        %116 = OpCompositeConstruct %main_out %115
+               OpReturnValue %116
                OpFunctionEnd
        %main = OpFunction %void None %30
-        %116 = OpLabel
-        %117 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %117
-        %118 = OpFunctionCall %void %main_1
-        %120 = OpLoad %v4float %x_GLF_color
-        %121 = OpCompositeConstruct %main_out %120
-        %119 = OpFunctionCall %void %tint_symbol_3 %121
+        %118 = OpLabel
+        %120 = OpLoad %v4float %gl_FragCoord_param_1
+        %119 = OpFunctionCall %main_out %main_inner %120
+        %121 = OpCompositeExtract %v4float %119 0
+               OpStore %x_GLF_color_1_1 %121
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-mul-div-rem-if-undefined-divide-mix/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-mul-div-rem-if-undefined-divide-mix/0-opt.wgsl.expected.spvasm
index d38b160..1370642 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-mul-div-rem-if-undefined-divide-mix/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-mul-div-rem-if-undefined-divide-mix/0-opt.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %99 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
@@ -16,8 +18,6 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_10 "x_10"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %f1_f1_ "f1_f1_"
                OpName %a "a"
                OpName %main_1 "main_1"
@@ -27,9 +27,11 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -42,14 +44,16 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -57,15 +61,11 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf1 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
 %_ptr_Function_float = OpTypePointer Function %float
          %22 = OpTypeFunction %float %_ptr_Function_float
        %void = OpTypeVoid
@@ -82,7 +82,7 @@
     %float_1 = OpConstant %float 1
     %v3float = OpTypeVector %float 3
    %main_out = OpTypeStruct %v4float
-        %109 = OpTypeFunction %void %main_out
+        %109 = OpTypeFunction %main_out %v4float
      %f1_f1_ = OpFunction %float None %22
           %a = OpFunctionParameter %_ptr_Function_float
          %26 = OpLabel
@@ -92,7 +92,7 @@
                OpFunctionEnd
      %main_1 = OpFunction %void None %30
          %33 = OpLabel
-         %v2 = OpVariable %_ptr_Function_v4float Function %5
+         %v2 = OpVariable %_ptr_Function_v4float Function %7
         %a_1 = OpVariable %_ptr_Function_float Function %37
        %x_40 = OpVariable %_ptr_Function_float Function %37
       %param = OpVariable %_ptr_Function_float Function %37
@@ -172,20 +172,20 @@
          %65 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %109
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %109
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %113 = OpLabel
-        %114 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %114
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %114 = OpFunctionCall %void %main_1
+        %115 = OpLoad %v4float %x_GLF_color
+        %116 = OpCompositeConstruct %main_out %115
+               OpReturnValue %116
                OpFunctionEnd
        %main = OpFunction %void None %30
-        %116 = OpLabel
-        %117 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %117
-        %118 = OpFunctionCall %void %main_1
-        %120 = OpLoad %v4float %x_GLF_color
-        %121 = OpCompositeConstruct %main_out %120
-        %119 = OpFunctionCall %void %tint_symbol_3 %121
+        %118 = OpLabel
+        %120 = OpLoad %v4float %gl_FragCoord_param_1
+        %119 = OpFunctionCall %main_out %main_inner %120
+        %121 = OpCompositeExtract %v4float %119 0
+               OpStore %x_GLF_color_1_1 %121
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.spvasm.expected.spvasm
index 470393d..7997003 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 159
+; Bound: 158
 ; Schema: 0
                OpCapability Shader
          %50 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %v1 "v1"
@@ -28,9 +28,9 @@
                OpName %x_110_phi "x_110_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_7 ArrayStride 16
@@ -43,9 +43,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_7 = OpConstant %uint 7
 %_arr_float_uint_7 = OpTypeArray %float %uint_7
@@ -58,12 +61,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -87,11 +86,11 @@
       %int_5 = OpConstant %int 5
       %int_6 = OpConstant %int 6
    %main_out = OpTypeStruct %v4float
-        %147 = OpTypeFunction %void %main_out
+        %147 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %a = OpVariable %_ptr_Function_uint Function %26
-         %v1 = OpVariable %_ptr_Function_v4float Function %17
+         %v1 = OpVariable %_ptr_Function_v4float Function %5
           %E = OpVariable %_ptr_Function_float Function %31
        %x_75 = OpVariable %_ptr_Function_bool Function %35
        %x_92 = OpVariable %_ptr_Function_bool Function %35
@@ -221,18 +220,17 @@
         %128 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %147
-%tint_symbol = OpFunctionParameter %main_out
-        %151 = OpLabel
-        %152 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %152
-               OpReturn
+ %main_inner = OpFunction %main_out None %147
+        %150 = OpLabel
+        %151 = OpFunctionCall %void %main_1
+        %152 = OpLoad %v4float %x_GLF_color
+        %153 = OpCompositeConstruct %main_out %152
+               OpReturnValue %153
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %154 = OpLabel
-        %155 = OpFunctionCall %void %main_1
-        %157 = OpLoad %v4float %x_GLF_color
-        %158 = OpCompositeConstruct %main_out %157
-        %156 = OpFunctionCall %void %tint_symbol_2 %158
+        %155 = OpLabel
+        %156 = OpFunctionCall %main_out %main_inner
+        %157 = OpCompositeExtract %v4float %156 0
+               OpStore %x_GLF_color_1_1 %157
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.wgsl.expected.spvasm
index 470393d..7997003 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 159
+; Bound: 158
 ; Schema: 0
                OpCapability Shader
          %50 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %v1 "v1"
@@ -28,9 +28,9 @@
                OpName %x_110_phi "x_110_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_7 ArrayStride 16
@@ -43,9 +43,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_7 = OpConstant %uint 7
 %_arr_float_uint_7 = OpTypeArray %float %uint_7
@@ -58,12 +61,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -87,11 +86,11 @@
       %int_5 = OpConstant %int 5
       %int_6 = OpConstant %int 6
    %main_out = OpTypeStruct %v4float
-        %147 = OpTypeFunction %void %main_out
+        %147 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %a = OpVariable %_ptr_Function_uint Function %26
-         %v1 = OpVariable %_ptr_Function_v4float Function %17
+         %v1 = OpVariable %_ptr_Function_v4float Function %5
           %E = OpVariable %_ptr_Function_float Function %31
        %x_75 = OpVariable %_ptr_Function_bool Function %35
        %x_92 = OpVariable %_ptr_Function_bool Function %35
@@ -221,18 +220,17 @@
         %128 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %147
-%tint_symbol = OpFunctionParameter %main_out
-        %151 = OpLabel
-        %152 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %152
-               OpReturn
+ %main_inner = OpFunction %main_out None %147
+        %150 = OpLabel
+        %151 = OpFunctionCall %void %main_1
+        %152 = OpLoad %v4float %x_GLF_color
+        %153 = OpCompositeConstruct %main_out %152
+               OpReturnValue %153
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %154 = OpLabel
-        %155 = OpFunctionCall %void %main_1
-        %157 = OpLoad %v4float %x_GLF_color
-        %158 = OpCompositeConstruct %main_out %157
-        %156 = OpFunctionCall %void %tint_symbol_2 %158
+        %155 = OpLabel
+        %156 = OpFunctionCall %main_out %main_inner
+        %157 = OpCompositeExtract %v4float %156 0
+               OpStore %x_GLF_color_1_1 %157
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.spvasm.expected.spvasm
index 42db932..01257e8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
@@ -15,17 +17,17 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_9 "x_9"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %x_57 "x_57"
                OpName %x_58_phi "x_58_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -38,14 +40,16 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -53,16 +57,12 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf1 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -78,7 +78,7 @@
 %_ptr_Function_bool = OpTypePointer Function %bool
          %56 = OpConstantNull %bool
    %main_out = OpTypeStruct %v4float
-         %88 = OpTypeFunction %void %main_out
+         %88 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %29
@@ -151,20 +151,20 @@
          %51 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %88
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %88
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %92 = OpLabel
-         %93 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %93
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %93 = OpFunctionCall %void %main_1
+         %94 = OpLoad %v4float %x_GLF_color
+         %95 = OpCompositeConstruct %main_out %94
+               OpReturnValue %95
                OpFunctionEnd
        %main = OpFunction %void None %23
-         %95 = OpLabel
-         %96 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %96
-         %97 = OpFunctionCall %void %main_1
-         %99 = OpLoad %v4float %x_GLF_color
-        %100 = OpCompositeConstruct %main_out %99
-         %98 = OpFunctionCall %void %tint_symbol_3 %100
+         %97 = OpLabel
+         %99 = OpLoad %v4float %gl_FragCoord_param_1
+         %98 = OpFunctionCall %main_out %main_inner %99
+        %100 = OpCompositeExtract %v4float %98 0
+               OpStore %x_GLF_color_1_1 %100
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.wgsl.expected.spvasm
index 42db932..01257e8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
@@ -15,17 +17,17 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_9 "x_9"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %x_57 "x_57"
                OpName %x_58_phi "x_58_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -38,14 +40,16 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -53,16 +57,12 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf1 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -78,7 +78,7 @@
 %_ptr_Function_bool = OpTypePointer Function %bool
          %56 = OpConstantNull %bool
    %main_out = OpTypeStruct %v4float
-         %88 = OpTypeFunction %void %main_out
+         %88 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %29
@@ -151,20 +151,20 @@
          %51 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %88
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %88
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %92 = OpLabel
-         %93 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %93
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %93 = OpFunctionCall %void %main_1
+         %94 = OpLoad %v4float %x_GLF_color
+         %95 = OpCompositeConstruct %main_out %94
+               OpReturnValue %95
                OpFunctionEnd
        %main = OpFunction %void None %23
-         %95 = OpLabel
-         %96 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %96
-         %97 = OpFunctionCall %void %main_1
-         %99 = OpLoad %v4float %x_GLF_color
-        %100 = OpCompositeConstruct %main_out %99
-         %98 = OpFunctionCall %void %tint_symbol_3 %100
+         %97 = OpLabel
+         %99 = OpLoad %v4float %gl_FragCoord_param_1
+         %98 = OpFunctionCall %main_out %main_inner %99
+        %100 = OpCompositeExtract %v4float %98 0
+               OpStore %x_GLF_color_1_1 %100
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.spvasm.expected.spvasm
index 8b6f4d4..bb68672 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 166
+; Bound: 165
 ; Schema: 0
                OpCapability Shader
         %124 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %A "A"
                OpName %i "i"
@@ -25,9 +25,9 @@
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -40,9 +40,13 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -50,18 +54,13 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf0 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
@@ -85,7 +84,7 @@
       %false = OpConstantFalse %bool
         %112 = OpConstantComposite %v2bool %false %false
    %main_out = OpTypeStruct %v4float
-        %154 = OpTypeFunction %void %main_out
+        %154 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %A = OpVariable %_ptr_Function__arr_int_uint_2 Function %27
@@ -222,18 +221,17 @@
         %134 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %154
-%tint_symbol = OpFunctionParameter %main_out
-        %158 = OpLabel
-        %159 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %159
-               OpReturn
+ %main_inner = OpFunction %main_out None %154
+        %157 = OpLabel
+        %158 = OpFunctionCall %void %main_1
+        %159 = OpLoad %v4float %x_GLF_color
+        %160 = OpCompositeConstruct %main_out %159
+               OpReturnValue %160
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %161 = OpLabel
-        %162 = OpFunctionCall %void %main_1
-        %164 = OpLoad %v4float %x_GLF_color
-        %165 = OpCompositeConstruct %main_out %164
-        %163 = OpFunctionCall %void %tint_symbol_2 %165
+        %162 = OpLabel
+        %163 = OpFunctionCall %main_out %main_inner
+        %164 = OpCompositeExtract %v4float %163 0
+               OpStore %x_GLF_color_1_1 %164
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.wgsl.expected.spvasm
index 8b6f4d4..bb68672 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 166
+; Bound: 165
 ; Schema: 0
                OpCapability Shader
         %124 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %A "A"
                OpName %i "i"
@@ -25,9 +25,9 @@
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -40,9 +40,13 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -50,18 +54,13 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf0 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
@@ -85,7 +84,7 @@
       %false = OpConstantFalse %bool
         %112 = OpConstantComposite %v2bool %false %false
    %main_out = OpTypeStruct %v4float
-        %154 = OpTypeFunction %void %main_out
+        %154 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %A = OpVariable %_ptr_Function__arr_int_uint_2 Function %27
@@ -222,18 +221,17 @@
         %134 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %154
-%tint_symbol = OpFunctionParameter %main_out
-        %158 = OpLabel
-        %159 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %159
-               OpReturn
+ %main_inner = OpFunction %main_out None %154
+        %157 = OpLabel
+        %158 = OpFunctionCall %void %main_1
+        %159 = OpLoad %v4float %x_GLF_color
+        %160 = OpCompositeConstruct %main_out %159
+               OpReturnValue %160
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %161 = OpLabel
-        %162 = OpFunctionCall %void %main_1
-        %164 = OpLoad %v4float %x_GLF_color
-        %165 = OpCompositeConstruct %main_out %164
-        %163 = OpFunctionCall %void %tint_symbol_2 %165
+        %162 = OpLabel
+        %163 = OpFunctionCall %main_out %main_inner
+        %164 = OpCompositeExtract %v4float %163 0
+               OpStore %x_GLF_color_1_1 %164
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.spvasm.expected.spvasm
index 635a181..5512b0d 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 153
+; Bound: 152
 ; Schema: 0
                OpCapability Shader
          %42 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
@@ -15,7 +16,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %v1 "v1"
@@ -28,9 +28,9 @@
                OpName %x_102_phi "x_102_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
@@ -43,8 +43,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -52,18 +56,13 @@
        %buf1 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
        %buf0 = OpTypeStruct %_arr_float_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -86,11 +85,11 @@
       %int_2 = OpConstant %int 2
       %int_3 = OpConstant %int 3
    %main_out = OpTypeStruct %v4float
-        %141 = OpTypeFunction %void %main_out
+        %141 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %a = OpVariable %_ptr_Function_uint Function %26
-         %v1 = OpVariable %_ptr_Function_v4float Function %17
+         %v1 = OpVariable %_ptr_Function_v4float Function %5
           %E = OpVariable %_ptr_Function_float Function %31
        %x_69 = OpVariable %_ptr_Function_bool Function %35
        %x_85 = OpVariable %_ptr_Function_bool Function %35
@@ -215,18 +214,17 @@
         %120 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %141
-%tint_symbol = OpFunctionParameter %main_out
-        %145 = OpLabel
-        %146 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %146
-               OpReturn
+ %main_inner = OpFunction %main_out None %141
+        %144 = OpLabel
+        %145 = OpFunctionCall %void %main_1
+        %146 = OpLoad %v4float %x_GLF_color
+        %147 = OpCompositeConstruct %main_out %146
+               OpReturnValue %147
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %148 = OpLabel
-        %149 = OpFunctionCall %void %main_1
-        %151 = OpLoad %v4float %x_GLF_color
-        %152 = OpCompositeConstruct %main_out %151
-        %150 = OpFunctionCall %void %tint_symbol_2 %152
+        %149 = OpLabel
+        %150 = OpFunctionCall %main_out %main_inner
+        %151 = OpCompositeExtract %v4float %150 0
+               OpStore %x_GLF_color_1_1 %151
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.wgsl.expected.spvasm
index 635a181..5512b0d 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 153
+; Bound: 152
 ; Schema: 0
                OpCapability Shader
          %42 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
@@ -15,7 +16,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %v1 "v1"
@@ -28,9 +28,9 @@
                OpName %x_102_phi "x_102_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
@@ -43,8 +43,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -52,18 +56,13 @@
        %buf1 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
        %buf0 = OpTypeStruct %_arr_float_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -86,11 +85,11 @@
       %int_2 = OpConstant %int 2
       %int_3 = OpConstant %int 3
    %main_out = OpTypeStruct %v4float
-        %141 = OpTypeFunction %void %main_out
+        %141 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %a = OpVariable %_ptr_Function_uint Function %26
-         %v1 = OpVariable %_ptr_Function_v4float Function %17
+         %v1 = OpVariable %_ptr_Function_v4float Function %5
           %E = OpVariable %_ptr_Function_float Function %31
        %x_69 = OpVariable %_ptr_Function_bool Function %35
        %x_85 = OpVariable %_ptr_Function_bool Function %35
@@ -215,18 +214,17 @@
         %120 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %141
-%tint_symbol = OpFunctionParameter %main_out
-        %145 = OpLabel
-        %146 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %146
-               OpReturn
+ %main_inner = OpFunction %main_out None %141
+        %144 = OpLabel
+        %145 = OpFunctionCall %void %main_1
+        %146 = OpLoad %v4float %x_GLF_color
+        %147 = OpCompositeConstruct %main_out %146
+               OpReturnValue %147
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %148 = OpLabel
-        %149 = OpFunctionCall %void %main_1
-        %151 = OpLoad %v4float %x_GLF_color
-        %152 = OpCompositeConstruct %main_out %151
-        %150 = OpFunctionCall %void %tint_symbol_2 %152
+        %149 = OpLabel
+        %150 = OpFunctionCall %main_out %main_inner
+        %151 = OpCompositeExtract %v4float %150 0
+               OpStore %x_GLF_color_1_1 %151
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.spvasm.expected.spvasm
index 84dd174..4155669 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 152
+; Bound: 151
 ; Schema: 0
                OpCapability Shader
          %46 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %v1 "v1"
@@ -28,9 +28,9 @@
                OpName %x_102_phi "x_102_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_4 ArrayStride 16
@@ -43,9 +43,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
 %_arr_float_uint_4 = OpTypeArray %float %uint_4
@@ -57,12 +60,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -81,11 +80,11 @@
       %int_2 = OpConstant %int 2
       %int_3 = OpConstant %int 3
    %main_out = OpTypeStruct %v4float
-        %140 = OpTypeFunction %void %main_out
+        %140 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
           %a = OpVariable %_ptr_Function_uint Function %25
-         %v1 = OpVariable %_ptr_Function_v4float Function %16
+         %v1 = OpVariable %_ptr_Function_v4float Function %5
           %E = OpVariable %_ptr_Function_float Function %30
        %x_69 = OpVariable %_ptr_Function_bool Function %34
        %x_85 = OpVariable %_ptr_Function_bool Function %34
@@ -214,18 +213,17 @@
         %120 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %140
-%tint_symbol = OpFunctionParameter %main_out
-        %144 = OpLabel
-        %145 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %145
-               OpReturn
+ %main_inner = OpFunction %main_out None %140
+        %143 = OpLabel
+        %144 = OpFunctionCall %void %main_1
+        %145 = OpLoad %v4float %x_GLF_color
+        %146 = OpCompositeConstruct %main_out %145
+               OpReturnValue %146
                OpFunctionEnd
        %main = OpFunction %void None %19
-        %147 = OpLabel
-        %148 = OpFunctionCall %void %main_1
-        %150 = OpLoad %v4float %x_GLF_color
-        %151 = OpCompositeConstruct %main_out %150
-        %149 = OpFunctionCall %void %tint_symbol_2 %151
+        %148 = OpLabel
+        %149 = OpFunctionCall %main_out %main_inner
+        %150 = OpCompositeExtract %v4float %149 0
+               OpStore %x_GLF_color_1_1 %150
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.wgsl.expected.spvasm
index 84dd174..4155669 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 152
+; Bound: 151
 ; Schema: 0
                OpCapability Shader
          %46 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %v1 "v1"
@@ -28,9 +28,9 @@
                OpName %x_102_phi "x_102_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_4 ArrayStride 16
@@ -43,9 +43,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
 %_arr_float_uint_4 = OpTypeArray %float %uint_4
@@ -57,12 +60,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -81,11 +80,11 @@
       %int_2 = OpConstant %int 2
       %int_3 = OpConstant %int 3
    %main_out = OpTypeStruct %v4float
-        %140 = OpTypeFunction %void %main_out
+        %140 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
           %a = OpVariable %_ptr_Function_uint Function %25
-         %v1 = OpVariable %_ptr_Function_v4float Function %16
+         %v1 = OpVariable %_ptr_Function_v4float Function %5
           %E = OpVariable %_ptr_Function_float Function %30
        %x_69 = OpVariable %_ptr_Function_bool Function %34
        %x_85 = OpVariable %_ptr_Function_bool Function %34
@@ -214,18 +213,17 @@
         %120 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %140
-%tint_symbol = OpFunctionParameter %main_out
-        %144 = OpLabel
-        %145 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %145
-               OpReturn
+ %main_inner = OpFunction %main_out None %140
+        %143 = OpLabel
+        %144 = OpFunctionCall %void %main_1
+        %145 = OpLoad %v4float %x_GLF_color
+        %146 = OpCompositeConstruct %main_out %145
+               OpReturnValue %146
                OpFunctionEnd
        %main = OpFunction %void None %19
-        %147 = OpLabel
-        %148 = OpFunctionCall %void %main_1
-        %150 = OpLoad %v4float %x_GLF_color
-        %151 = OpCompositeConstruct %main_out %150
-        %149 = OpFunctionCall %void %tint_symbol_2 %151
+        %148 = OpLabel
+        %149 = OpFunctionCall %main_out %main_inner
+        %150 = OpCompositeExtract %v4float %149 0
+               OpStore %x_GLF_color_1_1 %150
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.spvasm.expected.spvasm
index 6302166..f9314fe 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 65
+; Bound: 64
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -14,14 +15,13 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %color "color"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -34,9 +34,12 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -48,12 +51,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -64,10 +63,10 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
 %_ptr_Function_float = OpTypePointer Function %float
    %main_out = OpTypeStruct %v4float
-         %53 = OpTypeFunction %void %main_out
+         %53 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
-      %color = OpVariable %_ptr_Function_v4float Function %16
+      %color = OpVariable %_ptr_Function_v4float Function %5
          %28 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0
          %29 = OpLoad %float %28
          %30 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0
@@ -99,18 +98,17 @@
                OpStore %x_GLF_color %52
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %53
-%tint_symbol = OpFunctionParameter %main_out
-         %57 = OpLabel
-         %58 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %58
-               OpReturn
+ %main_inner = OpFunction %main_out None %53
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %main_1
+         %58 = OpLoad %v4float %x_GLF_color
+         %59 = OpCompositeConstruct %main_out %58
+               OpReturnValue %59
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %60 = OpLabel
-         %61 = OpFunctionCall %void %main_1
-         %63 = OpLoad %v4float %x_GLF_color
-         %64 = OpCompositeConstruct %main_out %63
-         %62 = OpFunctionCall %void %tint_symbol_2 %64
+         %61 = OpLabel
+         %62 = OpFunctionCall %main_out %main_inner
+         %63 = OpCompositeExtract %v4float %62 0
+               OpStore %x_GLF_color_1_1 %63
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.wgsl.expected.spvasm
index 6302166..f9314fe 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 65
+; Bound: 64
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -14,14 +15,13 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %color "color"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -34,9 +34,12 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -48,12 +51,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -64,10 +63,10 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
 %_ptr_Function_float = OpTypePointer Function %float
    %main_out = OpTypeStruct %v4float
-         %53 = OpTypeFunction %void %main_out
+         %53 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
-      %color = OpVariable %_ptr_Function_v4float Function %16
+      %color = OpVariable %_ptr_Function_v4float Function %5
          %28 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0
          %29 = OpLoad %float %28
          %30 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_0
@@ -99,18 +98,17 @@
                OpStore %x_GLF_color %52
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %53
-%tint_symbol = OpFunctionParameter %main_out
-         %57 = OpLabel
-         %58 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %58
-               OpReturn
+ %main_inner = OpFunction %main_out None %53
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %main_1
+         %58 = OpLoad %v4float %x_GLF_color
+         %59 = OpCompositeConstruct %main_out %58
+               OpReturnValue %59
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %60 = OpLabel
-         %61 = OpFunctionCall %void %main_1
-         %63 = OpLoad %v4float %x_GLF_color
-         %64 = OpCompositeConstruct %main_out %63
-         %62 = OpFunctionCall %void %tint_symbol_2 %64
+         %61 = OpLabel
+         %62 = OpFunctionCall %main_out %main_inner
+         %63 = OpCompositeExtract %v4float %62 0
+               OpStore %x_GLF_color_1_1 %63
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.spvasm.expected.spvasm
index 9bb8ae6..946dce4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 114
+; Bound: 113
 ; Schema: 0
                OpCapability Shader
          %62 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
@@ -26,9 +26,9 @@
                OpName %x_68_phi "x_68_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_4 ArrayStride 16
@@ -41,9 +41,12 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
 %_arr_float_uint_4 = OpTypeArray %float %uint_4
@@ -56,12 +59,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -79,7 +78,7 @@
       %int_2 = OpConstant %int 2
       %int_3 = OpConstant %int 3
    %main_out = OpTypeStruct %v4float
-        %102 = OpTypeFunction %void %main_out
+        %102 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %26
@@ -176,18 +175,17 @@
          %82 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %102
-%tint_symbol = OpFunctionParameter %main_out
-        %106 = OpLabel
-        %107 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %107
-               OpReturn
+ %main_inner = OpFunction %main_out None %102
+        %105 = OpLabel
+        %106 = OpFunctionCall %void %main_1
+        %107 = OpLoad %v4float %x_GLF_color
+        %108 = OpCompositeConstruct %main_out %107
+               OpReturnValue %108
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %109 = OpLabel
-        %110 = OpFunctionCall %void %main_1
-        %112 = OpLoad %v4float %x_GLF_color
-        %113 = OpCompositeConstruct %main_out %112
-        %111 = OpFunctionCall %void %tint_symbol_2 %113
+        %110 = OpLabel
+        %111 = OpFunctionCall %main_out %main_inner
+        %112 = OpCompositeExtract %v4float %111 0
+               OpStore %x_GLF_color_1_1 %112
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.wgsl.expected.spvasm
index 9bb8ae6..946dce4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 114
+; Bound: 113
 ; Schema: 0
                OpCapability Shader
          %62 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
@@ -26,9 +26,9 @@
                OpName %x_68_phi "x_68_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_4 ArrayStride 16
@@ -41,9 +41,12 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
 %_arr_float_uint_4 = OpTypeArray %float %uint_4
@@ -56,12 +59,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -79,7 +78,7 @@
       %int_2 = OpConstant %int 2
       %int_3 = OpConstant %int 3
    %main_out = OpTypeStruct %v4float
-        %102 = OpTypeFunction %void %main_out
+        %102 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %26
@@ -176,18 +175,17 @@
          %82 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %102
-%tint_symbol = OpFunctionParameter %main_out
-        %106 = OpLabel
-        %107 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %107
-               OpReturn
+ %main_inner = OpFunction %main_out None %102
+        %105 = OpLabel
+        %106 = OpFunctionCall %void %main_1
+        %107 = OpLoad %v4float %x_GLF_color
+        %108 = OpCompositeConstruct %main_out %107
+               OpReturnValue %108
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %109 = OpLabel
-        %110 = OpFunctionCall %void %main_1
-        %112 = OpLoad %v4float %x_GLF_color
-        %113 = OpCompositeConstruct %main_out %112
-        %111 = OpFunctionCall %void %tint_symbol_2 %113
+        %110 = OpLabel
+        %111 = OpFunctionCall %main_out %main_inner
+        %112 = OpCompositeExtract %v4float %111 0
+               OpStore %x_GLF_color_1_1 %112
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.spvasm.expected.spvasm
index 91daf4a..5907280 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.spvasm.expected.spvasm
@@ -1,45 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
          %25 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf0 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -50,7 +49,7 @@
        %bool = OpTypeBool
       %int_0 = OpConstant %int 0
    %main_out = OpTypeStruct %v4float
-         %45 = OpTypeFunction %void %main_out
+         %45 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %22 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_1
@@ -80,18 +79,17 @@
          %29 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %45
-%tint_symbol = OpFunctionParameter %main_out
-         %49 = OpLabel
-         %50 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %50
-               OpReturn
+ %main_inner = OpFunction %main_out None %45
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %main_1
+         %50 = OpLoad %v4float %x_GLF_color
+         %51 = OpCompositeConstruct %main_out %50
+               OpReturnValue %51
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %main_1
-         %55 = OpLoad %v4float %x_GLF_color
-         %56 = OpCompositeConstruct %main_out %55
-         %54 = OpFunctionCall %void %tint_symbol_2 %56
+         %53 = OpLabel
+         %54 = OpFunctionCall %main_out %main_inner
+         %55 = OpCompositeExtract %v4float %54 0
+               OpStore %x_GLF_color_1_1 %55
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.wgsl.expected.spvasm
index 91daf4a..5907280 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.wgsl.expected.spvasm
@@ -1,45 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
          %25 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf0 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -50,7 +49,7 @@
        %bool = OpTypeBool
       %int_0 = OpConstant %int 0
    %main_out = OpTypeStruct %v4float
-         %45 = OpTypeFunction %void %main_out
+         %45 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %22 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_1
@@ -80,18 +79,17 @@
          %29 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %45
-%tint_symbol = OpFunctionParameter %main_out
-         %49 = OpLabel
-         %50 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %50
-               OpReturn
+ %main_inner = OpFunction %main_out None %45
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %main_1
+         %50 = OpLoad %v4float %x_GLF_color
+         %51 = OpCompositeConstruct %main_out %50
+               OpReturnValue %51
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %main_1
-         %55 = OpLoad %v4float %x_GLF_color
-         %56 = OpCompositeConstruct %main_out %55
-         %54 = OpFunctionCall %void %tint_symbol_2 %56
+         %53 = OpLabel
+         %54 = OpFunctionCall %main_out %main_inner
+         %55 = OpCompositeExtract %v4float %54 0
+               OpStore %x_GLF_color_1_1 %55
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.spvasm.expected.spvasm
index 22f831d..885e4b4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.spvasm.expected.spvasm
@@ -1,32 +1,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 71
+; Bound: 70
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -34,13 +38,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -52,7 +51,7 @@
       %int_5 = OpConstant %int 5
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %59 = OpTypeFunction %void %main_out
+         %59 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -96,18 +95,17 @@
          %40 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %59
-%tint_symbol = OpFunctionParameter %main_out
-         %63 = OpLabel
-         %64 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %64
-               OpReturn
+ %main_inner = OpFunction %main_out None %59
+         %62 = OpLabel
+         %63 = OpFunctionCall %void %main_1
+         %64 = OpLoad %v4float %x_GLF_color
+         %65 = OpCompositeConstruct %main_out %64
+               OpReturnValue %65
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %66 = OpLabel
-         %67 = OpFunctionCall %void %main_1
-         %69 = OpLoad %v4float %x_GLF_color
-         %70 = OpCompositeConstruct %main_out %69
-         %68 = OpFunctionCall %void %tint_symbol_2 %70
+         %67 = OpLabel
+         %68 = OpFunctionCall %main_out %main_inner
+         %69 = OpCompositeExtract %v4float %68 0
+               OpStore %x_GLF_color_1_1 %69
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.wgsl.expected.spvasm
index 22f831d..885e4b4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.wgsl.expected.spvasm
@@ -1,32 +1,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 71
+; Bound: 70
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -34,13 +38,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -52,7 +51,7 @@
       %int_5 = OpConstant %int 5
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %59 = OpTypeFunction %void %main_out
+         %59 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -96,18 +95,17 @@
          %40 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %59
-%tint_symbol = OpFunctionParameter %main_out
-         %63 = OpLabel
-         %64 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %64
-               OpReturn
+ %main_inner = OpFunction %main_out None %59
+         %62 = OpLabel
+         %63 = OpFunctionCall %void %main_1
+         %64 = OpLoad %v4float %x_GLF_color
+         %65 = OpCompositeConstruct %main_out %64
+               OpReturnValue %65
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %66 = OpLabel
-         %67 = OpFunctionCall %void %main_1
-         %69 = OpLoad %v4float %x_GLF_color
-         %70 = OpCompositeConstruct %main_out %69
-         %68 = OpFunctionCall %void %tint_symbol_2 %70
+         %67 = OpLabel
+         %68 = OpFunctionCall %main_out %main_inner
+         %69 = OpCompositeExtract %v4float %68 0
+               OpStore %x_GLF_color_1_1 %69
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.spvasm.expected.spvasm
index 065f841..0afcff1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 75
+; Bound: 74
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -14,14 +15,13 @@
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -34,8 +34,12 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -43,18 +47,13 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf1 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -67,7 +66,7 @@
 %_ptr_Uniform_float = OpTypePointer Uniform %float
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %63 = OpTypeFunction %void %main_out
+         %63 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %26
@@ -109,18 +108,17 @@
          %49 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %63
-%tint_symbol = OpFunctionParameter %main_out
-         %67 = OpLabel
-         %68 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %68
-               OpReturn
+ %main_inner = OpFunction %main_out None %63
+         %66 = OpLabel
+         %67 = OpFunctionCall %void %main_1
+         %68 = OpLoad %v4float %x_GLF_color
+         %69 = OpCompositeConstruct %main_out %68
+               OpReturnValue %69
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %70 = OpLabel
-         %71 = OpFunctionCall %void %main_1
-         %73 = OpLoad %v4float %x_GLF_color
-         %74 = OpCompositeConstruct %main_out %73
-         %72 = OpFunctionCall %void %tint_symbol_2 %74
+         %71 = OpLabel
+         %72 = OpFunctionCall %main_out %main_inner
+         %73 = OpCompositeExtract %v4float %72 0
+               OpStore %x_GLF_color_1_1 %73
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.wgsl.expected.spvasm
index 065f841..0afcff1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 75
+; Bound: 74
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -14,14 +15,13 @@
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -34,8 +34,12 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -43,18 +47,13 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf1 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -67,7 +66,7 @@
 %_ptr_Uniform_float = OpTypePointer Uniform %float
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %63 = OpTypeFunction %void %main_out
+         %63 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %26
@@ -109,18 +108,17 @@
          %49 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %63
-%tint_symbol = OpFunctionParameter %main_out
-         %67 = OpLabel
-         %68 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %68
-               OpReturn
+ %main_inner = OpFunction %main_out None %63
+         %66 = OpLabel
+         %67 = OpFunctionCall %void %main_1
+         %68 = OpLoad %v4float %x_GLF_color
+         %69 = OpCompositeConstruct %main_out %68
+               OpReturnValue %69
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %70 = OpLabel
-         %71 = OpFunctionCall %void %main_1
-         %73 = OpLoad %v4float %x_GLF_color
-         %74 = OpCompositeConstruct %main_out %73
-         %72 = OpFunctionCall %void %tint_symbol_2 %74
+         %71 = OpLabel
+         %72 = OpFunctionCall %main_out %main_inner
+         %73 = OpCompositeExtract %v4float %72 0
+               OpStore %x_GLF_color_1_1 %73
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.spvasm.expected.spvasm
index b54ea8d..b07c299 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 257
+; Bound: 256
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %f_i1_ "f_i1_"
                OpName %a "a"
                OpName %i "i"
@@ -24,18 +24,22 @@
                OpName %i_2 "i_2"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_12 ArrayStride 16
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_12 = OpConstant %uint 12
@@ -43,13 +47,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_12
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Function_int = OpTypePointer Function %int
          %15 = OpTypeFunction %int %_ptr_Function_int
          %21 = OpConstantNull %int
@@ -75,7 +74,7 @@
       %int_9 = OpConstant %int 9
      %int_10 = OpConstant %int 10
    %main_out = OpTypeStruct %v4float
-        %245 = OpTypeFunction %void %main_out
+        %245 = OpTypeFunction %main_out
       %f_i1_ = OpFunction %int None %15
           %a = OpFunctionParameter %_ptr_Function_int
          %19 = OpLabel
@@ -354,18 +353,17 @@
                OpStore %x_GLF_color %244
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %245
-%tint_symbol = OpFunctionParameter %main_out
-        %249 = OpLabel
-        %250 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %250
-               OpReturn
+ %main_inner = OpFunction %main_out None %245
+        %248 = OpLabel
+        %249 = OpFunctionCall %void %main_1
+        %250 = OpLoad %v4float %x_GLF_color
+        %251 = OpCompositeConstruct %main_out %250
+               OpReturnValue %251
                OpFunctionEnd
        %main = OpFunction %void None %54
-        %252 = OpLabel
-        %253 = OpFunctionCall %void %main_1
-        %255 = OpLoad %v4float %x_GLF_color
-        %256 = OpCompositeConstruct %main_out %255
-        %254 = OpFunctionCall %void %tint_symbol_2 %256
+        %253 = OpLabel
+        %254 = OpFunctionCall %main_out %main_inner
+        %255 = OpCompositeExtract %v4float %254 0
+               OpStore %x_GLF_color_1_1 %255
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.wgsl.expected.spvasm
index b54ea8d..b07c299 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 257
+; Bound: 256
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %f_i1_ "f_i1_"
                OpName %a "a"
                OpName %i "i"
@@ -24,18 +24,22 @@
                OpName %i_2 "i_2"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_12 ArrayStride 16
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_12 = OpConstant %uint 12
@@ -43,13 +47,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_12
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Function_int = OpTypePointer Function %int
          %15 = OpTypeFunction %int %_ptr_Function_int
          %21 = OpConstantNull %int
@@ -75,7 +74,7 @@
       %int_9 = OpConstant %int 9
      %int_10 = OpConstant %int 10
    %main_out = OpTypeStruct %v4float
-        %245 = OpTypeFunction %void %main_out
+        %245 = OpTypeFunction %main_out
       %f_i1_ = OpFunction %int None %15
           %a = OpFunctionParameter %_ptr_Function_int
          %19 = OpLabel
@@ -354,18 +353,17 @@
                OpStore %x_GLF_color %244
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %245
-%tint_symbol = OpFunctionParameter %main_out
-        %249 = OpLabel
-        %250 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %250
-               OpReturn
+ %main_inner = OpFunction %main_out None %245
+        %248 = OpLabel
+        %249 = OpFunctionCall %void %main_1
+        %250 = OpLoad %v4float %x_GLF_color
+        %251 = OpCompositeConstruct %main_out %250
+               OpReturnValue %251
                OpFunctionEnd
        %main = OpFunction %void None %54
-        %252 = OpLabel
-        %253 = OpFunctionCall %void %main_1
-        %255 = OpLoad %v4float %x_GLF_color
-        %256 = OpCompositeConstruct %main_out %255
-        %254 = OpFunctionCall %void %tint_symbol_2 %256
+        %253 = OpLabel
+        %254 = OpFunctionCall %main_out %main_inner
+        %255 = OpCompositeExtract %v4float %254 0
+               OpStore %x_GLF_color_1_1 %255
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.spvasm.expected.spvasm
index eaeec78..39246e9 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 76
+; Bound: 75
 ; Schema: 0
                OpCapability Shader
          %48 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
@@ -15,14 +16,13 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -35,12 +35,13 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
@@ -53,8 +54,6 @@
        %buf1 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -69,7 +68,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Private_float = OpTypePointer Private %float
    %main_out = OpTypeStruct %v4float
-         %64 = OpTypeFunction %void %main_out
+         %64 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %25
@@ -109,18 +108,17 @@
          %57 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %64
-%tint_symbol = OpFunctionParameter %main_out
-         %68 = OpLabel
-         %69 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %69
-               OpReturn
+ %main_inner = OpFunction %main_out None %64
+         %67 = OpLabel
+         %68 = OpFunctionCall %void %main_1
+         %69 = OpLoad %v4float %x_GLF_color
+         %70 = OpCompositeConstruct %main_out %69
+               OpReturnValue %70
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %71 = OpLabel
-         %72 = OpFunctionCall %void %main_1
-         %74 = OpLoad %v4float %x_GLF_color
-         %75 = OpCompositeConstruct %main_out %74
-         %73 = OpFunctionCall %void %tint_symbol_2 %75
+         %72 = OpLabel
+         %73 = OpFunctionCall %main_out %main_inner
+         %74 = OpCompositeExtract %v4float %73 0
+               OpStore %x_GLF_color_1_1 %74
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.wgsl.expected.spvasm
index 690533b..132ad8a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 72
+; Bound: 71
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
@@ -14,14 +15,13 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -34,12 +34,13 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
@@ -52,8 +53,6 @@
        %buf1 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -68,7 +67,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Private_float = OpTypePointer Private %float
    %main_out = OpTypeStruct %v4float
-         %60 = OpTypeFunction %void %main_out
+         %60 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %25
@@ -105,18 +104,17 @@
          %53 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %60
-%tint_symbol = OpFunctionParameter %main_out
-         %64 = OpLabel
-         %65 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %65
-               OpReturn
+ %main_inner = OpFunction %main_out None %60
+         %63 = OpLabel
+         %64 = OpFunctionCall %void %main_1
+         %65 = OpLoad %v4float %x_GLF_color
+         %66 = OpCompositeConstruct %main_out %65
+               OpReturnValue %66
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %67 = OpLabel
-         %68 = OpFunctionCall %void %main_1
-         %70 = OpLoad %v4float %x_GLF_color
-         %71 = OpCompositeConstruct %main_out %70
-         %69 = OpFunctionCall %void %tint_symbol_2 %71
+         %68 = OpLabel
+         %69 = OpFunctionCall %main_out %main_inner
+         %70 = OpCompositeExtract %v4float %69 0
+               OpStore %x_GLF_color_1_1 %70
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.spvasm.expected.spvasm
index 079ad52..4c20517 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 76
+; Bound: 75
 ; Schema: 0
                OpCapability Shader
          %48 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
@@ -15,14 +16,13 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -35,12 +35,13 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
@@ -53,8 +54,6 @@
        %buf1 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -69,7 +68,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Private_float = OpTypePointer Private %float
    %main_out = OpTypeStruct %v4float
-         %64 = OpTypeFunction %void %main_out
+         %64 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %25
@@ -109,18 +108,17 @@
          %57 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %64
-%tint_symbol = OpFunctionParameter %main_out
-         %68 = OpLabel
-         %69 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %69
-               OpReturn
+ %main_inner = OpFunction %main_out None %64
+         %67 = OpLabel
+         %68 = OpFunctionCall %void %main_1
+         %69 = OpLoad %v4float %x_GLF_color
+         %70 = OpCompositeConstruct %main_out %69
+               OpReturnValue %70
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %71 = OpLabel
-         %72 = OpFunctionCall %void %main_1
-         %74 = OpLoad %v4float %x_GLF_color
-         %75 = OpCompositeConstruct %main_out %74
-         %73 = OpFunctionCall %void %tint_symbol_2 %75
+         %72 = OpLabel
+         %73 = OpFunctionCall %main_out %main_inner
+         %74 = OpCompositeExtract %v4float %73 0
+               OpStore %x_GLF_color_1_1 %74
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.wgsl.expected.spvasm
index 0a23eb0..c42ab11 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 72
+; Bound: 71
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
@@ -14,14 +15,13 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -34,12 +34,13 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
@@ -52,8 +53,6 @@
        %buf1 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -68,7 +67,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Private_float = OpTypePointer Private %float
    %main_out = OpTypeStruct %v4float
-         %60 = OpTypeFunction %void %main_out
+         %60 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %25
@@ -105,18 +104,17 @@
          %53 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %60
-%tint_symbol = OpFunctionParameter %main_out
-         %64 = OpLabel
-         %65 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %65
-               OpReturn
+ %main_inner = OpFunction %main_out None %60
+         %63 = OpLabel
+         %64 = OpFunctionCall %void %main_1
+         %65 = OpLoad %v4float %x_GLF_color
+         %66 = OpCompositeConstruct %main_out %65
+               OpReturnValue %66
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %67 = OpLabel
-         %68 = OpFunctionCall %void %main_1
-         %70 = OpLoad %v4float %x_GLF_color
-         %71 = OpCompositeConstruct %main_out %70
-         %69 = OpFunctionCall %void %tint_symbol_2 %71
+         %68 = OpLabel
+         %69 = OpFunctionCall %main_out %main_inner
+         %70 = OpCompositeExtract %v4float %69 0
+               OpStore %x_GLF_color_1_1 %70
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.spvasm.expected.spvasm
index c602080..52c4730 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 61
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
          %29 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_5 "x_5"
@@ -15,13 +16,12 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -34,26 +34,25 @@
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf0 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_7 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -64,7 +63,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %49 = OpTypeFunction %void %main_out
+         %49 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
          %26 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_0
@@ -93,18 +92,17 @@
          %33 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %49
-%tint_symbol = OpFunctionParameter %main_out
-         %53 = OpLabel
-         %54 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %54
-               OpReturn
+ %main_inner = OpFunction %main_out None %49
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %main_1
+         %54 = OpLoad %v4float %x_GLF_color
+         %55 = OpCompositeConstruct %main_out %54
+               OpReturnValue %55
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %main_1
-         %59 = OpLoad %v4float %x_GLF_color
-         %60 = OpCompositeConstruct %main_out %59
-         %58 = OpFunctionCall %void %tint_symbol_2 %60
+         %57 = OpLabel
+         %58 = OpFunctionCall %main_out %main_inner
+         %59 = OpCompositeExtract %v4float %58 0
+               OpStore %x_GLF_color_1_1 %59
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.wgsl.expected.spvasm
index c602080..52c4730 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 61
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
          %29 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_5 "x_5"
@@ -15,13 +16,12 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -34,26 +34,25 @@
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf0 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_7 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -64,7 +63,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %49 = OpTypeFunction %void %main_out
+         %49 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
          %26 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %int_0
@@ -93,18 +92,17 @@
          %33 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %49
-%tint_symbol = OpFunctionParameter %main_out
-         %53 = OpLabel
-         %54 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %54
-               OpReturn
+ %main_inner = OpFunction %main_out None %49
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %main_1
+         %54 = OpLoad %v4float %x_GLF_color
+         %55 = OpCompositeConstruct %main_out %54
+               OpReturnValue %55
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %main_1
-         %59 = OpLoad %v4float %x_GLF_color
-         %60 = OpCompositeConstruct %main_out %59
-         %58 = OpFunctionCall %void %tint_symbol_2 %60
+         %57 = OpLabel
+         %58 = OpFunctionCall %main_out %main_inner
+         %59 = OpCompositeExtract %v4float %58 0
+               OpStore %x_GLF_color_1_1 %59
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.spvasm.expected.spvasm
index 0e18564..05fbcd6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 208
+; Bound: 207
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "v1"
                OpName %x_8 "x_8"
@@ -14,7 +15,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %S "S"
                OpMemberName %S 0 "data"
                OpName %func_struct_S_i11_ "func_struct_S_i11_"
@@ -31,9 +31,9 @@
                OpName %x_143_phi "x_143_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_8 NonWritable
@@ -45,11 +45,14 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_arr_S_uint_3 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
@@ -61,12 +64,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %S = OpTypeStruct %int
 %_ptr_Function_S = OpTypePointer Function %S
@@ -92,7 +91,7 @@
       %int_3 = OpConstant %int 3
       %int_4 = OpConstant %int 4
    %main_out = OpTypeStruct %v4float
-        %196 = OpTypeFunction %void %main_out
+        %196 = OpTypeFunction %main_out
 %func_struct_S_i11_ = OpFunction %void None %19
           %s = OpFunctionParameter %_ptr_Function_S
          %25 = OpLabel
@@ -316,18 +315,17 @@
         %176 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %196
-%tint_symbol = OpFunctionParameter %main_out
-        %200 = OpLabel
-        %201 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %201
-               OpReturn
+ %main_inner = OpFunction %main_out None %196
+        %199 = OpLabel
+        %200 = OpFunctionCall %void %main_1
+        %201 = OpLoad %v4float %x_GLF_color
+        %202 = OpCompositeConstruct %main_out %201
+               OpReturnValue %202
                OpFunctionEnd
        %main = OpFunction %void None %44
-        %203 = OpLabel
-        %204 = OpFunctionCall %void %main_1
-        %206 = OpLoad %v4float %x_GLF_color
-        %207 = OpCompositeConstruct %main_out %206
-        %205 = OpFunctionCall %void %tint_symbol_2 %207
+        %204 = OpLabel
+        %205 = OpFunctionCall %main_out %main_inner
+        %206 = OpCompositeExtract %v4float %205 0
+               OpStore %x_GLF_color_1_1 %206
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.wgsl.expected.spvasm
index 0e18564..05fbcd6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 208
+; Bound: 207
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "v1"
                OpName %x_8 "x_8"
@@ -14,7 +15,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %S "S"
                OpMemberName %S 0 "data"
                OpName %func_struct_S_i11_ "func_struct_S_i11_"
@@ -31,9 +31,9 @@
                OpName %x_143_phi "x_143_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_8 NonWritable
@@ -45,11 +45,14 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_arr_S_uint_3 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
@@ -61,12 +64,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %S = OpTypeStruct %int
 %_ptr_Function_S = OpTypePointer Function %S
@@ -92,7 +91,7 @@
       %int_3 = OpConstant %int 3
       %int_4 = OpConstant %int 4
    %main_out = OpTypeStruct %v4float
-        %196 = OpTypeFunction %void %main_out
+        %196 = OpTypeFunction %main_out
 %func_struct_S_i11_ = OpFunction %void None %19
           %s = OpFunctionParameter %_ptr_Function_S
          %25 = OpLabel
@@ -316,18 +315,17 @@
         %176 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %196
-%tint_symbol = OpFunctionParameter %main_out
-        %200 = OpLabel
-        %201 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %201
-               OpReturn
+ %main_inner = OpFunction %main_out None %196
+        %199 = OpLabel
+        %200 = OpFunctionCall %void %main_1
+        %201 = OpLoad %v4float %x_GLF_color
+        %202 = OpCompositeConstruct %main_out %201
+               OpReturnValue %202
                OpFunctionEnd
        %main = OpFunction %void None %44
-        %203 = OpLabel
-        %204 = OpFunctionCall %void %main_1
-        %206 = OpLoad %v4float %x_GLF_color
-        %207 = OpCompositeConstruct %main_out %206
-        %205 = OpFunctionCall %void %tint_symbol_2 %207
+        %204 = OpLabel
+        %205 = OpFunctionCall %main_out %main_inner
+        %206 = OpCompositeExtract %v4float %205 0
+               OpStore %x_GLF_color_1_1 %206
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.spvasm.expected.spvasm
index 4b3abcc..076cd83 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 82
+; Bound: 81
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
@@ -14,14 +15,13 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -34,12 +34,13 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
@@ -52,8 +53,6 @@
        %buf0 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -65,7 +64,7 @@
        %bool = OpTypeBool
 %_ptr_Uniform_float = OpTypePointer Uniform %float
    %main_out = OpTypeStruct %v4float
-         %70 = OpTypeFunction %void %main_out
+         %70 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %25
@@ -125,18 +124,17 @@
          %36 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %70
-%tint_symbol = OpFunctionParameter %main_out
-         %74 = OpLabel
-         %75 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %75
-               OpReturn
+ %main_inner = OpFunction %main_out None %70
+         %73 = OpLabel
+         %74 = OpFunctionCall %void %main_1
+         %75 = OpLoad %v4float %x_GLF_color
+         %76 = OpCompositeConstruct %main_out %75
+               OpReturnValue %76
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %77 = OpLabel
-         %78 = OpFunctionCall %void %main_1
-         %80 = OpLoad %v4float %x_GLF_color
-         %81 = OpCompositeConstruct %main_out %80
-         %79 = OpFunctionCall %void %tint_symbol_2 %81
+         %78 = OpLabel
+         %79 = OpFunctionCall %main_out %main_inner
+         %80 = OpCompositeExtract %v4float %79 0
+               OpStore %x_GLF_color_1_1 %80
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.wgsl.expected.spvasm
index 4b3abcc..076cd83 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 82
+; Bound: 81
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
@@ -14,14 +15,13 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -34,12 +34,13 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
@@ -52,8 +53,6 @@
        %buf0 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -65,7 +64,7 @@
        %bool = OpTypeBool
 %_ptr_Uniform_float = OpTypePointer Uniform %float
    %main_out = OpTypeStruct %v4float
-         %70 = OpTypeFunction %void %main_out
+         %70 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %25
@@ -125,18 +124,17 @@
          %36 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %70
-%tint_symbol = OpFunctionParameter %main_out
-         %74 = OpLabel
-         %75 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %75
-               OpReturn
+ %main_inner = OpFunction %main_out None %70
+         %73 = OpLabel
+         %74 = OpFunctionCall %void %main_1
+         %75 = OpLoad %v4float %x_GLF_color
+         %76 = OpCompositeConstruct %main_out %75
+               OpReturnValue %76
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %77 = OpLabel
-         %78 = OpFunctionCall %void %main_1
-         %80 = OpLoad %v4float %x_GLF_color
-         %81 = OpCompositeConstruct %main_out %80
-         %79 = OpFunctionCall %void %tint_symbol_2 %81
+         %78 = OpLabel
+         %79 = OpFunctionCall %main_out %main_inner
+         %80 = OpCompositeExtract %v4float %79 0
+               OpStore %x_GLF_color_1_1 %80
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.spvasm.expected.spvasm
index b2ec6d5..6f850d8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.spvasm.expected.spvasm
@@ -1,32 +1,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 74
+; Bound: 73
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -34,13 +38,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -54,7 +53,7 @@
   %int_63677 = OpConstant %int 63677
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %62 = OpTypeFunction %void %main_out
+         %62 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -99,18 +98,17 @@
          %42 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %62
-%tint_symbol = OpFunctionParameter %main_out
-         %66 = OpLabel
-         %67 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %67
-               OpReturn
+ %main_inner = OpFunction %main_out None %62
+         %65 = OpLabel
+         %66 = OpFunctionCall %void %main_1
+         %67 = OpLoad %v4float %x_GLF_color
+         %68 = OpCompositeConstruct %main_out %67
+               OpReturnValue %68
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %69 = OpLabel
-         %70 = OpFunctionCall %void %main_1
-         %72 = OpLoad %v4float %x_GLF_color
-         %73 = OpCompositeConstruct %main_out %72
-         %71 = OpFunctionCall %void %tint_symbol_2 %73
+         %70 = OpLabel
+         %71 = OpFunctionCall %main_out %main_inner
+         %72 = OpCompositeExtract %v4float %71 0
+               OpStore %x_GLF_color_1_1 %72
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.wgsl.expected.spvasm
index b2ec6d5..6f850d8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.wgsl.expected.spvasm
@@ -1,32 +1,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 74
+; Bound: 73
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -34,13 +38,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -54,7 +53,7 @@
   %int_63677 = OpConstant %int 63677
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %62 = OpTypeFunction %void %main_out
+         %62 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -99,18 +98,17 @@
          %42 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %62
-%tint_symbol = OpFunctionParameter %main_out
-         %66 = OpLabel
-         %67 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %67
-               OpReturn
+ %main_inner = OpFunction %main_out None %62
+         %65 = OpLabel
+         %66 = OpFunctionCall %void %main_1
+         %67 = OpLoad %v4float %x_GLF_color
+         %68 = OpCompositeConstruct %main_out %67
+               OpReturnValue %68
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %69 = OpLabel
-         %70 = OpFunctionCall %void %main_1
-         %72 = OpLoad %v4float %x_GLF_color
-         %73 = OpCompositeConstruct %main_out %72
-         %71 = OpFunctionCall %void %tint_symbol_2 %73
+         %70 = OpLabel
+         %71 = OpFunctionCall %main_out %main_inner
+         %72 = OpCompositeExtract %v4float %71 0
+               OpStore %x_GLF_color_1_1 %72
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.spvasm.expected.spvasm
index 3b7284c..c0e67e8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.spvasm.expected.spvasm
@@ -5,37 +5,41 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -43,11 +47,7 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -62,7 +62,7 @@
       %int_5 = OpConstant %int 5
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %77 = OpTypeFunction %void %main_out
+         %77 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %24
@@ -130,20 +130,20 @@
          %57 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %77
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %77
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %81 = OpLabel
-         %82 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %82
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %82 = OpFunctionCall %void %main_1
+         %83 = OpLoad %v4float %x_GLF_color
+         %84 = OpCompositeConstruct %main_out %83
+               OpReturnValue %84
                OpFunctionEnd
        %main = OpFunction %void None %18
-         %84 = OpLabel
-         %85 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %85
-         %86 = OpFunctionCall %void %main_1
-         %88 = OpLoad %v4float %x_GLF_color
-         %89 = OpCompositeConstruct %main_out %88
-         %87 = OpFunctionCall %void %tint_symbol_3 %89
+         %86 = OpLabel
+         %88 = OpLoad %v4float %gl_FragCoord_param_1
+         %87 = OpFunctionCall %main_out %main_inner %88
+         %89 = OpCompositeExtract %v4float %87 0
+               OpStore %x_GLF_color_1_1 %89
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.wgsl.expected.spvasm
index 3b7284c..c0e67e8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.wgsl.expected.spvasm
@@ -5,37 +5,41 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -43,11 +47,7 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -62,7 +62,7 @@
       %int_5 = OpConstant %int 5
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %77 = OpTypeFunction %void %main_out
+         %77 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %24
@@ -130,20 +130,20 @@
          %57 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %77
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %77
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %81 = OpLabel
-         %82 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %82
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %82 = OpFunctionCall %void %main_1
+         %83 = OpLoad %v4float %x_GLF_color
+         %84 = OpCompositeConstruct %main_out %83
+               OpReturnValue %84
                OpFunctionEnd
        %main = OpFunction %void None %18
-         %84 = OpLabel
-         %85 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %85
-         %86 = OpFunctionCall %void %main_1
-         %88 = OpLoad %v4float %x_GLF_color
-         %89 = OpCompositeConstruct %main_out %88
-         %87 = OpFunctionCall %void %tint_symbol_3 %89
+         %86 = OpLabel
+         %88 = OpLoad %v4float %gl_FragCoord_param_1
+         %87 = OpFunctionCall %main_out %main_inner %88
+         %89 = OpCompositeExtract %v4float %87 0
+               OpStore %x_GLF_color_1_1 %89
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.spvasm.expected.spvasm
index 8a84a5f..7be6d8a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.spvasm.expected.spvasm
@@ -1,33 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 92
+; Bound: 91
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %count "count"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -35,13 +39,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -54,7 +53,7 @@
  %int_n93448 = OpConstant %int -93448
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %80 = OpTypeFunction %void %main_out
+         %80 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
       %count = OpVariable %_ptr_Function_int Function %21
@@ -133,18 +132,17 @@
          %59 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %80
-%tint_symbol = OpFunctionParameter %main_out
-         %84 = OpLabel
-         %85 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %85
-               OpReturn
+ %main_inner = OpFunction %main_out None %80
+         %83 = OpLabel
+         %84 = OpFunctionCall %void %main_1
+         %85 = OpLoad %v4float %x_GLF_color
+         %86 = OpCompositeConstruct %main_out %85
+               OpReturnValue %86
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %87 = OpLabel
-         %88 = OpFunctionCall %void %main_1
-         %90 = OpLoad %v4float %x_GLF_color
-         %91 = OpCompositeConstruct %main_out %90
-         %89 = OpFunctionCall %void %tint_symbol_2 %91
+         %88 = OpLabel
+         %89 = OpFunctionCall %main_out %main_inner
+         %90 = OpCompositeExtract %v4float %89 0
+               OpStore %x_GLF_color_1_1 %90
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.wgsl.expected.spvasm
index 8a84a5f..7be6d8a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.wgsl.expected.spvasm
@@ -1,33 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 92
+; Bound: 91
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %count "count"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -35,13 +39,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -54,7 +53,7 @@
  %int_n93448 = OpConstant %int -93448
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %80 = OpTypeFunction %void %main_out
+         %80 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
       %count = OpVariable %_ptr_Function_int Function %21
@@ -133,18 +132,17 @@
          %59 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %80
-%tint_symbol = OpFunctionParameter %main_out
-         %84 = OpLabel
-         %85 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %85
-               OpReturn
+ %main_inner = OpFunction %main_out None %80
+         %83 = OpLabel
+         %84 = OpFunctionCall %void %main_1
+         %85 = OpLoad %v4float %x_GLF_color
+         %86 = OpCompositeConstruct %main_out %85
+               OpReturnValue %86
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %87 = OpLabel
-         %88 = OpFunctionCall %void %main_1
-         %90 = OpLoad %v4float %x_GLF_color
-         %91 = OpCompositeConstruct %main_out %90
-         %89 = OpFunctionCall %void %tint_symbol_2 %91
+         %88 = OpLabel
+         %89 = OpFunctionCall %main_out %main_inner
+         %90 = OpCompositeExtract %v4float %89 0
+               OpStore %x_GLF_color_1_1 %90
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.spvasm.expected.spvasm
index d944525..d89fab8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.spvasm.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 138
+; Bound: 137
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %v "v"
                OpName %i "i"
@@ -21,19 +21,18 @@
                OpName %x_81_phi "x_81_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_v3float_uint_2 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v3float = OpTypeVector %float 3
           %8 = OpTypeFunction %v3float
     %v2float = OpTypeVector %float 2
@@ -71,7 +70,7 @@
         %124 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %125 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %126 = OpTypeFunction %void %main_out
+        %126 = OpTypeFunction %main_out
       %func_ = OpFunction %v3float None %8
          %11 = OpLabel
           %v = OpVariable %_ptr_Function_v2float Function %15
@@ -216,18 +215,17 @@
         %121 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %126
-%tint_symbol = OpFunctionParameter %main_out
-        %130 = OpLabel
-        %131 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %131
-               OpReturn
+ %main_inner = OpFunction %main_out None %126
+        %129 = OpLabel
+        %130 = OpFunctionCall %void %main_1
+        %131 = OpLoad %v4float %x_GLF_color
+        %132 = OpCompositeConstruct %main_out %131
+               OpReturnValue %132
                OpFunctionEnd
        %main = OpFunction %void None %61
-        %133 = OpLabel
-        %134 = OpFunctionCall %void %main_1
-        %136 = OpLoad %v4float %x_GLF_color
-        %137 = OpCompositeConstruct %main_out %136
-        %135 = OpFunctionCall %void %tint_symbol_2 %137
+        %134 = OpLabel
+        %135 = OpFunctionCall %main_out %main_inner
+        %136 = OpCompositeExtract %v4float %135 0
+               OpStore %x_GLF_color_1_1 %136
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.wgsl.expected.spvasm
index d944525..d89fab8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.wgsl.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 138
+; Bound: 137
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %v "v"
                OpName %i "i"
@@ -21,19 +21,18 @@
                OpName %x_81_phi "x_81_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_v3float_uint_2 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v3float = OpTypeVector %float 3
           %8 = OpTypeFunction %v3float
     %v2float = OpTypeVector %float 2
@@ -71,7 +70,7 @@
         %124 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %125 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %126 = OpTypeFunction %void %main_out
+        %126 = OpTypeFunction %main_out
       %func_ = OpFunction %v3float None %8
          %11 = OpLabel
           %v = OpVariable %_ptr_Function_v2float Function %15
@@ -216,18 +215,17 @@
         %121 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %126
-%tint_symbol = OpFunctionParameter %main_out
-        %130 = OpLabel
-        %131 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %131
-               OpReturn
+ %main_inner = OpFunction %main_out None %126
+        %129 = OpLabel
+        %130 = OpFunctionCall %void %main_1
+        %131 = OpLoad %v4float %x_GLF_color
+        %132 = OpCompositeConstruct %main_out %131
+               OpReturnValue %132
                OpFunctionEnd
        %main = OpFunction %void None %61
-        %133 = OpLabel
-        %134 = OpFunctionCall %void %main_1
-        %136 = OpLoad %v4float %x_GLF_color
-        %137 = OpCompositeConstruct %main_out %136
-        %135 = OpFunctionCall %void %tint_symbol_2 %137
+        %134 = OpLabel
+        %135 = OpFunctionCall %main_out %main_inner
+        %136 = OpCompositeExtract %v4float %135 0
+               OpStore %x_GLF_color_1_1 %136
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.spvasm.expected.spvasm
index 779691c..3709673 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 79
+; Bound: 78
 ; Schema: 0
                OpCapability Shader
          %42 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,14 +16,13 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v1 "v1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -35,9 +35,12 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -49,12 +52,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -72,7 +71,7 @@
        %bool = OpTypeBool
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %67 = OpTypeFunction %void %main_out
+         %67 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
          %v1 = OpVariable %_ptr_Function_v2float Function %26
@@ -114,18 +113,17 @@
          %54 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %67
-%tint_symbol = OpFunctionParameter %main_out
-         %71 = OpLabel
-         %72 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %72
-               OpReturn
+ %main_inner = OpFunction %main_out None %67
+         %70 = OpLabel
+         %71 = OpFunctionCall %void %main_1
+         %72 = OpLoad %v4float %x_GLF_color
+         %73 = OpCompositeConstruct %main_out %72
+               OpReturnValue %73
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %74 = OpLabel
-         %75 = OpFunctionCall %void %main_1
-         %77 = OpLoad %v4float %x_GLF_color
-         %78 = OpCompositeConstruct %main_out %77
-         %76 = OpFunctionCall %void %tint_symbol_2 %78
+         %75 = OpLabel
+         %76 = OpFunctionCall %main_out %main_inner
+         %77 = OpCompositeExtract %v4float %76 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.wgsl.expected.spvasm
index 779691c..3709673 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 79
+; Bound: 78
 ; Schema: 0
                OpCapability Shader
          %42 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,14 +16,13 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v1 "v1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -35,9 +35,12 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -49,12 +52,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -72,7 +71,7 @@
        %bool = OpTypeBool
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %67 = OpTypeFunction %void %main_out
+         %67 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
          %v1 = OpVariable %_ptr_Function_v2float Function %26
@@ -114,18 +113,17 @@
          %54 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %67
-%tint_symbol = OpFunctionParameter %main_out
-         %71 = OpLabel
-         %72 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %72
-               OpReturn
+ %main_inner = OpFunction %main_out None %67
+         %70 = OpLabel
+         %71 = OpFunctionCall %void %main_1
+         %72 = OpLoad %v4float %x_GLF_color
+         %73 = OpCompositeConstruct %main_out %72
+               OpReturnValue %73
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %74 = OpLabel
-         %75 = OpFunctionCall %void %main_1
-         %77 = OpLoad %v4float %x_GLF_color
-         %78 = OpCompositeConstruct %main_out %77
-         %76 = OpFunctionCall %void %tint_symbol_2 %78
+         %75 = OpLabel
+         %76 = OpFunctionCall %main_out %main_inner
+         %77 = OpCompositeExtract %v4float %76 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.spvasm.expected.spvasm
index 46246e7..535a1a2 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.spvasm.expected.spvasm
@@ -1,34 +1,38 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 79
+; Bound: 78
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %idx "idx"
                OpName %a "a"
                OpName %indexable "indexable"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -36,13 +40,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -55,7 +54,7 @@
       %int_0 = OpConstant %int 0
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %67 = OpTypeFunction %void %main_out
+         %67 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
         %idx = OpVariable %_ptr_Function_int Function %21
@@ -108,18 +107,17 @@
          %47 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %67
-%tint_symbol = OpFunctionParameter %main_out
-         %71 = OpLabel
-         %72 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %72
-               OpReturn
+ %main_inner = OpFunction %main_out None %67
+         %70 = OpLabel
+         %71 = OpFunctionCall %void %main_1
+         %72 = OpLoad %v4float %x_GLF_color
+         %73 = OpCompositeConstruct %main_out %72
+               OpReturnValue %73
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %74 = OpLabel
-         %75 = OpFunctionCall %void %main_1
-         %77 = OpLoad %v4float %x_GLF_color
-         %78 = OpCompositeConstruct %main_out %77
-         %76 = OpFunctionCall %void %tint_symbol_2 %78
+         %75 = OpLabel
+         %76 = OpFunctionCall %main_out %main_inner
+         %77 = OpCompositeExtract %v4float %76 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.wgsl.expected.spvasm
index 46246e7..535a1a2 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.wgsl.expected.spvasm
@@ -1,34 +1,38 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 79
+; Bound: 78
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %idx "idx"
                OpName %a "a"
                OpName %indexable "indexable"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -36,13 +40,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -55,7 +54,7 @@
       %int_0 = OpConstant %int 0
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %67 = OpTypeFunction %void %main_out
+         %67 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
         %idx = OpVariable %_ptr_Function_int Function %21
@@ -108,18 +107,17 @@
          %47 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %67
-%tint_symbol = OpFunctionParameter %main_out
-         %71 = OpLabel
-         %72 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %72
-               OpReturn
+ %main_inner = OpFunction %main_out None %67
+         %70 = OpLabel
+         %71 = OpFunctionCall %void %main_1
+         %72 = OpLoad %v4float %x_GLF_color
+         %73 = OpCompositeConstruct %main_out %72
+               OpReturnValue %73
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %74 = OpLabel
-         %75 = OpFunctionCall %void %main_1
-         %77 = OpLoad %v4float %x_GLF_color
-         %78 = OpCompositeConstruct %main_out %77
-         %76 = OpFunctionCall %void %tint_symbol_2 %78
+         %75 = OpLabel
+         %76 = OpFunctionCall %main_out %main_inner
+         %77 = OpCompositeExtract %v4float %76 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.spvasm.expected.spvasm
index 4dab00b..f5f58ed 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.spvasm.expected.spvasm
@@ -1,37 +1,38 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 72
+; Bound: 71
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_5 "x_5"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_32_phi "x_32_phi"
                OpName %x_33 "x_33"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
@@ -40,8 +41,6 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -54,7 +53,7 @@
        %bool = OpTypeBool
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %60 = OpTypeFunction %void %main_out
+         %60 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
    %x_32_phi = OpVariable %_ptr_Function_int Function %21
@@ -108,18 +107,17 @@
          %37 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %60
-%tint_symbol = OpFunctionParameter %main_out
-         %64 = OpLabel
-         %65 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %65
-               OpReturn
+ %main_inner = OpFunction %main_out None %60
+         %63 = OpLabel
+         %64 = OpFunctionCall %void %main_1
+         %65 = OpLoad %v4float %x_GLF_color
+         %66 = OpCompositeConstruct %main_out %65
+               OpReturnValue %66
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %67 = OpLabel
-         %68 = OpFunctionCall %void %main_1
-         %70 = OpLoad %v4float %x_GLF_color
-         %71 = OpCompositeConstruct %main_out %70
-         %69 = OpFunctionCall %void %tint_symbol_2 %71
+         %68 = OpLabel
+         %69 = OpFunctionCall %main_out %main_inner
+         %70 = OpCompositeExtract %v4float %69 0
+               OpStore %x_GLF_color_1_1 %70
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.wgsl.expected.spvasm
index 4dab00b..f5f58ed 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.wgsl.expected.spvasm
@@ -1,37 +1,38 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 72
+; Bound: 71
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_5 "x_5"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_32_phi "x_32_phi"
                OpName %x_33 "x_33"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
@@ -40,8 +41,6 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -54,7 +53,7 @@
        %bool = OpTypeBool
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %60 = OpTypeFunction %void %main_out
+         %60 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
    %x_32_phi = OpVariable %_ptr_Function_int Function %21
@@ -108,18 +107,17 @@
          %37 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %60
-%tint_symbol = OpFunctionParameter %main_out
-         %64 = OpLabel
-         %65 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %65
-               OpReturn
+ %main_inner = OpFunction %main_out None %60
+         %63 = OpLabel
+         %64 = OpFunctionCall %void %main_1
+         %65 = OpLoad %v4float %x_GLF_color
+         %66 = OpCompositeConstruct %main_out %65
+               OpReturnValue %66
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %67 = OpLabel
-         %68 = OpFunctionCall %void %main_1
-         %70 = OpLoad %v4float %x_GLF_color
-         %71 = OpCompositeConstruct %main_out %70
-         %69 = OpFunctionCall %void %tint_symbol_2 %71
+         %68 = OpLabel
+         %69 = OpFunctionCall %main_out %main_inner
+         %70 = OpCompositeExtract %v4float %69 0
+               OpStore %x_GLF_color_1_1 %70
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.spvasm.expected.spvasm
index 74c4d05..3a4b4f1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.spvasm.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 122
+; Bound: 121
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %v "v"
                OpName %i "i"
@@ -19,19 +19,18 @@
                OpName %j_1 "j_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_v3float_uint_2 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v3float = OpTypeVector %float 3
           %8 = OpTypeFunction %v3float
     %v2float = OpTypeVector %float 2
@@ -64,7 +63,7 @@
 %_ptr_Function_v3float = OpTypePointer Function %v3float
       %int_4 = OpConstant %int 4
    %main_out = OpTypeStruct %v4float
-        %110 = OpTypeFunction %void %main_out
+        %110 = OpTypeFunction %main_out
       %func_ = OpFunction %v3float None %8
          %11 = OpLabel
           %v = OpVariable %_ptr_Function_v2float Function %15
@@ -187,18 +186,17 @@
                OpStore %x_GLF_color %109
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %110
-%tint_symbol = OpFunctionParameter %main_out
-        %114 = OpLabel
-        %115 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %115
-               OpReturn
+ %main_inner = OpFunction %main_out None %110
+        %113 = OpLabel
+        %114 = OpFunctionCall %void %main_1
+        %115 = OpLoad %v4float %x_GLF_color
+        %116 = OpCompositeConstruct %main_out %115
+               OpReturnValue %116
                OpFunctionEnd
        %main = OpFunction %void None %61
-        %117 = OpLabel
-        %118 = OpFunctionCall %void %main_1
-        %120 = OpLoad %v4float %x_GLF_color
-        %121 = OpCompositeConstruct %main_out %120
-        %119 = OpFunctionCall %void %tint_symbol_2 %121
+        %118 = OpLabel
+        %119 = OpFunctionCall %main_out %main_inner
+        %120 = OpCompositeExtract %v4float %119 0
+               OpStore %x_GLF_color_1_1 %120
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.wgsl.expected.spvasm
index 74c4d05..3a4b4f1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.wgsl.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 122
+; Bound: 121
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %v "v"
                OpName %i "i"
@@ -19,19 +19,18 @@
                OpName %j_1 "j_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_v3float_uint_2 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v3float = OpTypeVector %float 3
           %8 = OpTypeFunction %v3float
     %v2float = OpTypeVector %float 2
@@ -64,7 +63,7 @@
 %_ptr_Function_v3float = OpTypePointer Function %v3float
       %int_4 = OpConstant %int 4
    %main_out = OpTypeStruct %v4float
-        %110 = OpTypeFunction %void %main_out
+        %110 = OpTypeFunction %main_out
       %func_ = OpFunction %v3float None %8
          %11 = OpLabel
           %v = OpVariable %_ptr_Function_v2float Function %15
@@ -187,18 +186,17 @@
                OpStore %x_GLF_color %109
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %110
-%tint_symbol = OpFunctionParameter %main_out
-        %114 = OpLabel
-        %115 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %115
-               OpReturn
+ %main_inner = OpFunction %main_out None %110
+        %113 = OpLabel
+        %114 = OpFunctionCall %void %main_1
+        %115 = OpLoad %v4float %x_GLF_color
+        %116 = OpCompositeConstruct %main_out %115
+               OpReturnValue %116
                OpFunctionEnd
        %main = OpFunction %void None %61
-        %117 = OpLabel
-        %118 = OpFunctionCall %void %main_1
-        %120 = OpLoad %v4float %x_GLF_color
-        %121 = OpCompositeConstruct %main_out %120
-        %119 = OpFunctionCall %void %tint_symbol_2 %121
+        %118 = OpLabel
+        %119 = OpFunctionCall %main_out %main_inner
+        %120 = OpCompositeExtract %v4float %119 0
+               OpStore %x_GLF_color_1_1 %120
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.spvasm.expected.spvasm
index e9a94b6..1a54bf5 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 113
+; Bound: 112
 ; Schema: 0
                OpCapability Shader
          %62 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %i "i"
@@ -23,9 +23,9 @@
                OpName %x_67_phi "x_67_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_4 ArrayStride 16
@@ -38,9 +38,12 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
 %_arr_float_uint_4 = OpTypeArray %float %uint_4
@@ -53,12 +56,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -76,7 +75,7 @@
       %int_3 = OpConstant %int 3
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-        %101 = OpTypeFunction %void %main_out
+        %101 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %26
@@ -168,18 +167,17 @@
          %81 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %101
-%tint_symbol = OpFunctionParameter %main_out
-        %105 = OpLabel
-        %106 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %106
-               OpReturn
+ %main_inner = OpFunction %main_out None %101
+        %104 = OpLabel
+        %105 = OpFunctionCall %void %main_1
+        %106 = OpLoad %v4float %x_GLF_color
+        %107 = OpCompositeConstruct %main_out %106
+               OpReturnValue %107
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %108 = OpLabel
-        %109 = OpFunctionCall %void %main_1
-        %111 = OpLoad %v4float %x_GLF_color
-        %112 = OpCompositeConstruct %main_out %111
-        %110 = OpFunctionCall %void %tint_symbol_2 %112
+        %109 = OpLabel
+        %110 = OpFunctionCall %main_out %main_inner
+        %111 = OpCompositeExtract %v4float %110 0
+               OpStore %x_GLF_color_1_1 %111
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.wgsl.expected.spvasm
index e9a94b6..1a54bf5 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 113
+; Bound: 112
 ; Schema: 0
                OpCapability Shader
          %62 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %i "i"
@@ -23,9 +23,9 @@
                OpName %x_67_phi "x_67_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_4 ArrayStride 16
@@ -38,9 +38,12 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
 %_arr_float_uint_4 = OpTypeArray %float %uint_4
@@ -53,12 +56,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -76,7 +75,7 @@
       %int_3 = OpConstant %int 3
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-        %101 = OpTypeFunction %void %main_out
+        %101 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %26
@@ -168,18 +167,17 @@
          %81 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %101
-%tint_symbol = OpFunctionParameter %main_out
-        %105 = OpLabel
-        %106 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %106
-               OpReturn
+ %main_inner = OpFunction %main_out None %101
+        %104 = OpLabel
+        %105 = OpFunctionCall %void %main_1
+        %106 = OpLoad %v4float %x_GLF_color
+        %107 = OpCompositeConstruct %main_out %106
+               OpReturnValue %107
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %108 = OpLabel
-        %109 = OpFunctionCall %void %main_1
-        %111 = OpLoad %v4float %x_GLF_color
-        %112 = OpCompositeConstruct %main_out %111
-        %110 = OpFunctionCall %void %tint_symbol_2 %112
+        %109 = OpLabel
+        %110 = OpFunctionCall %main_out %main_inner
+        %111 = OpCompositeExtract %v4float %110 0
+               OpStore %x_GLF_color_1_1 %111
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-break-floor-nan-never-executed/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-break-floor-nan-never-executed/0-opt.spvasm.expected.spvasm
index e5c6e56..ba91db6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-break-floor-nan-never-executed/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-break-floor-nan-never-executed/0-opt.spvasm.expected.spvasm
@@ -1,44 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 74
+; Bound: 73
 ; Schema: 0
                OpCapability Shader
          %41 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -57,7 +56,7 @@
          %60 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %61 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %62 = OpTypeFunction %void %main_out
+         %62 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %18
@@ -118,18 +117,17 @@
          %56 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %62
-%tint_symbol = OpFunctionParameter %main_out
-         %66 = OpLabel
-         %67 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %67
-               OpReturn
+ %main_inner = OpFunction %main_out None %62
+         %65 = OpLabel
+         %66 = OpFunctionCall %void %main_1
+         %67 = OpLoad %v4float %x_GLF_color
+         %68 = OpCompositeConstruct %main_out %67
+               OpReturnValue %68
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %69 = OpLabel
-         %70 = OpFunctionCall %void %main_1
-         %72 = OpLoad %v4float %x_GLF_color
-         %73 = OpCompositeConstruct %main_out %72
-         %71 = OpFunctionCall %void %tint_symbol_2 %73
+         %70 = OpLabel
+         %71 = OpFunctionCall %main_out %main_inner
+         %72 = OpCompositeExtract %v4float %71 0
+               OpStore %x_GLF_color_1_1 %72
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-break-floor-nan-never-executed/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-break-floor-nan-never-executed/0-opt.wgsl.expected.spvasm
index e5c6e56..ba91db6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-break-floor-nan-never-executed/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-break-floor-nan-never-executed/0-opt.wgsl.expected.spvasm
@@ -1,44 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 74
+; Bound: 73
 ; Schema: 0
                OpCapability Shader
          %41 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -57,7 +56,7 @@
          %60 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %61 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %62 = OpTypeFunction %void %main_out
+         %62 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %18
@@ -118,18 +117,17 @@
          %56 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %62
-%tint_symbol = OpFunctionParameter %main_out
-         %66 = OpLabel
-         %67 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %67
-               OpReturn
+ %main_inner = OpFunction %main_out None %62
+         %65 = OpLabel
+         %66 = OpFunctionCall %void %main_1
+         %67 = OpLoad %v4float %x_GLF_color
+         %68 = OpCompositeConstruct %main_out %67
+               OpReturnValue %68
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %69 = OpLabel
-         %70 = OpFunctionCall %void %main_1
-         %72 = OpLoad %v4float %x_GLF_color
-         %73 = OpCompositeConstruct %main_out %72
-         %71 = OpFunctionCall %void %tint_symbol_2 %73
+         %70 = OpLabel
+         %71 = OpFunctionCall %main_out %main_inner
+         %72 = OpCompositeExtract %v4float %71 0
+               OpStore %x_GLF_color_1_1 %72
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.spvasm.expected.spvasm
index 8f44a3e..db6d08b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 107
+; Bound: 106
 ; Schema: 0
                OpCapability Shader
          %65 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_global_loop_count "x_GLF_global_loop_count"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
@@ -16,15 +17,14 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
@@ -37,13 +37,16 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
 %_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %4
-      %float = OpTypeFloat 32
+          %9 = OpConstantNull %int
+%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %9
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
@@ -54,12 +57,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %19 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %19
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %19
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -74,11 +73,11 @@
        %bool = OpTypeBool
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %95 = OpTypeFunction %void %main_out
+         %95 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %22
          %25 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %28
-          %i = OpVariable %_ptr_Function_int Function %4
+          %i = OpVariable %_ptr_Function_int Function %9
                OpStore %x_GLF_global_loop_count %int_0
          %35 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 %int_1
          %36 = OpLoad %float %35
@@ -160,18 +159,17 @@
          %75 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %95
-%tint_symbol = OpFunctionParameter %main_out
-         %99 = OpLabel
-        %100 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %100
-               OpReturn
+ %main_inner = OpFunction %main_out None %95
+         %98 = OpLabel
+         %99 = OpFunctionCall %void %main_1
+        %100 = OpLoad %v4float %x_GLF_color
+        %101 = OpCompositeConstruct %main_out %100
+               OpReturnValue %101
                OpFunctionEnd
        %main = OpFunction %void None %22
-        %102 = OpLabel
-        %103 = OpFunctionCall %void %main_1
-        %105 = OpLoad %v4float %x_GLF_color
-        %106 = OpCompositeConstruct %main_out %105
-        %104 = OpFunctionCall %void %tint_symbol_2 %106
+        %103 = OpLabel
+        %104 = OpFunctionCall %main_out %main_inner
+        %105 = OpCompositeExtract %v4float %104 0
+               OpStore %x_GLF_color_1_1 %105
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.wgsl.expected.spvasm
index 8f44a3e..db6d08b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 107
+; Bound: 106
 ; Schema: 0
                OpCapability Shader
          %65 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_global_loop_count "x_GLF_global_loop_count"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
@@ -16,15 +17,14 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
@@ -37,13 +37,16 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
 %_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %4
-      %float = OpTypeFloat 32
+          %9 = OpConstantNull %int
+%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %9
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
@@ -54,12 +57,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %19 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %19
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %19
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -74,11 +73,11 @@
        %bool = OpTypeBool
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %95 = OpTypeFunction %void %main_out
+         %95 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %22
          %25 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %28
-          %i = OpVariable %_ptr_Function_int Function %4
+          %i = OpVariable %_ptr_Function_int Function %9
                OpStore %x_GLF_global_loop_count %int_0
          %35 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 %int_1
          %36 = OpLoad %float %35
@@ -160,18 +159,17 @@
          %75 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %95
-%tint_symbol = OpFunctionParameter %main_out
-         %99 = OpLabel
-        %100 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %100
-               OpReturn
+ %main_inner = OpFunction %main_out None %95
+         %98 = OpLabel
+         %99 = OpFunctionCall %void %main_1
+        %100 = OpLoad %v4float %x_GLF_color
+        %101 = OpCompositeConstruct %main_out %100
+               OpReturnValue %101
                OpFunctionEnd
        %main = OpFunction %void None %22
-        %102 = OpLabel
-        %103 = OpFunctionCall %void %main_1
-        %105 = OpLoad %v4float %x_GLF_color
-        %106 = OpCompositeConstruct %main_out %105
-        %104 = OpFunctionCall %void %tint_symbol_2 %106
+        %103 = OpLabel
+        %104 = OpFunctionCall %main_out %main_inner
+        %105 = OpCompositeExtract %v4float %104 0
+               OpStore %x_GLF_color_1_1 %105
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.spvasm
index 8425cb2..4964574 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 139
+; Bound: 138
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %arr "arr"
                OpName %index "index"
@@ -23,18 +23,22 @@
                OpName %x_52_phi "x_52_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_6 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_3 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_6 = OpConstant %uint 6
@@ -42,13 +46,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_6
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
      %uint_3 = OpConstant %uint 3
@@ -70,7 +69,7 @@
       %int_0 = OpConstant %int 0
       %int_4 = OpConstant %int 4
    %main_out = OpTypeStruct %v4float
-        %127 = OpTypeFunction %void %main_out
+        %127 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
         %arr = OpVariable %_ptr_Function__arr_int_uint_3 Function %23
@@ -202,18 +201,17 @@
         %107 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %127
-%tint_symbol = OpFunctionParameter %main_out
-        %131 = OpLabel
-        %132 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %132
-               OpReturn
+ %main_inner = OpFunction %main_out None %127
+        %130 = OpLabel
+        %131 = OpFunctionCall %void %main_1
+        %132 = OpLoad %v4float %x_GLF_color
+        %133 = OpCompositeConstruct %main_out %132
+               OpReturnValue %133
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %134 = OpLabel
-        %135 = OpFunctionCall %void %main_1
-        %137 = OpLoad %v4float %x_GLF_color
-        %138 = OpCompositeConstruct %main_out %137
-        %136 = OpFunctionCall %void %tint_symbol_2 %138
+        %135 = OpLabel
+        %136 = OpFunctionCall %main_out %main_inner
+        %137 = OpCompositeExtract %v4float %136 0
+               OpStore %x_GLF_color_1_1 %137
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.wgsl.expected.spvasm
index 35f7480..09f6f31 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 141
+; Bound: 140
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %arr "arr"
                OpName %index "index"
@@ -23,18 +23,22 @@
                OpName %x_52_phi "x_52_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_6 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_3 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_6 = OpConstant %uint 6
@@ -42,13 +46,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_6
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
      %uint_3 = OpConstant %uint 3
@@ -70,7 +69,7 @@
       %int_0 = OpConstant %int 0
       %int_4 = OpConstant %int 4
    %main_out = OpTypeStruct %v4float
-        %129 = OpTypeFunction %void %main_out
+        %129 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
         %arr = OpVariable %_ptr_Function__arr_int_uint_3 Function %23
@@ -207,18 +206,17 @@
         %109 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %129
-%tint_symbol = OpFunctionParameter %main_out
-        %133 = OpLabel
-        %134 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %134
-               OpReturn
+ %main_inner = OpFunction %main_out None %129
+        %132 = OpLabel
+        %133 = OpFunctionCall %void %main_1
+        %134 = OpLoad %v4float %x_GLF_color
+        %135 = OpCompositeConstruct %main_out %134
+               OpReturnValue %135
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %136 = OpLabel
-        %137 = OpFunctionCall %void %main_1
-        %139 = OpLoad %v4float %x_GLF_color
-        %140 = OpCompositeConstruct %main_out %139
-        %138 = OpFunctionCall %void %tint_symbol_2 %140
+        %137 = OpLabel
+        %138 = OpFunctionCall %main_out %main_inner
+        %139 = OpCompositeExtract %v4float %138 0
+               OpStore %x_GLF_color_1_1 %139
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.spvasm.expected.spvasm
index 4ba110f..67eba1f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 112
+; Bound: 111
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -14,7 +15,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_11 "x_11"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
@@ -22,9 +22,9 @@
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -37,9 +37,12 @@
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -52,12 +55,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_11 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -72,7 +71,7 @@
        %bool = OpTypeBool
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-        %100 = OpTypeFunction %void %main_out
+        %100 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %26
@@ -168,18 +167,17 @@
          %80 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %100
-%tint_symbol = OpFunctionParameter %main_out
-        %104 = OpLabel
-        %105 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %105
-               OpReturn
+ %main_inner = OpFunction %main_out None %100
+        %103 = OpLabel
+        %104 = OpFunctionCall %void %main_1
+        %105 = OpLoad %v4float %x_GLF_color
+        %106 = OpCompositeConstruct %main_out %105
+               OpReturnValue %106
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %107 = OpLabel
-        %108 = OpFunctionCall %void %main_1
-        %110 = OpLoad %v4float %x_GLF_color
-        %111 = OpCompositeConstruct %main_out %110
-        %109 = OpFunctionCall %void %tint_symbol_2 %111
+        %108 = OpLabel
+        %109 = OpFunctionCall %main_out %main_inner
+        %110 = OpCompositeExtract %v4float %109 0
+               OpStore %x_GLF_color_1_1 %110
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.wgsl.expected.spvasm
index 4ba110f..67eba1f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 112
+; Bound: 111
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -14,7 +15,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_11 "x_11"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
@@ -22,9 +22,9 @@
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -37,9 +37,12 @@
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -52,12 +55,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_11 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -72,7 +71,7 @@
        %bool = OpTypeBool
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-        %100 = OpTypeFunction %void %main_out
+        %100 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %26
@@ -168,18 +167,17 @@
          %80 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %100
-%tint_symbol = OpFunctionParameter %main_out
-        %104 = OpLabel
-        %105 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %105
-               OpReturn
+ %main_inner = OpFunction %main_out None %100
+        %103 = OpLabel
+        %104 = OpFunctionCall %void %main_1
+        %105 = OpLoad %v4float %x_GLF_color
+        %106 = OpCompositeConstruct %main_out %105
+               OpReturnValue %106
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %107 = OpLabel
-        %108 = OpFunctionCall %void %main_1
-        %110 = OpLoad %v4float %x_GLF_color
-        %111 = OpCompositeConstruct %main_out %110
-        %109 = OpFunctionCall %void %tint_symbol_2 %111
+        %108 = OpLabel
+        %109 = OpFunctionCall %main_out %main_inner
+        %110 = OpCompositeExtract %v4float %109 0
+               OpStore %x_GLF_color_1_1 %110
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.spvasm
index 06a7de4..d1d7b39 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_7 "x_7"
@@ -15,8 +17,6 @@
                OpName %x_10 "x_10"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %m23 "m23"
                OpName %i "i"
@@ -24,9 +24,11 @@
                OpName %x_81_phi "x_81_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -39,10 +41,14 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -55,15 +61,9 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -89,7 +89,7 @@
        %true = OpConstantTrue %bool
      %v3bool = OpTypeVector %bool 3
    %main_out = OpTypeStruct %v4float
-        %149 = OpTypeFunction %void %main_out
+        %149 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
         %m23 = OpVariable %_ptr_Function_mat2v3float Function %31
@@ -225,20 +225,20 @@
         %129 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %149
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %149
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %153 = OpLabel
-        %154 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %154
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %154 = OpFunctionCall %void %main_1
+        %155 = OpLoad %v4float %x_GLF_color
+        %156 = OpCompositeConstruct %main_out %155
+               OpReturnValue %156
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %156 = OpLabel
-        %157 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %157
-        %158 = OpFunctionCall %void %main_1
-        %160 = OpLoad %v4float %x_GLF_color
-        %161 = OpCompositeConstruct %main_out %160
-        %159 = OpFunctionCall %void %tint_symbol_3 %161
+        %158 = OpLabel
+        %160 = OpLoad %v4float %gl_FragCoord_param_1
+        %159 = OpFunctionCall %main_out %main_inner %160
+        %161 = OpCompositeExtract %v4float %159 0
+               OpStore %x_GLF_color_1_1 %161
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.wgsl.expected.spvasm
index c421db8..a2549fe 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_7 "x_7"
@@ -15,8 +17,6 @@
                OpName %x_10 "x_10"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %m23 "m23"
                OpName %i "i"
@@ -24,9 +24,11 @@
                OpName %x_81_phi "x_81_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -39,10 +41,14 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -55,15 +61,9 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -89,7 +89,7 @@
        %true = OpConstantTrue %bool
      %v3bool = OpTypeVector %bool 3
    %main_out = OpTypeStruct %v4float
-        %151 = OpTypeFunction %void %main_out
+        %151 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
         %m23 = OpVariable %_ptr_Function_mat2v3float Function %31
@@ -230,20 +230,20 @@
         %131 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %151
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %151
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %155 = OpLabel
-        %156 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %156
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %156 = OpFunctionCall %void %main_1
+        %157 = OpLoad %v4float %x_GLF_color
+        %158 = OpCompositeConstruct %main_out %157
+               OpReturnValue %158
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %158 = OpLabel
-        %159 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %159
-        %160 = OpFunctionCall %void %main_1
-        %162 = OpLoad %v4float %x_GLF_color
-        %163 = OpCompositeConstruct %main_out %162
-        %161 = OpFunctionCall %void %tint_symbol_3 %163
+        %160 = OpLabel
+        %162 = OpLoad %v4float %gl_FragCoord_param_1
+        %161 = OpFunctionCall %main_out %main_inner %162
+        %163 = OpCompositeExtract %v4float %161 0
+               OpStore %x_GLF_color_1_1 %163
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.spvasm.expected.spvasm
index 2c80162..92b4a68 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.spvasm.expected.spvasm
@@ -1,33 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 91
+; Bound: 90
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -35,13 +39,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -54,7 +53,7 @@
       %int_1 = OpConstant %int 1
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %79 = OpTypeFunction %void %main_out
+         %79 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -134,18 +133,17 @@
          %59 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %79
-%tint_symbol = OpFunctionParameter %main_out
-         %83 = OpLabel
-         %84 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %84
-               OpReturn
+ %main_inner = OpFunction %main_out None %79
+         %82 = OpLabel
+         %83 = OpFunctionCall %void %main_1
+         %84 = OpLoad %v4float %x_GLF_color
+         %85 = OpCompositeConstruct %main_out %84
+               OpReturnValue %85
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %86 = OpLabel
-         %87 = OpFunctionCall %void %main_1
-         %89 = OpLoad %v4float %x_GLF_color
-         %90 = OpCompositeConstruct %main_out %89
-         %88 = OpFunctionCall %void %tint_symbol_2 %90
+         %87 = OpLabel
+         %88 = OpFunctionCall %main_out %main_inner
+         %89 = OpCompositeExtract %v4float %88 0
+               OpStore %x_GLF_color_1_1 %89
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.wgsl.expected.spvasm
index 2c80162..92b4a68 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.wgsl.expected.spvasm
@@ -1,33 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 91
+; Bound: 90
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -35,13 +39,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -54,7 +53,7 @@
       %int_1 = OpConstant %int 1
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %79 = OpTypeFunction %void %main_out
+         %79 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -134,18 +133,17 @@
          %59 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %79
-%tint_symbol = OpFunctionParameter %main_out
-         %83 = OpLabel
-         %84 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %84
-               OpReturn
+ %main_inner = OpFunction %main_out None %79
+         %82 = OpLabel
+         %83 = OpFunctionCall %void %main_1
+         %84 = OpLoad %v4float %x_GLF_color
+         %85 = OpCompositeConstruct %main_out %84
+               OpReturnValue %85
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %86 = OpLabel
-         %87 = OpFunctionCall %void %main_1
-         %89 = OpLoad %v4float %x_GLF_color
-         %90 = OpCompositeConstruct %main_out %89
-         %88 = OpFunctionCall %void %tint_symbol_2 %90
+         %87 = OpLabel
+         %88 = OpFunctionCall %main_out %main_inner
+         %89 = OpCompositeExtract %v4float %88 0
+               OpStore %x_GLF_color_1_1 %89
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.spvasm.expected.spvasm
index af6b9c9..8bab8ff 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.spvasm.expected.spvasm
@@ -1,32 +1,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 79
+; Bound: 78
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -34,13 +38,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -52,7 +51,7 @@
        %bool = OpTypeBool
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %67 = OpTypeFunction %void %main_out
+         %67 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -114,18 +113,17 @@
          %47 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %67
-%tint_symbol = OpFunctionParameter %main_out
-         %71 = OpLabel
-         %72 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %72
-               OpReturn
+ %main_inner = OpFunction %main_out None %67
+         %70 = OpLabel
+         %71 = OpFunctionCall %void %main_1
+         %72 = OpLoad %v4float %x_GLF_color
+         %73 = OpCompositeConstruct %main_out %72
+               OpReturnValue %73
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %74 = OpLabel
-         %75 = OpFunctionCall %void %main_1
-         %77 = OpLoad %v4float %x_GLF_color
-         %78 = OpCompositeConstruct %main_out %77
-         %76 = OpFunctionCall %void %tint_symbol_2 %78
+         %75 = OpLabel
+         %76 = OpFunctionCall %main_out %main_inner
+         %77 = OpCompositeExtract %v4float %76 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.wgsl.expected.spvasm
index af6b9c9..8bab8ff 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.wgsl.expected.spvasm
@@ -1,32 +1,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 79
+; Bound: 78
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -34,13 +38,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -52,7 +51,7 @@
        %bool = OpTypeBool
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %67 = OpTypeFunction %void %main_out
+         %67 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -114,18 +113,17 @@
          %47 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %67
-%tint_symbol = OpFunctionParameter %main_out
-         %71 = OpLabel
-         %72 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %72
-               OpReturn
+ %main_inner = OpFunction %main_out None %67
+         %70 = OpLabel
+         %71 = OpFunctionCall %void %main_1
+         %72 = OpLoad %v4float %x_GLF_color
+         %73 = OpCompositeConstruct %main_out %72
+               OpReturnValue %73
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %74 = OpLabel
-         %75 = OpFunctionCall %void %main_1
-         %77 = OpLoad %v4float %x_GLF_color
-         %78 = OpCompositeConstruct %main_out %77
-         %76 = OpFunctionCall %void %tint_symbol_2 %78
+         %75 = OpLabel
+         %76 = OpFunctionCall %main_out %main_inner
+         %77 = OpCompositeExtract %v4float %76 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.spvasm.expected.spvasm
index f4f6126..2f91910 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.spvasm.expected.spvasm
@@ -1,32 +1,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 72
+; Bound: 71
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -34,13 +38,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -53,7 +52,7 @@
        %bool = OpTypeBool
        %true = OpConstantTrue %bool
    %main_out = OpTypeStruct %v4float
-         %60 = OpTypeFunction %void %main_out
+         %60 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -102,18 +101,17 @@
          %33 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %60
-%tint_symbol = OpFunctionParameter %main_out
-         %64 = OpLabel
-         %65 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %65
-               OpReturn
+ %main_inner = OpFunction %main_out None %60
+         %63 = OpLabel
+         %64 = OpFunctionCall %void %main_1
+         %65 = OpLoad %v4float %x_GLF_color
+         %66 = OpCompositeConstruct %main_out %65
+               OpReturnValue %66
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %67 = OpLabel
-         %68 = OpFunctionCall %void %main_1
-         %70 = OpLoad %v4float %x_GLF_color
-         %71 = OpCompositeConstruct %main_out %70
-         %69 = OpFunctionCall %void %tint_symbol_2 %71
+         %68 = OpLabel
+         %69 = OpFunctionCall %main_out %main_inner
+         %70 = OpCompositeExtract %v4float %69 0
+               OpStore %x_GLF_color_1_1 %70
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.wgsl.expected.spvasm
index f4f6126..2f91910 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.wgsl.expected.spvasm
@@ -1,32 +1,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 72
+; Bound: 71
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -34,13 +38,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -53,7 +52,7 @@
        %bool = OpTypeBool
        %true = OpConstantTrue %bool
    %main_out = OpTypeStruct %v4float
-         %60 = OpTypeFunction %void %main_out
+         %60 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -102,18 +101,17 @@
          %33 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %60
-%tint_symbol = OpFunctionParameter %main_out
-         %64 = OpLabel
-         %65 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %65
-               OpReturn
+ %main_inner = OpFunction %main_out None %60
+         %63 = OpLabel
+         %64 = OpFunctionCall %void %main_1
+         %65 = OpLoad %v4float %x_GLF_color
+         %66 = OpCompositeConstruct %main_out %65
+               OpReturnValue %66
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %67 = OpLabel
-         %68 = OpFunctionCall %void %main_1
-         %70 = OpLoad %v4float %x_GLF_color
-         %71 = OpCompositeConstruct %main_out %70
-         %69 = OpFunctionCall %void %tint_symbol_2 %71
+         %68 = OpLabel
+         %69 = OpFunctionCall %main_out %main_inner
+         %70 = OpCompositeExtract %v4float %69 0
+               OpStore %x_GLF_color_1_1 %70
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-returns-behind-true-and-false/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-returns-behind-true-and-false/0-opt.spvasm.expected.spvasm
index d9c850a..102efd2 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-returns-behind-true-and-false/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-returns-behind-true-and-false/0-opt.spvasm.expected.spvasm
@@ -1,49 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 87
+; Bound: 86
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_global_loop_count "x_GLF_global_loop_count"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
 %_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %4
+          %9 = OpConstantNull %int
+%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %9
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %15 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %15
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %15
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
       %int_0 = OpConstant %int 0
@@ -55,7 +54,7 @@
       %false = OpConstantFalse %bool
     %int_100 = OpConstant %int 100
    %main_out = OpTypeStruct %v4float
-         %75 = OpTypeFunction %void %main_out
+         %75 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
                OpStore %x_GLF_global_loop_count %int_0
@@ -135,18 +134,17 @@
          %27 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %75
-%tint_symbol = OpFunctionParameter %main_out
-         %79 = OpLabel
-         %80 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %80
-               OpReturn
+ %main_inner = OpFunction %main_out None %75
+         %78 = OpLabel
+         %79 = OpFunctionCall %void %main_1
+         %80 = OpLoad %v4float %x_GLF_color
+         %81 = OpCompositeConstruct %main_out %80
+               OpReturnValue %81
                OpFunctionEnd
        %main = OpFunction %void None %18
-         %82 = OpLabel
-         %83 = OpFunctionCall %void %main_1
-         %85 = OpLoad %v4float %x_GLF_color
-         %86 = OpCompositeConstruct %main_out %85
-         %84 = OpFunctionCall %void %tint_symbol_2 %86
+         %83 = OpLabel
+         %84 = OpFunctionCall %main_out %main_inner
+         %85 = OpCompositeExtract %v4float %84 0
+               OpStore %x_GLF_color_1_1 %85
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-returns-behind-true-and-false/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-returns-behind-true-and-false/0-opt.wgsl.expected.spvasm
index d9c850a..102efd2 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-returns-behind-true-and-false/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-returns-behind-true-and-false/0-opt.wgsl.expected.spvasm
@@ -1,49 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 87
+; Bound: 86
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_global_loop_count "x_GLF_global_loop_count"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
 %_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %4
+          %9 = OpConstantNull %int
+%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %9
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %15 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %15
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %15
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
       %int_0 = OpConstant %int 0
@@ -55,7 +54,7 @@
       %false = OpConstantFalse %bool
     %int_100 = OpConstant %int 100
    %main_out = OpTypeStruct %v4float
-         %75 = OpTypeFunction %void %main_out
+         %75 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
                OpStore %x_GLF_global_loop_count %int_0
@@ -135,18 +134,17 @@
          %27 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %75
-%tint_symbol = OpFunctionParameter %main_out
-         %79 = OpLabel
-         %80 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %80
-               OpReturn
+ %main_inner = OpFunction %main_out None %75
+         %78 = OpLabel
+         %79 = OpFunctionCall %void %main_1
+         %80 = OpLoad %v4float %x_GLF_color
+         %81 = OpCompositeConstruct %main_out %80
+               OpReturnValue %81
                OpFunctionEnd
        %main = OpFunction %void None %18
-         %82 = OpLabel
-         %83 = OpFunctionCall %void %main_1
-         %85 = OpLoad %v4float %x_GLF_color
-         %86 = OpCompositeConstruct %main_out %85
-         %84 = OpFunctionCall %void %tint_symbol_2 %86
+         %83 = OpLabel
+         %84 = OpFunctionCall %main_out %main_inner
+         %85 = OpCompositeExtract %v4float %84 0
+               OpStore %x_GLF_color_1_1 %85
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.spvasm.expected.spvasm
index 193f5f4..1d8dbcd 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 125
+; Bound: 124
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -14,16 +15,15 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %arr "arr"
                OpName %i "i"
                OpName %j "j"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -36,10 +36,13 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_5 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -51,12 +54,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
      %uint_5 = OpConstant %uint 5
@@ -76,7 +75,7 @@
     %float_1 = OpConstant %float 1
     %float_2 = OpConstant %float 2
    %main_out = OpTypeStruct %v4float
-        %113 = OpTypeFunction %void %main_out
+        %113 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
         %arr = OpVariable %_ptr_Function__arr_float_uint_5 Function %27
@@ -189,18 +188,17 @@
          %90 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %113
-%tint_symbol = OpFunctionParameter %main_out
-        %117 = OpLabel
-        %118 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %118
-               OpReturn
+ %main_inner = OpFunction %main_out None %113
+        %116 = OpLabel
+        %117 = OpFunctionCall %void %main_1
+        %118 = OpLoad %v4float %x_GLF_color
+        %119 = OpCompositeConstruct %main_out %118
+               OpReturnValue %119
                OpFunctionEnd
        %main = OpFunction %void None %19
-        %120 = OpLabel
-        %121 = OpFunctionCall %void %main_1
-        %123 = OpLoad %v4float %x_GLF_color
-        %124 = OpCompositeConstruct %main_out %123
-        %122 = OpFunctionCall %void %tint_symbol_2 %124
+        %121 = OpLabel
+        %122 = OpFunctionCall %main_out %main_inner
+        %123 = OpCompositeExtract %v4float %122 0
+               OpStore %x_GLF_color_1_1 %123
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.wgsl.expected.spvasm
index 193f5f4..1d8dbcd 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 125
+; Bound: 124
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -14,16 +15,15 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %arr "arr"
                OpName %i "i"
                OpName %j "j"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -36,10 +36,13 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_5 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -51,12 +54,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
      %uint_5 = OpConstant %uint 5
@@ -76,7 +75,7 @@
     %float_1 = OpConstant %float 1
     %float_2 = OpConstant %float 2
    %main_out = OpTypeStruct %v4float
-        %113 = OpTypeFunction %void %main_out
+        %113 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
         %arr = OpVariable %_ptr_Function__arr_float_uint_5 Function %27
@@ -189,18 +188,17 @@
          %90 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %113
-%tint_symbol = OpFunctionParameter %main_out
-        %117 = OpLabel
-        %118 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %118
-               OpReturn
+ %main_inner = OpFunction %main_out None %113
+        %116 = OpLabel
+        %117 = OpFunctionCall %void %main_1
+        %118 = OpLoad %v4float %x_GLF_color
+        %119 = OpCompositeConstruct %main_out %118
+               OpReturnValue %119
                OpFunctionEnd
        %main = OpFunction %void None %19
-        %120 = OpLabel
-        %121 = OpFunctionCall %void %main_1
-        %123 = OpLoad %v4float %x_GLF_color
-        %124 = OpCompositeConstruct %main_out %123
-        %122 = OpFunctionCall %void %tint_symbol_2 %124
+        %121 = OpLabel
+        %122 = OpFunctionCall %main_out %main_inner
+        %123 = OpCompositeExtract %v4float %122 0
+               OpStore %x_GLF_color_1_1 %123
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.spvasm.expected.spvasm
index 8577b92..6358d60 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
@@ -15,8 +17,6 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_12 "x_12"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %data "data"
                OpName %a "a"
@@ -25,9 +25,11 @@
                OpName %i_1 "i_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_6 ArrayStride 16
@@ -40,15 +42,17 @@
                OpDecorate %x_12 NonWritable
                OpDecorate %x_12 DescriptorSet 0
                OpDecorate %x_12 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_5 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_6 = OpConstant %uint 6
@@ -56,16 +60,12 @@
        %buf1 = OpTypeStruct %_arr_int_uint_6
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_12 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
      %uint_5 = OpConstant %uint 5
@@ -86,7 +86,7 @@
 %_ptr_Private_float = OpTypePointer Private %float
 %_ptr_Uniform_float = OpTypePointer Uniform %float
    %main_out = OpTypeStruct %v4float
-        %161 = OpTypeFunction %void %main_out
+        %161 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
        %data = OpVariable %_ptr_Function__arr_int_uint_5 Function %31
@@ -268,20 +268,20 @@
         %129 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %161
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %161
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %165 = OpLabel
-        %166 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %166
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %166 = OpFunctionCall %void %main_1
+        %167 = OpLoad %v4float %x_GLF_color
+        %168 = OpCompositeConstruct %main_out %167
+               OpReturnValue %168
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %168 = OpLabel
-        %169 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %169
-        %170 = OpFunctionCall %void %main_1
-        %172 = OpLoad %v4float %x_GLF_color
-        %173 = OpCompositeConstruct %main_out %172
-        %171 = OpFunctionCall %void %tint_symbol_3 %173
+        %170 = OpLabel
+        %172 = OpLoad %v4float %gl_FragCoord_param_1
+        %171 = OpFunctionCall %main_out %main_inner %172
+        %173 = OpCompositeExtract %v4float %171 0
+               OpStore %x_GLF_color_1_1 %173
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.wgsl.expected.spvasm
index 8577b92..6358d60 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
@@ -15,8 +17,6 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_12 "x_12"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %data "data"
                OpName %a "a"
@@ -25,9 +25,11 @@
                OpName %i_1 "i_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_6 ArrayStride 16
@@ -40,15 +42,17 @@
                OpDecorate %x_12 NonWritable
                OpDecorate %x_12 DescriptorSet 0
                OpDecorate %x_12 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_5 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_6 = OpConstant %uint 6
@@ -56,16 +60,12 @@
        %buf1 = OpTypeStruct %_arr_int_uint_6
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_12 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
      %uint_5 = OpConstant %uint 5
@@ -86,7 +86,7 @@
 %_ptr_Private_float = OpTypePointer Private %float
 %_ptr_Uniform_float = OpTypePointer Uniform %float
    %main_out = OpTypeStruct %v4float
-        %161 = OpTypeFunction %void %main_out
+        %161 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
        %data = OpVariable %_ptr_Function__arr_int_uint_5 Function %31
@@ -268,20 +268,20 @@
         %129 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %161
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %161
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %165 = OpLabel
-        %166 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %166
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %166 = OpFunctionCall %void %main_1
+        %167 = OpLoad %v4float %x_GLF_color
+        %168 = OpCompositeConstruct %main_out %167
+               OpReturnValue %168
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %168 = OpLabel
-        %169 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %169
-        %170 = OpFunctionCall %void %main_1
-        %172 = OpLoad %v4float %x_GLF_color
-        %173 = OpCompositeConstruct %main_out %172
-        %171 = OpFunctionCall %void %tint_symbol_3 %173
+        %170 = OpLabel
+        %172 = OpLoad %v4float %gl_FragCoord_param_1
+        %171 = OpFunctionCall %main_out %main_inner %172
+        %173 = OpCompositeExtract %v4float %171 0
+               OpStore %x_GLF_color_1_1 %173
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.spvasm.expected.spvasm
index fd1fbff..583b944 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %108 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_v1_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_v1_1_1 "x_GLF_v1_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
@@ -16,8 +18,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_12 "x_12"
                OpName %x_GLF_v1 "x_GLF_v1"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %uv "uv"
                OpName %v1 "v1"
@@ -25,9 +25,11 @@
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_v1_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_v1_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_4 ArrayStride 16
@@ -40,14 +42,16 @@
                OpDecorate %x_12 NonWritable
                OpDecorate %x_12 DescriptorSet 0
                OpDecorate %x_12 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_v1_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
 %_arr_float_uint_4 = OpTypeArray %float %uint_4
@@ -60,11 +64,7 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_12 = OpVariable %_ptr_Uniform_buf0 Uniform
-   %x_GLF_v1 = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+   %x_GLF_v1 = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -86,11 +86,11 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
       %int_3 = OpConstant %int 3
    %main_out = OpTypeStruct %v4float
-        %126 = OpTypeFunction %void %main_out
+        %126 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
          %uv = OpVariable %_ptr_Function_v2float Function %30
-         %v1 = OpVariable %_ptr_Function_v4float Function %5
+         %v1 = OpVariable %_ptr_Function_v4float Function %7
           %a = OpVariable %_ptr_Function_float Function %35
           %i = OpVariable %_ptr_Function_int Function %38
          %39 = OpLoad %v4float %gl_FragCoord
@@ -202,20 +202,20 @@
         %118 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %126
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %126
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %130 = OpLabel
-        %131 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %131
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %131 = OpFunctionCall %void %main_1
+        %132 = OpLoad %v4float %x_GLF_v1
+        %133 = OpCompositeConstruct %main_out %132
+               OpReturnValue %133
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %133 = OpLabel
-        %134 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %134
-        %135 = OpFunctionCall %void %main_1
-        %137 = OpLoad %v4float %x_GLF_v1
-        %138 = OpCompositeConstruct %main_out %137
-        %136 = OpFunctionCall %void %tint_symbol_3 %138
+        %135 = OpLabel
+        %137 = OpLoad %v4float %gl_FragCoord_param_1
+        %136 = OpFunctionCall %main_out %main_inner %137
+        %138 = OpCompositeExtract %v4float %136 0
+               OpStore %x_GLF_v1_1_1 %138
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.wgsl.expected.spvasm
index fd1fbff..583b944 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %108 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_v1_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_v1_1_1 "x_GLF_v1_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
@@ -16,8 +18,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_12 "x_12"
                OpName %x_GLF_v1 "x_GLF_v1"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %uv "uv"
                OpName %v1 "v1"
@@ -25,9 +25,11 @@
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_v1_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_v1_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_4 ArrayStride 16
@@ -40,14 +42,16 @@
                OpDecorate %x_12 NonWritable
                OpDecorate %x_12 DescriptorSet 0
                OpDecorate %x_12 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_v1_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
 %_arr_float_uint_4 = OpTypeArray %float %uint_4
@@ -60,11 +64,7 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_12 = OpVariable %_ptr_Uniform_buf0 Uniform
-   %x_GLF_v1 = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+   %x_GLF_v1 = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -86,11 +86,11 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
       %int_3 = OpConstant %int 3
    %main_out = OpTypeStruct %v4float
-        %126 = OpTypeFunction %void %main_out
+        %126 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
          %uv = OpVariable %_ptr_Function_v2float Function %30
-         %v1 = OpVariable %_ptr_Function_v4float Function %5
+         %v1 = OpVariable %_ptr_Function_v4float Function %7
           %a = OpVariable %_ptr_Function_float Function %35
           %i = OpVariable %_ptr_Function_int Function %38
          %39 = OpLoad %v4float %gl_FragCoord
@@ -202,20 +202,20 @@
         %118 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %126
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %126
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %130 = OpLabel
-        %131 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %131
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %131 = OpFunctionCall %void %main_1
+        %132 = OpLoad %v4float %x_GLF_v1
+        %133 = OpCompositeConstruct %main_out %132
+               OpReturnValue %133
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %133 = OpLabel
-        %134 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %134
-        %135 = OpFunctionCall %void %main_1
-        %137 = OpLoad %v4float %x_GLF_v1
-        %138 = OpCompositeConstruct %main_out %137
-        %136 = OpFunctionCall %void %tint_symbol_3 %138
+        %135 = OpLabel
+        %137 = OpLoad %v4float %gl_FragCoord_param_1
+        %136 = OpFunctionCall %main_out %main_inner %137
+        %138 = OpCompositeExtract %v4float %136 0
+               OpStore %x_GLF_v1_1_1 %138
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.spvasm.expected.spvasm
index abd2c6b..0d506da 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.spvasm.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 73
+; Bound: 72
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -56,7 +55,7 @@
          %59 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %60 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %61 = OpTypeFunction %void %main_out
+         %61 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %19
@@ -113,18 +112,17 @@
          %54 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %61
-%tint_symbol = OpFunctionParameter %main_out
-         %65 = OpLabel
-         %66 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %66
-               OpReturn
+ %main_inner = OpFunction %main_out None %61
+         %64 = OpLabel
+         %65 = OpFunctionCall %void %main_1
+         %66 = OpLoad %v4float %x_GLF_color
+         %67 = OpCompositeConstruct %main_out %66
+               OpReturnValue %67
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %68 = OpLabel
-         %69 = OpFunctionCall %void %main_1
-         %71 = OpLoad %v4float %x_GLF_color
-         %72 = OpCompositeConstruct %main_out %71
-         %70 = OpFunctionCall %void %tint_symbol_2 %72
+         %69 = OpLabel
+         %70 = OpFunctionCall %main_out %main_inner
+         %71 = OpCompositeExtract %v4float %70 0
+               OpStore %x_GLF_color_1_1 %71
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.wgsl.expected.spvasm
index abd2c6b..0d506da 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 73
+; Bound: 72
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -56,7 +55,7 @@
          %59 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %60 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %61 = OpTypeFunction %void %main_out
+         %61 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %19
@@ -113,18 +112,17 @@
          %54 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %61
-%tint_symbol = OpFunctionParameter %main_out
-         %65 = OpLabel
-         %66 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %66
-               OpReturn
+ %main_inner = OpFunction %main_out None %61
+         %64 = OpLabel
+         %65 = OpFunctionCall %void %main_1
+         %66 = OpLoad %v4float %x_GLF_color
+         %67 = OpCompositeConstruct %main_out %66
+               OpReturnValue %67
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %68 = OpLabel
-         %69 = OpFunctionCall %void %main_1
-         %71 = OpLoad %v4float %x_GLF_color
-         %72 = OpCompositeConstruct %main_out %71
-         %70 = OpFunctionCall %void %tint_symbol_2 %72
+         %69 = OpLabel
+         %70 = OpFunctionCall %main_out %main_inner
+         %71 = OpCompositeExtract %v4float %70 0
+               OpStore %x_GLF_color_1_1 %71
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.spvasm.expected.spvasm
index d46c0ee..6cb11ba 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.spvasm.expected.spvasm
@@ -5,36 +5,40 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -42,11 +46,7 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -61,7 +61,7 @@
        %bool = OpTypeBool
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %99 = OpTypeFunction %void %main_out
+         %99 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %24
@@ -162,20 +162,20 @@
          %58 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %99
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %99
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %103 = OpLabel
-        %104 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %104
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %104 = OpFunctionCall %void %main_1
+        %105 = OpLoad %v4float %x_GLF_color
+        %106 = OpCompositeConstruct %main_out %105
+               OpReturnValue %106
                OpFunctionEnd
        %main = OpFunction %void None %18
-        %106 = OpLabel
-        %107 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %107
-        %108 = OpFunctionCall %void %main_1
-        %110 = OpLoad %v4float %x_GLF_color
-        %111 = OpCompositeConstruct %main_out %110
-        %109 = OpFunctionCall %void %tint_symbol_3 %111
+        %108 = OpLabel
+        %110 = OpLoad %v4float %gl_FragCoord_param_1
+        %109 = OpFunctionCall %main_out %main_inner %110
+        %111 = OpCompositeExtract %v4float %109 0
+               OpStore %x_GLF_color_1_1 %111
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.wgsl.expected.spvasm
index d46c0ee..6cb11ba 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.wgsl.expected.spvasm
@@ -5,36 +5,40 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -42,11 +46,7 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -61,7 +61,7 @@
        %bool = OpTypeBool
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %99 = OpTypeFunction %void %main_out
+         %99 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %24
@@ -162,20 +162,20 @@
          %58 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %99
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %99
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %103 = OpLabel
-        %104 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %104
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %104 = OpFunctionCall %void %main_1
+        %105 = OpLoad %v4float %x_GLF_color
+        %106 = OpCompositeConstruct %main_out %105
+               OpReturnValue %106
                OpFunctionEnd
        %main = OpFunction %void None %18
-        %106 = OpLabel
-        %107 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %107
-        %108 = OpFunctionCall %void %main_1
-        %110 = OpLoad %v4float %x_GLF_color
-        %111 = OpCompositeConstruct %main_out %110
-        %109 = OpFunctionCall %void %tint_symbol_3 %111
+        %108 = OpLabel
+        %110 = OpLoad %v4float %gl_FragCoord_param_1
+        %109 = OpFunctionCall %main_out %main_inner %110
+        %111 = OpCompositeExtract %v4float %109 0
+               OpStore %x_GLF_color_1_1 %111
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.spvasm.expected.spvasm
index 847dc61..59ab268 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 138
+; Bound: 137
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_i1_ "func_i1_"
                OpName %x "x"
                OpName %a "a"
@@ -23,18 +23,22 @@
                OpName %param_1 "param_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_5 ArrayStride 16
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_4 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
@@ -42,13 +46,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Function_int = OpTypePointer Function %int
          %15 = OpTypeFunction %int %_ptr_Function_int
          %21 = OpConstantNull %int
@@ -68,7 +67,7 @@
          %84 = OpTypeFunction %void
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-        %126 = OpTypeFunction %void %main_out
+        %126 = OpTypeFunction %main_out
    %func_i1_ = OpFunction %int None %15
           %x = OpFunctionParameter %_ptr_Function_int
          %19 = OpLabel
@@ -198,18 +197,17 @@
         %106 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %126
-%tint_symbol = OpFunctionParameter %main_out
-        %130 = OpLabel
-        %131 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %131
-               OpReturn
+ %main_inner = OpFunction %main_out None %126
+        %129 = OpLabel
+        %130 = OpFunctionCall %void %main_1
+        %131 = OpLoad %v4float %x_GLF_color
+        %132 = OpCompositeConstruct %main_out %131
+               OpReturnValue %132
                OpFunctionEnd
        %main = OpFunction %void None %84
-        %133 = OpLabel
-        %134 = OpFunctionCall %void %main_1
-        %136 = OpLoad %v4float %x_GLF_color
-        %137 = OpCompositeConstruct %main_out %136
-        %135 = OpFunctionCall %void %tint_symbol_2 %137
+        %134 = OpLabel
+        %135 = OpFunctionCall %main_out %main_inner
+        %136 = OpCompositeExtract %v4float %135 0
+               OpStore %x_GLF_color_1_1 %136
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.wgsl.expected.spvasm
index 847dc61..59ab268 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 138
+; Bound: 137
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_i1_ "func_i1_"
                OpName %x "x"
                OpName %a "a"
@@ -23,18 +23,22 @@
                OpName %param_1 "param_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_5 ArrayStride 16
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_4 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
@@ -42,13 +46,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Function_int = OpTypePointer Function %int
          %15 = OpTypeFunction %int %_ptr_Function_int
          %21 = OpConstantNull %int
@@ -68,7 +67,7 @@
          %84 = OpTypeFunction %void
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-        %126 = OpTypeFunction %void %main_out
+        %126 = OpTypeFunction %main_out
    %func_i1_ = OpFunction %int None %15
           %x = OpFunctionParameter %_ptr_Function_int
          %19 = OpLabel
@@ -198,18 +197,17 @@
         %106 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %126
-%tint_symbol = OpFunctionParameter %main_out
-        %130 = OpLabel
-        %131 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %131
-               OpReturn
+ %main_inner = OpFunction %main_out None %126
+        %129 = OpLabel
+        %130 = OpFunctionCall %void %main_1
+        %131 = OpLoad %v4float %x_GLF_color
+        %132 = OpCompositeConstruct %main_out %131
+               OpReturnValue %132
                OpFunctionEnd
        %main = OpFunction %void None %84
-        %133 = OpLabel
-        %134 = OpFunctionCall %void %main_1
-        %136 = OpLoad %v4float %x_GLF_color
-        %137 = OpCompositeConstruct %main_out %136
-        %135 = OpFunctionCall %void %tint_symbol_2 %137
+        %134 = OpLabel
+        %135 = OpFunctionCall %main_out %main_inner
+        %136 = OpCompositeExtract %v4float %135 0
+               OpStore %x_GLF_color_1_1 %136
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.spvasm
index ee3c7b8..1dfb495 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.spvasm
@@ -1,32 +1,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 88
+; Bound: 87
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m "m"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -34,13 +38,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -56,7 +55,7 @@
      %uint_1 = OpConstant %uint 1
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %76 = OpTypeFunction %void %main_out
+         %76 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %m = OpVariable %_ptr_Function_mat2v2float Function %23
@@ -113,18 +112,17 @@
          %55 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %76
-%tint_symbol = OpFunctionParameter %main_out
-         %80 = OpLabel
-         %81 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %81
-               OpReturn
+ %main_inner = OpFunction %main_out None %76
+         %79 = OpLabel
+         %80 = OpFunctionCall %void %main_1
+         %81 = OpLoad %v4float %x_GLF_color
+         %82 = OpCompositeConstruct %main_out %81
+               OpReturnValue %82
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %83 = OpLabel
-         %84 = OpFunctionCall %void %main_1
-         %86 = OpLoad %v4float %x_GLF_color
-         %87 = OpCompositeConstruct %main_out %86
-         %85 = OpFunctionCall %void %tint_symbol_2 %87
+         %84 = OpLabel
+         %85 = OpFunctionCall %main_out %main_inner
+         %86 = OpCompositeExtract %v4float %85 0
+               OpStore %x_GLF_color_1_1 %86
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.wgsl.expected.spvasm
index b279bcf..4975569 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.wgsl.expected.spvasm
@@ -1,32 +1,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 90
+; Bound: 89
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m "m"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -34,13 +38,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -56,7 +55,7 @@
      %uint_1 = OpConstant %uint 1
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %78 = OpTypeFunction %void %main_out
+         %78 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %m = OpVariable %_ptr_Function_mat2v2float Function %23
@@ -118,18 +117,17 @@
          %57 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %78
-%tint_symbol = OpFunctionParameter %main_out
-         %82 = OpLabel
-         %83 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %83
-               OpReturn
+ %main_inner = OpFunction %main_out None %78
+         %81 = OpLabel
+         %82 = OpFunctionCall %void %main_1
+         %83 = OpLoad %v4float %x_GLF_color
+         %84 = OpCompositeConstruct %main_out %83
+               OpReturnValue %84
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %85 = OpLabel
-         %86 = OpFunctionCall %void %main_1
-         %88 = OpLoad %v4float %x_GLF_color
-         %89 = OpCompositeConstruct %main_out %88
-         %87 = OpFunctionCall %void %tint_symbol_2 %89
+         %86 = OpLabel
+         %87 = OpFunctionCall %main_out %main_inner
+         %88 = OpCompositeExtract %v4float %87 0
+               OpStore %x_GLF_color_1_1 %88
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.spvasm.expected.spvasm
index a34f056..053f61f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.spvasm.expected.spvasm
@@ -1,47 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 83
+; Bound: 82
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m0 "m0"
                OpName %m1 "m1"
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf0 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -60,7 +59,7 @@
        %bool = OpTypeBool
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %71 = OpTypeFunction %void %main_out
+         %71 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %m0 = OpVariable %_ptr_Function_mat2v2float Function %22
@@ -112,18 +111,17 @@
          %55 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %71
-%tint_symbol = OpFunctionParameter %main_out
-         %75 = OpLabel
-         %76 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %76
-               OpReturn
+ %main_inner = OpFunction %main_out None %71
+         %74 = OpLabel
+         %75 = OpFunctionCall %void %main_1
+         %76 = OpLoad %v4float %x_GLF_color
+         %77 = OpCompositeConstruct %main_out %76
+               OpReturnValue %77
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %78 = OpLabel
-         %79 = OpFunctionCall %void %main_1
-         %81 = OpLoad %v4float %x_GLF_color
-         %82 = OpCompositeConstruct %main_out %81
-         %80 = OpFunctionCall %void %tint_symbol_2 %82
+         %79 = OpLabel
+         %80 = OpFunctionCall %main_out %main_inner
+         %81 = OpCompositeExtract %v4float %80 0
+               OpStore %x_GLF_color_1_1 %81
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.wgsl.expected.spvasm
index a34f056..053f61f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.wgsl.expected.spvasm
@@ -1,47 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 83
+; Bound: 82
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m0 "m0"
                OpName %m1 "m1"
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf0 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -60,7 +59,7 @@
        %bool = OpTypeBool
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %71 = OpTypeFunction %void %main_out
+         %71 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %m0 = OpVariable %_ptr_Function_mat2v2float Function %22
@@ -112,18 +111,17 @@
          %55 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %71
-%tint_symbol = OpFunctionParameter %main_out
-         %75 = OpLabel
-         %76 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %76
-               OpReturn
+ %main_inner = OpFunction %main_out None %71
+         %74 = OpLabel
+         %75 = OpFunctionCall %void %main_1
+         %76 = OpLoad %v4float %x_GLF_color
+         %77 = OpCompositeConstruct %main_out %76
+               OpReturnValue %77
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %78 = OpLabel
-         %79 = OpFunctionCall %void %main_1
-         %81 = OpLoad %v4float %x_GLF_color
-         %82 = OpCompositeConstruct %main_out %81
-         %80 = OpFunctionCall %void %tint_symbol_2 %82
+         %79 = OpLabel
+         %80 = OpFunctionCall %main_out %main_inner
+         %81 = OpCompositeExtract %v4float %80 0
+               OpStore %x_GLF_color_1_1 %81
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.spvasm.expected.spvasm
index 329e139..07268c9 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.spvasm.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
          %26 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -49,7 +48,7 @@
          %36 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %37 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-         %38 = OpTypeFunction %void %main_out
+         %38 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
          %19 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0
@@ -72,18 +71,17 @@
          %31 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %38
-%tint_symbol = OpFunctionParameter %main_out
-         %42 = OpLabel
-         %43 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %43
-               OpReturn
+ %main_inner = OpFunction %main_out None %38
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %main_1
+         %43 = OpLoad %v4float %x_GLF_color
+         %44 = OpCompositeConstruct %main_out %43
+               OpReturnValue %44
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %main_1
-         %48 = OpLoad %v4float %x_GLF_color
-         %49 = OpCompositeConstruct %main_out %48
-         %47 = OpFunctionCall %void %tint_symbol_2 %49
+         %46 = OpLabel
+         %47 = OpFunctionCall %main_out %main_inner
+         %48 = OpCompositeExtract %v4float %47 0
+               OpStore %x_GLF_color_1_1 %48
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.wgsl.expected.spvasm
index 329e139..07268c9 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
          %26 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -49,7 +48,7 @@
          %36 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %37 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-         %38 = OpTypeFunction %void %main_out
+         %38 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
          %19 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0
@@ -72,18 +71,17 @@
          %31 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %38
-%tint_symbol = OpFunctionParameter %main_out
-         %42 = OpLabel
-         %43 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %43
-               OpReturn
+ %main_inner = OpFunction %main_out None %38
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %main_1
+         %43 = OpLoad %v4float %x_GLF_color
+         %44 = OpCompositeConstruct %main_out %43
+               OpReturnValue %44
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %main_1
-         %48 = OpLoad %v4float %x_GLF_color
-         %49 = OpCompositeConstruct %main_out %48
-         %47 = OpFunctionCall %void %tint_symbol_2 %49
+         %46 = OpLabel
+         %47 = OpFunctionCall %main_out %main_inner
+         %48 = OpCompositeExtract %v4float %47 0
+               OpStore %x_GLF_color_1_1 %48
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.spvasm.expected.spvasm
index 63a17ef..83047dc 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.spvasm.expected.spvasm
@@ -6,37 +6,41 @@
                OpCapability Shader
          %30 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -44,10 +48,6 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -61,7 +61,7 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %58 = OpTypeFunction %void %main_out
+         %58 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %24
@@ -98,20 +98,20 @@
          %38 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %58
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %58
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %62 = OpLabel
-         %63 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %63
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %63 = OpFunctionCall %void %main_1
+         %64 = OpLoad %v4float %x_GLF_color
+         %65 = OpCompositeConstruct %main_out %64
+               OpReturnValue %65
                OpFunctionEnd
        %main = OpFunction %void None %18
-         %65 = OpLabel
-         %66 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %66
-         %67 = OpFunctionCall %void %main_1
-         %69 = OpLoad %v4float %x_GLF_color
-         %70 = OpCompositeConstruct %main_out %69
-         %68 = OpFunctionCall %void %tint_symbol_3 %70
+         %67 = OpLabel
+         %69 = OpLoad %v4float %gl_FragCoord_param_1
+         %68 = OpFunctionCall %main_out %main_inner %69
+         %70 = OpCompositeExtract %v4float %68 0
+               OpStore %x_GLF_color_1_1 %70
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.wgsl.expected.spvasm
index 63a17ef..83047dc 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.wgsl.expected.spvasm
@@ -6,37 +6,41 @@
                OpCapability Shader
          %30 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -44,10 +48,6 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -61,7 +61,7 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %58 = OpTypeFunction %void %main_out
+         %58 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %24
@@ -98,20 +98,20 @@
          %38 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %58
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %58
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %62 = OpLabel
-         %63 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %63
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %63 = OpFunctionCall %void %main_1
+         %64 = OpLoad %v4float %x_GLF_color
+         %65 = OpCompositeConstruct %main_out %64
+               OpReturnValue %65
                OpFunctionEnd
        %main = OpFunction %void None %18
-         %65 = OpLabel
-         %66 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %66
-         %67 = OpFunctionCall %void %main_1
-         %69 = OpLoad %v4float %x_GLF_color
-         %70 = OpCompositeConstruct %main_out %69
-         %68 = OpFunctionCall %void %tint_symbol_3 %70
+         %67 = OpLabel
+         %69 = OpLoad %v4float %gl_FragCoord_param_1
+         %68 = OpFunctionCall %main_out %main_inner %69
+         %70 = OpCompositeExtract %v4float %68 0
+               OpStore %x_GLF_color_1_1 %70
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.spvasm.expected.spvasm
index 16fa1d7..ecbadf6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 174
+; Bound: 173
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_43 "x_43"
                OpName %x_44 "x_44"
@@ -30,34 +30,33 @@
                OpName %x_88_1 "x_88_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
                OpName %func_struct_S_i1_i1_i11_i1_ "func_struct_S_i1_i1_i11_i1_"
                OpName %s "s"
                OpName %x "x"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %S 0 Offset 0
                OpMemberDecorate %S 1 Offset 4
                OpMemberDecorate %S 2 Offset 8
                OpDecorate %_arr_S_uint_2 ArrayStride 12
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -88,8 +87,8 @@
     %float_1 = OpConstant %float 1
         %115 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %116 = OpTypeFunction %void %main_out
-        %128 = OpTypeFunction %int %_ptr_Function_S %_ptr_Function_int
+        %116 = OpTypeFunction %main_out
+        %127 = OpTypeFunction %int %_ptr_Function_S %_ptr_Function_int
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
        %x_43 = OpVariable %_ptr_Function_int Function %18
@@ -212,63 +211,62 @@
          %36 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %116
-%tint_symbol = OpFunctionParameter %main_out
-        %120 = OpLabel
-        %121 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %121
-               OpReturn
+ %main_inner = OpFunction %main_out None %116
+        %119 = OpLabel
+        %120 = OpFunctionCall %void %main_1
+        %121 = OpLoad %v4float %x_GLF_color
+        %122 = OpCompositeConstruct %main_out %121
+               OpReturnValue %122
                OpFunctionEnd
        %main = OpFunction %void None %12
-        %123 = OpLabel
-        %124 = OpFunctionCall %void %main_1
-        %126 = OpLoad %v4float %x_GLF_color
-        %127 = OpCompositeConstruct %main_out %126
-        %125 = OpFunctionCall %void %tint_symbol_2 %127
+        %124 = OpLabel
+        %125 = OpFunctionCall %main_out %main_inner
+        %126 = OpCompositeExtract %v4float %125 0
+               OpStore %x_GLF_color_1_1 %126
                OpReturn
                OpFunctionEnd
-%func_struct_S_i1_i1_i11_i1_ = OpFunction %int None %128
+%func_struct_S_i1_i1_i11_i1_ = OpFunction %int None %127
           %s = OpFunctionParameter %_ptr_Function_S
           %x = OpFunctionParameter %_ptr_Function_int
-        %132 = OpLabel
-        %134 = OpLoad %int %x
-        %136 = OpAccessChain %_ptr_Function_int %s %uint_0
-               OpStore %136 %134
-        %138 = OpAccessChain %_ptr_Function_int %s %uint_0
-        %139 = OpLoad %int %138
-        %140 = OpIEqual %bool %139 %int_2
-               OpSelectionMerge %141 None
-               OpBranchConditional %140 %142 %141
-        %142 = OpLabel
-        %144 = OpAccessChain %_ptr_Function_int %s %uint_0
-               OpStore %144 %int_9
-               OpBranch %141
+        %131 = OpLabel
+        %133 = OpLoad %int %x
+        %135 = OpAccessChain %_ptr_Function_int %s %uint_0
+               OpStore %135 %133
+        %137 = OpAccessChain %_ptr_Function_int %s %uint_0
+        %138 = OpLoad %int %137
+        %139 = OpIEqual %bool %138 %int_2
+               OpSelectionMerge %140 None
+               OpBranchConditional %139 %141 %140
         %141 = OpLabel
-        %146 = OpLoad %int %x
-        %148 = OpAccessChain %_ptr_Function_int %s %uint_1
-        %149 = OpIAdd %int %146 %int_1
-               OpStore %148 %149
-        %151 = OpLoad %int %x
-        %153 = OpAccessChain %_ptr_Function_int %s %uint_2
-        %154 = OpIAdd %int %151 %int_2
-               OpStore %153 %154
-        %156 = OpAccessChain %_ptr_Function_int %s %uint_1
-        %157 = OpLoad %int %156
-        %158 = OpIEqual %bool %157 %int_2
-               OpSelectionMerge %159 None
-               OpBranchConditional %158 %160 %159
-        %160 = OpLabel
-        %162 = OpAccessChain %_ptr_Function_int %s %uint_1
-               OpStore %162 %int_7
-               OpBranch %159
+        %143 = OpAccessChain %_ptr_Function_int %s %uint_0
+               OpStore %143 %int_9
+               OpBranch %140
+        %140 = OpLabel
+        %145 = OpLoad %int %x
+        %147 = OpAccessChain %_ptr_Function_int %s %uint_1
+        %148 = OpIAdd %int %145 %int_1
+               OpStore %147 %148
+        %150 = OpLoad %int %x
+        %152 = OpAccessChain %_ptr_Function_int %s %uint_2
+        %153 = OpIAdd %int %150 %int_2
+               OpStore %152 %153
+        %155 = OpAccessChain %_ptr_Function_int %s %uint_1
+        %156 = OpLoad %int %155
+        %157 = OpIEqual %bool %156 %int_2
+               OpSelectionMerge %158 None
+               OpBranchConditional %157 %159 %158
         %159 = OpLabel
-        %164 = OpAccessChain %_ptr_Function_int %s %uint_0
-        %165 = OpLoad %int %164
-        %167 = OpAccessChain %_ptr_Function_int %s %uint_1
-        %168 = OpLoad %int %167
-        %170 = OpAccessChain %_ptr_Function_int %s %uint_2
-        %171 = OpLoad %int %170
-        %172 = OpIAdd %int %165 %168
-        %173 = OpIAdd %int %172 %171
-               OpReturnValue %173
+        %161 = OpAccessChain %_ptr_Function_int %s %uint_1
+               OpStore %161 %int_7
+               OpBranch %158
+        %158 = OpLabel
+        %163 = OpAccessChain %_ptr_Function_int %s %uint_0
+        %164 = OpLoad %int %163
+        %166 = OpAccessChain %_ptr_Function_int %s %uint_1
+        %167 = OpLoad %int %166
+        %169 = OpAccessChain %_ptr_Function_int %s %uint_2
+        %170 = OpLoad %int %169
+        %171 = OpIAdd %int %164 %167
+        %172 = OpIAdd %int %171 %170
+               OpReturnValue %172
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.wgsl.expected.spvasm
index 16fa1d7..ecbadf6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 174
+; Bound: 173
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_43 "x_43"
                OpName %x_44 "x_44"
@@ -30,34 +30,33 @@
                OpName %x_88_1 "x_88_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
                OpName %func_struct_S_i1_i1_i11_i1_ "func_struct_S_i1_i1_i11_i1_"
                OpName %s "s"
                OpName %x "x"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %S 0 Offset 0
                OpMemberDecorate %S 1 Offset 4
                OpMemberDecorate %S 2 Offset 8
                OpDecorate %_arr_S_uint_2 ArrayStride 12
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -88,8 +87,8 @@
     %float_1 = OpConstant %float 1
         %115 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %116 = OpTypeFunction %void %main_out
-        %128 = OpTypeFunction %int %_ptr_Function_S %_ptr_Function_int
+        %116 = OpTypeFunction %main_out
+        %127 = OpTypeFunction %int %_ptr_Function_S %_ptr_Function_int
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
        %x_43 = OpVariable %_ptr_Function_int Function %18
@@ -212,63 +211,62 @@
          %36 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %116
-%tint_symbol = OpFunctionParameter %main_out
-        %120 = OpLabel
-        %121 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %121
-               OpReturn
+ %main_inner = OpFunction %main_out None %116
+        %119 = OpLabel
+        %120 = OpFunctionCall %void %main_1
+        %121 = OpLoad %v4float %x_GLF_color
+        %122 = OpCompositeConstruct %main_out %121
+               OpReturnValue %122
                OpFunctionEnd
        %main = OpFunction %void None %12
-        %123 = OpLabel
-        %124 = OpFunctionCall %void %main_1
-        %126 = OpLoad %v4float %x_GLF_color
-        %127 = OpCompositeConstruct %main_out %126
-        %125 = OpFunctionCall %void %tint_symbol_2 %127
+        %124 = OpLabel
+        %125 = OpFunctionCall %main_out %main_inner
+        %126 = OpCompositeExtract %v4float %125 0
+               OpStore %x_GLF_color_1_1 %126
                OpReturn
                OpFunctionEnd
-%func_struct_S_i1_i1_i11_i1_ = OpFunction %int None %128
+%func_struct_S_i1_i1_i11_i1_ = OpFunction %int None %127
           %s = OpFunctionParameter %_ptr_Function_S
           %x = OpFunctionParameter %_ptr_Function_int
-        %132 = OpLabel
-        %134 = OpLoad %int %x
-        %136 = OpAccessChain %_ptr_Function_int %s %uint_0
-               OpStore %136 %134
-        %138 = OpAccessChain %_ptr_Function_int %s %uint_0
-        %139 = OpLoad %int %138
-        %140 = OpIEqual %bool %139 %int_2
-               OpSelectionMerge %141 None
-               OpBranchConditional %140 %142 %141
-        %142 = OpLabel
-        %144 = OpAccessChain %_ptr_Function_int %s %uint_0
-               OpStore %144 %int_9
-               OpBranch %141
+        %131 = OpLabel
+        %133 = OpLoad %int %x
+        %135 = OpAccessChain %_ptr_Function_int %s %uint_0
+               OpStore %135 %133
+        %137 = OpAccessChain %_ptr_Function_int %s %uint_0
+        %138 = OpLoad %int %137
+        %139 = OpIEqual %bool %138 %int_2
+               OpSelectionMerge %140 None
+               OpBranchConditional %139 %141 %140
         %141 = OpLabel
-        %146 = OpLoad %int %x
-        %148 = OpAccessChain %_ptr_Function_int %s %uint_1
-        %149 = OpIAdd %int %146 %int_1
-               OpStore %148 %149
-        %151 = OpLoad %int %x
-        %153 = OpAccessChain %_ptr_Function_int %s %uint_2
-        %154 = OpIAdd %int %151 %int_2
-               OpStore %153 %154
-        %156 = OpAccessChain %_ptr_Function_int %s %uint_1
-        %157 = OpLoad %int %156
-        %158 = OpIEqual %bool %157 %int_2
-               OpSelectionMerge %159 None
-               OpBranchConditional %158 %160 %159
-        %160 = OpLabel
-        %162 = OpAccessChain %_ptr_Function_int %s %uint_1
-               OpStore %162 %int_7
-               OpBranch %159
+        %143 = OpAccessChain %_ptr_Function_int %s %uint_0
+               OpStore %143 %int_9
+               OpBranch %140
+        %140 = OpLabel
+        %145 = OpLoad %int %x
+        %147 = OpAccessChain %_ptr_Function_int %s %uint_1
+        %148 = OpIAdd %int %145 %int_1
+               OpStore %147 %148
+        %150 = OpLoad %int %x
+        %152 = OpAccessChain %_ptr_Function_int %s %uint_2
+        %153 = OpIAdd %int %150 %int_2
+               OpStore %152 %153
+        %155 = OpAccessChain %_ptr_Function_int %s %uint_1
+        %156 = OpLoad %int %155
+        %157 = OpIEqual %bool %156 %int_2
+               OpSelectionMerge %158 None
+               OpBranchConditional %157 %159 %158
         %159 = OpLabel
-        %164 = OpAccessChain %_ptr_Function_int %s %uint_0
-        %165 = OpLoad %int %164
-        %167 = OpAccessChain %_ptr_Function_int %s %uint_1
-        %168 = OpLoad %int %167
-        %170 = OpAccessChain %_ptr_Function_int %s %uint_2
-        %171 = OpLoad %int %170
-        %172 = OpIAdd %int %165 %168
-        %173 = OpIAdd %int %172 %171
-               OpReturnValue %173
+        %161 = OpAccessChain %_ptr_Function_int %s %uint_1
+               OpStore %161 %int_7
+               OpBranch %158
+        %158 = OpLabel
+        %163 = OpAccessChain %_ptr_Function_int %s %uint_0
+        %164 = OpLoad %int %163
+        %166 = OpAccessChain %_ptr_Function_int %s %uint_1
+        %167 = OpLoad %int %166
+        %169 = OpAccessChain %_ptr_Function_int %s %uint_2
+        %170 = OpLoad %int %169
+        %171 = OpIAdd %int %164 %167
+        %172 = OpIAdd %int %171 %170
+               OpReturnValue %172
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.spvasm.expected.spvasm
index 0216afc..82bb00f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 66
+; Bound: 65
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "two"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_vf2_ "func_vf2_"
                OpName %v "v"
                OpName %main_1 "main_1"
@@ -19,26 +19,25 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v2float = OpTypeVector %float 2
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %11 = OpTypeFunction %float %_ptr_Function_v2float
@@ -59,7 +58,7 @@
          %52 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %53 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %54 = OpTypeFunction %void %main_out
+         %54 = OpTypeFunction %main_out
   %func_vf2_ = OpFunction %float None %11
           %v = OpFunctionParameter %_ptr_Function_v2float
          %16 = OpLabel
@@ -97,18 +96,17 @@
          %48 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %54
-%tint_symbol = OpFunctionParameter %main_out
-         %58 = OpLabel
-         %59 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %59
-               OpReturn
+ %main_inner = OpFunction %main_out None %54
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %main_1
+         %59 = OpLoad %v4float %x_GLF_color
+         %60 = OpCompositeConstruct %main_out %59
+               OpReturnValue %60
                OpFunctionEnd
        %main = OpFunction %void None %35
-         %61 = OpLabel
-         %62 = OpFunctionCall %void %main_1
-         %64 = OpLoad %v4float %x_GLF_color
-         %65 = OpCompositeConstruct %main_out %64
-         %63 = OpFunctionCall %void %tint_symbol_2 %65
+         %62 = OpLabel
+         %63 = OpFunctionCall %main_out %main_inner
+         %64 = OpCompositeExtract %v4float %63 0
+               OpStore %x_GLF_color_1_1 %64
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.wgsl.expected.spvasm
index 0216afc..82bb00f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 66
+; Bound: 65
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "two"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_vf2_ "func_vf2_"
                OpName %v "v"
                OpName %main_1 "main_1"
@@ -19,26 +19,25 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v2float = OpTypeVector %float 2
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %11 = OpTypeFunction %float %_ptr_Function_v2float
@@ -59,7 +58,7 @@
          %52 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %53 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %54 = OpTypeFunction %void %main_out
+         %54 = OpTypeFunction %main_out
   %func_vf2_ = OpFunction %float None %11
           %v = OpFunctionParameter %_ptr_Function_v2float
          %16 = OpLabel
@@ -97,18 +96,17 @@
          %48 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %54
-%tint_symbol = OpFunctionParameter %main_out
-         %58 = OpLabel
-         %59 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %59
-               OpReturn
+ %main_inner = OpFunction %main_out None %54
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %main_1
+         %59 = OpLoad %v4float %x_GLF_color
+         %60 = OpCompositeConstruct %main_out %59
+               OpReturnValue %60
                OpFunctionEnd
        %main = OpFunction %void None %35
-         %61 = OpLabel
-         %62 = OpFunctionCall %void %main_1
-         %64 = OpLoad %v4float %x_GLF_color
-         %65 = OpCompositeConstruct %main_out %64
-         %63 = OpFunctionCall %void %tint_symbol_2 %65
+         %62 = OpLabel
+         %63 = OpFunctionCall %main_out %main_inner
+         %64 = OpCompositeExtract %v4float %63 0
+               OpStore %x_GLF_color_1_1 %64
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.spvasm.expected.spvasm
index 5b579f1..9a52195 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 68
+; Bound: 67
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "three"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %b "b"
                OpName %x_34 "x_34"
@@ -20,26 +20,25 @@
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
          %11 = OpTypeFunction %float
 %_ptr_Function_float = OpTypePointer Function %float
          %16 = OpConstantNull %float
@@ -56,7 +55,7 @@
          %54 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %55 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %56 = OpTypeFunction %void %main_out
+         %56 = OpTypeFunction %main_out
       %func_ = OpFunction %float None %11
          %13 = OpLabel
           %b = OpVariable %_ptr_Function_float Function %16
@@ -115,18 +114,17 @@
          %51 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %56
-%tint_symbol = OpFunctionParameter %main_out
-         %60 = OpLabel
-         %61 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %61
-               OpReturn
+ %main_inner = OpFunction %main_out None %56
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %main_1
+         %61 = OpLoad %v4float %x_GLF_color
+         %62 = OpCompositeConstruct %main_out %61
+               OpReturnValue %62
                OpFunctionEnd
        %main = OpFunction %void None %45
-         %63 = OpLabel
-         %64 = OpFunctionCall %void %main_1
-         %66 = OpLoad %v4float %x_GLF_color
-         %67 = OpCompositeConstruct %main_out %66
-         %65 = OpFunctionCall %void %tint_symbol_2 %67
+         %64 = OpLabel
+         %65 = OpFunctionCall %main_out %main_inner
+         %66 = OpCompositeExtract %v4float %65 0
+               OpStore %x_GLF_color_1_1 %66
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.wgsl.expected.spvasm
index 5b579f1..9a52195 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 68
+; Bound: 67
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "three"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %b "b"
                OpName %x_34 "x_34"
@@ -20,26 +20,25 @@
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
          %11 = OpTypeFunction %float
 %_ptr_Function_float = OpTypePointer Function %float
          %16 = OpConstantNull %float
@@ -56,7 +55,7 @@
          %54 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %55 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %56 = OpTypeFunction %void %main_out
+         %56 = OpTypeFunction %main_out
       %func_ = OpFunction %float None %11
          %13 = OpLabel
           %b = OpVariable %_ptr_Function_float Function %16
@@ -115,18 +114,17 @@
          %51 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %56
-%tint_symbol = OpFunctionParameter %main_out
-         %60 = OpLabel
-         %61 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %61
-               OpReturn
+ %main_inner = OpFunction %main_out None %56
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %main_1
+         %61 = OpLoad %v4float %x_GLF_color
+         %62 = OpCompositeConstruct %main_out %61
+               OpReturnValue %62
                OpFunctionEnd
        %main = OpFunction %void None %45
-         %63 = OpLabel
-         %64 = OpFunctionCall %void %main_1
-         %66 = OpLoad %v4float %x_GLF_color
-         %67 = OpCompositeConstruct %main_out %66
-         %65 = OpFunctionCall %void %tint_symbol_2 %67
+         %64 = OpLabel
+         %65 = OpFunctionCall %main_out %main_inner
+         %66 = OpCompositeExtract %v4float %65 0
+               OpStore %x_GLF_color_1_1 %66
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-min-intbitstofloat-undefined-never-used/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-min-intbitstofloat-undefined-never-used/0-opt.spvasm.expected.spvasm
index b9c090d..1c74ef4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-min-intbitstofloat-undefined-never-used/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-min-intbitstofloat-undefined-never-used/0-opt.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %31 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
@@ -16,15 +18,15 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_1 ArrayStride 16
@@ -37,31 +39,29 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -76,7 +76,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %65 = OpTypeFunction %void %main_out
+         %65 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %29
@@ -114,20 +114,20 @@
          %45 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %65
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %65
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %69 = OpLabel
-         %70 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %70
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %70 = OpFunctionCall %void %main_1
+         %71 = OpLoad %v4float %x_GLF_color
+         %72 = OpCompositeConstruct %main_out %71
+               OpReturnValue %72
                OpFunctionEnd
        %main = OpFunction %void None %23
-         %72 = OpLabel
-         %73 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %73
-         %74 = OpFunctionCall %void %main_1
-         %76 = OpLoad %v4float %x_GLF_color
-         %77 = OpCompositeConstruct %main_out %76
-         %75 = OpFunctionCall %void %tint_symbol_3 %77
+         %74 = OpLabel
+         %76 = OpLoad %v4float %gl_FragCoord_param_1
+         %75 = OpFunctionCall %main_out %main_inner %76
+         %77 = OpCompositeExtract %v4float %75 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-min-intbitstofloat-undefined-never-used/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-min-intbitstofloat-undefined-never-used/0-opt.wgsl.expected.spvasm
index b9c090d..1c74ef4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-min-intbitstofloat-undefined-never-used/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-min-intbitstofloat-undefined-never-used/0-opt.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %31 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
@@ -16,15 +18,15 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_1 ArrayStride 16
@@ -37,31 +39,29 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -76,7 +76,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %65 = OpTypeFunction %void %main_out
+         %65 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %29
@@ -114,20 +114,20 @@
          %45 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %65
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %65
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %69 = OpLabel
-         %70 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %70
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %70 = OpFunctionCall %void %main_1
+         %71 = OpLoad %v4float %x_GLF_color
+         %72 = OpCompositeConstruct %main_out %71
+               OpReturnValue %72
                OpFunctionEnd
        %main = OpFunction %void None %23
-         %72 = OpLabel
-         %73 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %73
-         %74 = OpFunctionCall %void %main_1
-         %76 = OpLoad %v4float %x_GLF_color
-         %77 = OpCompositeConstruct %main_out %76
-         %75 = OpFunctionCall %void %tint_symbol_3 %77
+         %74 = OpLabel
+         %76 = OpLoad %v4float %gl_FragCoord_param_1
+         %75 = OpFunctionCall %main_out %main_inner %76
+         %77 = OpCompositeExtract %v4float %75 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.spvasm.expected.spvasm
index 0a0f186..b01bf9e 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.spvasm.expected.spvasm
@@ -5,31 +5,31 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -40,7 +40,7 @@
         %int = OpTypeInt 32 1
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %38 = OpTypeFunction %void %main_out
+         %38 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
          %18 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
@@ -62,20 +62,20 @@
                OpStore %x_GLF_color %37
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %38
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %38
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %42 = OpLabel
-         %43 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %43
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %43 = OpFunctionCall %void %main_1
+         %44 = OpLoad %v4float %x_GLF_color
+         %45 = OpCompositeConstruct %main_out %44
+               OpReturnValue %45
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %45 = OpLabel
-         %46 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %46
-         %47 = OpFunctionCall %void %main_1
-         %49 = OpLoad %v4float %x_GLF_color
-         %50 = OpCompositeConstruct %main_out %49
-         %48 = OpFunctionCall %void %tint_symbol_3 %50
+         %47 = OpLabel
+         %49 = OpLoad %v4float %gl_FragCoord_param_1
+         %48 = OpFunctionCall %main_out %main_inner %49
+         %50 = OpCompositeExtract %v4float %48 0
+               OpStore %x_GLF_color_1_1 %50
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.wgsl.expected.spvasm
index 0a0f186..b01bf9e 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.wgsl.expected.spvasm
@@ -5,31 +5,31 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -40,7 +40,7 @@
         %int = OpTypeInt 32 1
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %38 = OpTypeFunction %void %main_out
+         %38 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
          %18 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
@@ -62,20 +62,20 @@
                OpStore %x_GLF_color %37
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %38
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %38
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %42 = OpLabel
-         %43 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %43
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %43 = OpFunctionCall %void %main_1
+         %44 = OpLoad %v4float %x_GLF_color
+         %45 = OpCompositeConstruct %main_out %44
+               OpReturnValue %45
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %45 = OpLabel
-         %46 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %46
-         %47 = OpFunctionCall %void %main_1
-         %49 = OpLoad %v4float %x_GLF_color
-         %50 = OpCompositeConstruct %main_out %49
-         %48 = OpFunctionCall %void %tint_symbol_3 %50
+         %47 = OpLabel
+         %49 = OpLoad %v4float %gl_FragCoord_param_1
+         %48 = OpFunctionCall %main_out %main_inner %49
+         %50 = OpCompositeExtract %v4float %48 0
+               OpStore %x_GLF_color_1_1 %50
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.spvasm.expected.spvasm
index 8cf95c0..67f9420 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %48 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "one"
@@ -16,16 +18,16 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %func_ "func_"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_8 NonWritable
@@ -37,29 +39,27 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
        %buf1 = OpTypeStruct %uint
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
      %uint_1 = OpConstant %uint 1
 %_arr_int_uint_1 = OpTypeArray %int %uint_1
        %buf0 = OpTypeStruct %_arr_int_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
          %21 = OpTypeFunction %float
       %int_1 = OpConstant %int 1
     %float_1 = OpConstant %float 1
@@ -77,7 +77,7 @@
       %int_0 = OpConstant %int 0
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %69 = OpTypeFunction %void %main_out
+         %69 = OpTypeFunction %main_out %v4float
       %func_ = OpFunction %float None %21
          %23 = OpLabel
                OpSelectionMerge %24 None
@@ -91,7 +91,7 @@
                OpFunctionEnd
      %main_1 = OpFunction %void None %30
          %33 = OpLabel
-          %v = OpVariable %_ptr_Function_v4float Function %5
+          %v = OpVariable %_ptr_Function_v4float Function %7
                OpStore %v %36
          %38 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
          %39 = OpLoad %float %38
@@ -131,20 +131,20 @@
          %59 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %69
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %69
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %73 = OpLabel
-         %74 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %74
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %74 = OpFunctionCall %void %main_1
+         %75 = OpLoad %v4float %x_GLF_color
+         %76 = OpCompositeConstruct %main_out %75
+               OpReturnValue %76
                OpFunctionEnd
        %main = OpFunction %void None %30
-         %76 = OpLabel
-         %77 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %77
-         %78 = OpFunctionCall %void %main_1
-         %80 = OpLoad %v4float %x_GLF_color
-         %81 = OpCompositeConstruct %main_out %80
-         %79 = OpFunctionCall %void %tint_symbol_3 %81
+         %78 = OpLabel
+         %80 = OpLoad %v4float %gl_FragCoord_param_1
+         %79 = OpFunctionCall %main_out %main_inner %80
+         %81 = OpCompositeExtract %v4float %79 0
+               OpStore %x_GLF_color_1_1 %81
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.wgsl.expected.spvasm
index 8cf95c0..67f9420 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %48 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "one"
@@ -16,16 +18,16 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %func_ "func_"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_8 NonWritable
@@ -37,29 +39,27 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
        %buf1 = OpTypeStruct %uint
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
      %uint_1 = OpConstant %uint 1
 %_arr_int_uint_1 = OpTypeArray %int %uint_1
        %buf0 = OpTypeStruct %_arr_int_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
          %21 = OpTypeFunction %float
       %int_1 = OpConstant %int 1
     %float_1 = OpConstant %float 1
@@ -77,7 +77,7 @@
       %int_0 = OpConstant %int 0
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %69 = OpTypeFunction %void %main_out
+         %69 = OpTypeFunction %main_out %v4float
       %func_ = OpFunction %float None %21
          %23 = OpLabel
                OpSelectionMerge %24 None
@@ -91,7 +91,7 @@
                OpFunctionEnd
      %main_1 = OpFunction %void None %30
          %33 = OpLabel
-          %v = OpVariable %_ptr_Function_v4float Function %5
+          %v = OpVariable %_ptr_Function_v4float Function %7
                OpStore %v %36
          %38 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
          %39 = OpLoad %float %38
@@ -131,20 +131,20 @@
          %59 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %69
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %69
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %73 = OpLabel
-         %74 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %74
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %74 = OpFunctionCall %void %main_1
+         %75 = OpLoad %v4float %x_GLF_color
+         %76 = OpCompositeConstruct %main_out %75
+               OpReturnValue %76
                OpFunctionEnd
        %main = OpFunction %void None %30
-         %76 = OpLabel
-         %77 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %77
-         %78 = OpFunctionCall %void %main_1
-         %80 = OpLoad %v4float %x_GLF_color
-         %81 = OpCompositeConstruct %main_out %80
-         %79 = OpFunctionCall %void %tint_symbol_3 %81
+         %78 = OpLabel
+         %80 = OpLoad %v4float %gl_FragCoord_param_1
+         %79 = OpFunctionCall %main_out %main_inner %80
+         %81 = OpCompositeExtract %v4float %79 0
+               OpStore %x_GLF_color_1_1 %81
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.spvasm.expected.spvasm
index 0617387..4b6b857 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.spvasm.expected.spvasm
@@ -1,37 +1,38 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 67
+; Bound: 66
 ; Schema: 0
                OpCapability Shader
          %25 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -39,8 +40,6 @@
        %buf0 = OpTypeStruct %_arr_float_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -55,7 +54,7 @@
        %bool = OpTypeBool
       %int_0 = OpConstant %int 0
    %main_out = OpTypeStruct %v4float
-         %55 = OpTypeFunction %void %main_out
+         %55 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %20
@@ -91,18 +90,17 @@
          %43 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %55
-%tint_symbol = OpFunctionParameter %main_out
-         %59 = OpLabel
-         %60 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %60
-               OpReturn
+ %main_inner = OpFunction %main_out None %55
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %main_1
+         %60 = OpLoad %v4float %x_GLF_color
+         %61 = OpCompositeConstruct %main_out %60
+               OpReturnValue %61
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %62 = OpLabel
-         %63 = OpFunctionCall %void %main_1
-         %65 = OpLoad %v4float %x_GLF_color
-         %66 = OpCompositeConstruct %main_out %65
-         %64 = OpFunctionCall %void %tint_symbol_2 %66
+         %63 = OpLabel
+         %64 = OpFunctionCall %main_out %main_inner
+         %65 = OpCompositeExtract %v4float %64 0
+               OpStore %x_GLF_color_1_1 %65
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.wgsl.expected.spvasm
index 6114885..205d90a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.wgsl.expected.spvasm
@@ -1,36 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 62
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -38,8 +39,6 @@
        %buf0 = OpTypeStruct %_arr_float_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -54,7 +53,7 @@
        %bool = OpTypeBool
       %int_0 = OpConstant %int 0
    %main_out = OpTypeStruct %v4float
-         %50 = OpTypeFunction %void %main_out
+         %50 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %20
@@ -86,18 +85,17 @@
          %38 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %50
-%tint_symbol = OpFunctionParameter %main_out
-         %54 = OpLabel
-         %55 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %55
-               OpReturn
+ %main_inner = OpFunction %main_out None %50
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %main_1
+         %55 = OpLoad %v4float %x_GLF_color
+         %56 = OpCompositeConstruct %main_out %55
+               OpReturnValue %56
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %main_1
-         %60 = OpLoad %v4float %x_GLF_color
-         %61 = OpCompositeConstruct %main_out %60
-         %59 = OpFunctionCall %void %tint_symbol_2 %61
+         %58 = OpLabel
+         %59 = OpFunctionCall %main_out %main_inner
+         %60 = OpCompositeExtract %v4float %59 0
+               OpStore %x_GLF_color_1_1 %60
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.spvasm.expected.spvasm
index 7ecd623..250ca06 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf2 "buf2"
                OpMemberName %buf2 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
@@ -18,16 +20,16 @@
                OpMemberName %buf1 0 "x_GLF_uniform_uint_values"
                OpName %x_12 "x_12"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf2 Block
                OpMemberDecorate %buf2 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -46,9 +48,14 @@
                OpDecorate %x_12 NonWritable
                OpDecorate %x_12 DescriptorSet 0
                OpDecorate %x_12 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -56,11 +63,8 @@
        %buf2 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2
         %x_8 = OpVariable %_ptr_Uniform_buf2 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %12
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
@@ -70,11 +74,7 @@
        %buf1 = OpTypeStruct %_arr_uint_uint_1
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_12 = OpVariable %_ptr_Uniform_buf1 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %27 = OpTypeFunction %void
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -90,7 +90,7 @@
        %bool = OpTypeBool
 %_ptr_Uniform_uint = OpTypePointer Uniform %uint
    %main_out = OpTypeStruct %v4float
-         %83 = OpTypeFunction %void %main_out
+         %83 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %27
          %30 = OpLabel
           %a = OpVariable %_ptr_Function_uint Function %33
@@ -147,20 +147,20 @@
          %63 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %83
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %83
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %87 = OpLabel
-         %88 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %88
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %88 = OpFunctionCall %void %main_1
+         %89 = OpLoad %v4float %x_GLF_color
+         %90 = OpCompositeConstruct %main_out %89
+               OpReturnValue %90
                OpFunctionEnd
        %main = OpFunction %void None %27
-         %90 = OpLabel
-         %91 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %91
-         %92 = OpFunctionCall %void %main_1
-         %94 = OpLoad %v4float %x_GLF_color
-         %95 = OpCompositeConstruct %main_out %94
-         %93 = OpFunctionCall %void %tint_symbol_3 %95
+         %92 = OpLabel
+         %94 = OpLoad %v4float %gl_FragCoord_param_1
+         %93 = OpFunctionCall %main_out %main_inner %94
+         %95 = OpCompositeExtract %v4float %93 0
+               OpStore %x_GLF_color_1_1 %95
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.wgsl.expected.spvasm
index 7ecd623..250ca06 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf2 "buf2"
                OpMemberName %buf2 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
@@ -18,16 +20,16 @@
                OpMemberName %buf1 0 "x_GLF_uniform_uint_values"
                OpName %x_12 "x_12"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf2 Block
                OpMemberDecorate %buf2 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -46,9 +48,14 @@
                OpDecorate %x_12 NonWritable
                OpDecorate %x_12 DescriptorSet 0
                OpDecorate %x_12 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -56,11 +63,8 @@
        %buf2 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2
         %x_8 = OpVariable %_ptr_Uniform_buf2 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %12
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
@@ -70,11 +74,7 @@
        %buf1 = OpTypeStruct %_arr_uint_uint_1
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_12 = OpVariable %_ptr_Uniform_buf1 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %27 = OpTypeFunction %void
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -90,7 +90,7 @@
        %bool = OpTypeBool
 %_ptr_Uniform_uint = OpTypePointer Uniform %uint
    %main_out = OpTypeStruct %v4float
-         %83 = OpTypeFunction %void %main_out
+         %83 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %27
          %30 = OpLabel
           %a = OpVariable %_ptr_Function_uint Function %33
@@ -147,20 +147,20 @@
          %63 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %83
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %83
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %87 = OpLabel
-         %88 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %88
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %88 = OpFunctionCall %void %main_1
+         %89 = OpLoad %v4float %x_GLF_color
+         %90 = OpCompositeConstruct %main_out %89
+               OpReturnValue %90
                OpFunctionEnd
        %main = OpFunction %void None %27
-         %90 = OpLabel
-         %91 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %91
-         %92 = OpFunctionCall %void %main_1
-         %94 = OpLoad %v4float %x_GLF_color
-         %95 = OpCompositeConstruct %main_out %94
-         %93 = OpFunctionCall %void %tint_symbol_3 %95
+         %92 = OpLabel
+         %94 = OpLoad %v4float %gl_FragCoord_param_1
+         %93 = OpFunctionCall %main_out %main_inner %94
+         %95 = OpCompositeExtract %v4float %93 0
+               OpStore %x_GLF_color_1_1 %95
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.spvasm.expected.spvasm
index 5b0ff4d6..5959b0f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.spvasm.expected.spvasm
@@ -1,15 +1,15 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 633
+; Bound: 632
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_global_loop_count "x_GLF_global_loop_count"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m23 "m23"
                OpName %m24 "m24"
@@ -61,22 +61,21 @@
                OpName %r "r"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %4
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+        %int = OpTypeInt 32 1
+%_ptr_Private_int = OpTypePointer Private %int
+          %9 = OpConstantNull %int
+%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %9
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -129,7 +128,7 @@
     %float_8 = OpConstant %float 8
         %620 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %621 = OpTypeFunction %void %main_out
+        %621 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
         %m23 = OpVariable %_ptr_Function_mat2v3float Function %20
@@ -140,46 +139,46 @@
         %m42 = OpVariable %_ptr_Function_mat4v2float Function %41
         %m43 = OpVariable %_ptr_Function_mat4v3float Function %45
         %m44 = OpVariable %_ptr_Function_mat4v4float Function %49
-          %i = OpVariable %_ptr_Function_int Function %4
-        %i_1 = OpVariable %_ptr_Function_int Function %4
-        %i_2 = OpVariable %_ptr_Function_int Function %4
-        %i_3 = OpVariable %_ptr_Function_int Function %4
-        %i_4 = OpVariable %_ptr_Function_int Function %4
-        %i_5 = OpVariable %_ptr_Function_int Function %4
-        %i_6 = OpVariable %_ptr_Function_int Function %4
-        %i_7 = OpVariable %_ptr_Function_int Function %4
-        %i_8 = OpVariable %_ptr_Function_int Function %4
-        %i_9 = OpVariable %_ptr_Function_int Function %4
-       %i_10 = OpVariable %_ptr_Function_int Function %4
-       %i_11 = OpVariable %_ptr_Function_int Function %4
-       %i_12 = OpVariable %_ptr_Function_int Function %4
-       %i_13 = OpVariable %_ptr_Function_int Function %4
-       %i_14 = OpVariable %_ptr_Function_int Function %4
-       %i_15 = OpVariable %_ptr_Function_int Function %4
-       %i_16 = OpVariable %_ptr_Function_int Function %4
-       %i_17 = OpVariable %_ptr_Function_int Function %4
-       %i_18 = OpVariable %_ptr_Function_int Function %4
-       %i_19 = OpVariable %_ptr_Function_int Function %4
-       %i_20 = OpVariable %_ptr_Function_int Function %4
-       %i_21 = OpVariable %_ptr_Function_int Function %4
-       %i_22 = OpVariable %_ptr_Function_int Function %4
-       %i_23 = OpVariable %_ptr_Function_int Function %4
-       %i_24 = OpVariable %_ptr_Function_int Function %4
-       %i_25 = OpVariable %_ptr_Function_int Function %4
-       %i_26 = OpVariable %_ptr_Function_int Function %4
-       %i_27 = OpVariable %_ptr_Function_int Function %4
-       %i_28 = OpVariable %_ptr_Function_int Function %4
-       %i_29 = OpVariable %_ptr_Function_int Function %4
-       %i_30 = OpVariable %_ptr_Function_int Function %4
-       %i_31 = OpVariable %_ptr_Function_int Function %4
-       %i_32 = OpVariable %_ptr_Function_int Function %4
-       %i_33 = OpVariable %_ptr_Function_int Function %4
-       %i_34 = OpVariable %_ptr_Function_int Function %4
-       %i_35 = OpVariable %_ptr_Function_int Function %4
-       %i_36 = OpVariable %_ptr_Function_int Function %4
-       %i_37 = OpVariable %_ptr_Function_int Function %4
+          %i = OpVariable %_ptr_Function_int Function %9
+        %i_1 = OpVariable %_ptr_Function_int Function %9
+        %i_2 = OpVariable %_ptr_Function_int Function %9
+        %i_3 = OpVariable %_ptr_Function_int Function %9
+        %i_4 = OpVariable %_ptr_Function_int Function %9
+        %i_5 = OpVariable %_ptr_Function_int Function %9
+        %i_6 = OpVariable %_ptr_Function_int Function %9
+        %i_7 = OpVariable %_ptr_Function_int Function %9
+        %i_8 = OpVariable %_ptr_Function_int Function %9
+        %i_9 = OpVariable %_ptr_Function_int Function %9
+       %i_10 = OpVariable %_ptr_Function_int Function %9
+       %i_11 = OpVariable %_ptr_Function_int Function %9
+       %i_12 = OpVariable %_ptr_Function_int Function %9
+       %i_13 = OpVariable %_ptr_Function_int Function %9
+       %i_14 = OpVariable %_ptr_Function_int Function %9
+       %i_15 = OpVariable %_ptr_Function_int Function %9
+       %i_16 = OpVariable %_ptr_Function_int Function %9
+       %i_17 = OpVariable %_ptr_Function_int Function %9
+       %i_18 = OpVariable %_ptr_Function_int Function %9
+       %i_19 = OpVariable %_ptr_Function_int Function %9
+       %i_20 = OpVariable %_ptr_Function_int Function %9
+       %i_21 = OpVariable %_ptr_Function_int Function %9
+       %i_22 = OpVariable %_ptr_Function_int Function %9
+       %i_23 = OpVariable %_ptr_Function_int Function %9
+       %i_24 = OpVariable %_ptr_Function_int Function %9
+       %i_25 = OpVariable %_ptr_Function_int Function %9
+       %i_26 = OpVariable %_ptr_Function_int Function %9
+       %i_27 = OpVariable %_ptr_Function_int Function %9
+       %i_28 = OpVariable %_ptr_Function_int Function %9
+       %i_29 = OpVariable %_ptr_Function_int Function %9
+       %i_30 = OpVariable %_ptr_Function_int Function %9
+       %i_31 = OpVariable %_ptr_Function_int Function %9
+       %i_32 = OpVariable %_ptr_Function_int Function %9
+       %i_33 = OpVariable %_ptr_Function_int Function %9
+       %i_34 = OpVariable %_ptr_Function_int Function %9
+       %i_35 = OpVariable %_ptr_Function_int Function %9
+       %i_36 = OpVariable %_ptr_Function_int Function %9
+       %i_37 = OpVariable %_ptr_Function_int Function %9
         %sum = OpVariable %_ptr_Function_float Function %91
-          %r = OpVariable %_ptr_Function_int Function %4
+          %r = OpVariable %_ptr_Function_int Function %9
                OpStore %x_GLF_global_loop_count %int_0
                OpStore %m23 %96
                OpStore %m24 %98
@@ -1158,18 +1157,17 @@
         %617 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %621
-%tint_symbol = OpFunctionParameter %main_out
-        %625 = OpLabel
-        %626 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %626
-               OpReturn
+ %main_inner = OpFunction %main_out None %621
+        %624 = OpLabel
+        %625 = OpFunctionCall %void %main_1
+        %626 = OpLoad %v4float %x_GLF_color
+        %627 = OpCompositeConstruct %main_out %626
+               OpReturnValue %627
                OpFunctionEnd
        %main = OpFunction %void None %12
-        %628 = OpLabel
-        %629 = OpFunctionCall %void %main_1
-        %631 = OpLoad %v4float %x_GLF_color
-        %632 = OpCompositeConstruct %main_out %631
-        %630 = OpFunctionCall %void %tint_symbol_2 %632
+        %629 = OpLabel
+        %630 = OpFunctionCall %main_out %main_inner
+        %631 = OpCompositeExtract %v4float %630 0
+               OpStore %x_GLF_color_1_1 %631
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.wgsl.expected.spvasm
index 5b0ff4d6..5959b0f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.wgsl.expected.spvasm
@@ -1,15 +1,15 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 633
+; Bound: 632
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_global_loop_count "x_GLF_global_loop_count"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m23 "m23"
                OpName %m24 "m24"
@@ -61,22 +61,21 @@
                OpName %r "r"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %4
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+        %int = OpTypeInt 32 1
+%_ptr_Private_int = OpTypePointer Private %int
+          %9 = OpConstantNull %int
+%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %9
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -129,7 +128,7 @@
     %float_8 = OpConstant %float 8
         %620 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %621 = OpTypeFunction %void %main_out
+        %621 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
         %m23 = OpVariable %_ptr_Function_mat2v3float Function %20
@@ -140,46 +139,46 @@
         %m42 = OpVariable %_ptr_Function_mat4v2float Function %41
         %m43 = OpVariable %_ptr_Function_mat4v3float Function %45
         %m44 = OpVariable %_ptr_Function_mat4v4float Function %49
-          %i = OpVariable %_ptr_Function_int Function %4
-        %i_1 = OpVariable %_ptr_Function_int Function %4
-        %i_2 = OpVariable %_ptr_Function_int Function %4
-        %i_3 = OpVariable %_ptr_Function_int Function %4
-        %i_4 = OpVariable %_ptr_Function_int Function %4
-        %i_5 = OpVariable %_ptr_Function_int Function %4
-        %i_6 = OpVariable %_ptr_Function_int Function %4
-        %i_7 = OpVariable %_ptr_Function_int Function %4
-        %i_8 = OpVariable %_ptr_Function_int Function %4
-        %i_9 = OpVariable %_ptr_Function_int Function %4
-       %i_10 = OpVariable %_ptr_Function_int Function %4
-       %i_11 = OpVariable %_ptr_Function_int Function %4
-       %i_12 = OpVariable %_ptr_Function_int Function %4
-       %i_13 = OpVariable %_ptr_Function_int Function %4
-       %i_14 = OpVariable %_ptr_Function_int Function %4
-       %i_15 = OpVariable %_ptr_Function_int Function %4
-       %i_16 = OpVariable %_ptr_Function_int Function %4
-       %i_17 = OpVariable %_ptr_Function_int Function %4
-       %i_18 = OpVariable %_ptr_Function_int Function %4
-       %i_19 = OpVariable %_ptr_Function_int Function %4
-       %i_20 = OpVariable %_ptr_Function_int Function %4
-       %i_21 = OpVariable %_ptr_Function_int Function %4
-       %i_22 = OpVariable %_ptr_Function_int Function %4
-       %i_23 = OpVariable %_ptr_Function_int Function %4
-       %i_24 = OpVariable %_ptr_Function_int Function %4
-       %i_25 = OpVariable %_ptr_Function_int Function %4
-       %i_26 = OpVariable %_ptr_Function_int Function %4
-       %i_27 = OpVariable %_ptr_Function_int Function %4
-       %i_28 = OpVariable %_ptr_Function_int Function %4
-       %i_29 = OpVariable %_ptr_Function_int Function %4
-       %i_30 = OpVariable %_ptr_Function_int Function %4
-       %i_31 = OpVariable %_ptr_Function_int Function %4
-       %i_32 = OpVariable %_ptr_Function_int Function %4
-       %i_33 = OpVariable %_ptr_Function_int Function %4
-       %i_34 = OpVariable %_ptr_Function_int Function %4
-       %i_35 = OpVariable %_ptr_Function_int Function %4
-       %i_36 = OpVariable %_ptr_Function_int Function %4
-       %i_37 = OpVariable %_ptr_Function_int Function %4
+          %i = OpVariable %_ptr_Function_int Function %9
+        %i_1 = OpVariable %_ptr_Function_int Function %9
+        %i_2 = OpVariable %_ptr_Function_int Function %9
+        %i_3 = OpVariable %_ptr_Function_int Function %9
+        %i_4 = OpVariable %_ptr_Function_int Function %9
+        %i_5 = OpVariable %_ptr_Function_int Function %9
+        %i_6 = OpVariable %_ptr_Function_int Function %9
+        %i_7 = OpVariable %_ptr_Function_int Function %9
+        %i_8 = OpVariable %_ptr_Function_int Function %9
+        %i_9 = OpVariable %_ptr_Function_int Function %9
+       %i_10 = OpVariable %_ptr_Function_int Function %9
+       %i_11 = OpVariable %_ptr_Function_int Function %9
+       %i_12 = OpVariable %_ptr_Function_int Function %9
+       %i_13 = OpVariable %_ptr_Function_int Function %9
+       %i_14 = OpVariable %_ptr_Function_int Function %9
+       %i_15 = OpVariable %_ptr_Function_int Function %9
+       %i_16 = OpVariable %_ptr_Function_int Function %9
+       %i_17 = OpVariable %_ptr_Function_int Function %9
+       %i_18 = OpVariable %_ptr_Function_int Function %9
+       %i_19 = OpVariable %_ptr_Function_int Function %9
+       %i_20 = OpVariable %_ptr_Function_int Function %9
+       %i_21 = OpVariable %_ptr_Function_int Function %9
+       %i_22 = OpVariable %_ptr_Function_int Function %9
+       %i_23 = OpVariable %_ptr_Function_int Function %9
+       %i_24 = OpVariable %_ptr_Function_int Function %9
+       %i_25 = OpVariable %_ptr_Function_int Function %9
+       %i_26 = OpVariable %_ptr_Function_int Function %9
+       %i_27 = OpVariable %_ptr_Function_int Function %9
+       %i_28 = OpVariable %_ptr_Function_int Function %9
+       %i_29 = OpVariable %_ptr_Function_int Function %9
+       %i_30 = OpVariable %_ptr_Function_int Function %9
+       %i_31 = OpVariable %_ptr_Function_int Function %9
+       %i_32 = OpVariable %_ptr_Function_int Function %9
+       %i_33 = OpVariable %_ptr_Function_int Function %9
+       %i_34 = OpVariable %_ptr_Function_int Function %9
+       %i_35 = OpVariable %_ptr_Function_int Function %9
+       %i_36 = OpVariable %_ptr_Function_int Function %9
+       %i_37 = OpVariable %_ptr_Function_int Function %9
         %sum = OpVariable %_ptr_Function_float Function %91
-          %r = OpVariable %_ptr_Function_int Function %4
+          %r = OpVariable %_ptr_Function_int Function %9
                OpStore %x_GLF_global_loop_count %int_0
                OpStore %m23 %96
                OpStore %m24 %98
@@ -1158,18 +1157,17 @@
         %617 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %621
-%tint_symbol = OpFunctionParameter %main_out
-        %625 = OpLabel
-        %626 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %626
-               OpReturn
+ %main_inner = OpFunction %main_out None %621
+        %624 = OpLabel
+        %625 = OpFunctionCall %void %main_1
+        %626 = OpLoad %v4float %x_GLF_color
+        %627 = OpCompositeConstruct %main_out %626
+               OpReturnValue %627
                OpFunctionEnd
        %main = OpFunction %void None %12
-        %628 = OpLabel
-        %629 = OpFunctionCall %void %main_1
-        %631 = OpLoad %v4float %x_GLF_color
-        %632 = OpCompositeConstruct %main_out %631
-        %630 = OpFunctionCall %void %tint_symbol_2 %632
+        %629 = OpLabel
+        %630 = OpFunctionCall %main_out %main_inner
+        %631 = OpCompositeExtract %v4float %630 0
+               OpStore %x_GLF_color_1_1 %631
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.spvasm
index c0ceb3e..c4dc3e3 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %92 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %m "m"
                OpName %buf2 "buf2"
                OpMemberName %buf2 0 "one"
@@ -20,8 +22,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_16 "x_16"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %func0_i1_ "func0_i1_"
                OpName %x "x"
                OpName %i "i"
@@ -34,9 +34,11 @@
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf2 Block
                OpMemberDecorate %buf2 0 Offset 0
                OpDecorate %x_10 NonWritable
@@ -54,15 +56,19 @@
                OpDecorate %x_16 NonWritable
                OpDecorate %x_16 DescriptorSet 0
                OpDecorate %x_16 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
 %mat4v2float = OpTypeMatrix %v2float 4
 %_ptr_Private_mat4v2float = OpTypePointer Private %mat4v2float
-          %6 = OpConstantNull %mat4v2float
-          %m = OpVariable %_ptr_Private_mat4v2float Private %6
+         %12 = OpConstantNull %mat4v2float
+          %m = OpVariable %_ptr_Private_mat4v2float Private %12
        %buf2 = OpTypeStruct %float
 %_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2
        %x_10 = OpVariable %_ptr_Uniform_buf2 Uniform
@@ -72,21 +78,15 @@
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_12 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %19 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %19
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
      %uint_4 = OpConstant %uint 4
 %_arr_int_uint_4 = OpTypeArray %int %uint_4
        %buf1 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_16 = OpVariable %_ptr_Uniform_buf1 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %19
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %19
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %31 = OpTypeFunction %void %_ptr_Function_int
@@ -110,7 +110,7 @@
      %uint_2 = OpConstant %uint 2
      %uint_3 = OpConstant %uint 3
    %main_out = OpTypeStruct %v4float
-        %195 = OpTypeFunction %void %main_out
+        %195 = OpTypeFunction %main_out %v4float
   %func0_i1_ = OpFunction %void None %31
           %x = OpFunctionParameter %_ptr_Function_int
          %36 = OpLabel
@@ -295,20 +295,20 @@
         %175 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %195
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %195
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %199 = OpLabel
-        %200 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %200
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %200 = OpFunctionCall %void %main_1
+        %201 = OpLoad %v4float %x_GLF_color
+        %202 = OpCompositeConstruct %main_out %201
+               OpReturnValue %202
                OpFunctionEnd
        %main = OpFunction %void None %104
-        %202 = OpLabel
-        %203 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %203
-        %204 = OpFunctionCall %void %main_1
-        %206 = OpLoad %v4float %x_GLF_color
-        %207 = OpCompositeConstruct %main_out %206
-        %205 = OpFunctionCall %void %tint_symbol_3 %207
+        %204 = OpLabel
+        %206 = OpLoad %v4float %gl_FragCoord_param_1
+        %205 = OpFunctionCall %main_out %main_inner %206
+        %207 = OpCompositeExtract %v4float %205 0
+               OpStore %x_GLF_color_1_1 %207
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.wgsl.expected.spvasm
index b4e8fcf..238d971 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %92 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %m "m"
                OpName %buf2 "buf2"
                OpMemberName %buf2 0 "one"
@@ -20,8 +22,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_16 "x_16"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %func0_i1_ "func0_i1_"
                OpName %x "x"
                OpName %i "i"
@@ -34,9 +34,11 @@
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf2 Block
                OpMemberDecorate %buf2 0 Offset 0
                OpDecorate %x_10 NonWritable
@@ -54,15 +56,19 @@
                OpDecorate %x_16 NonWritable
                OpDecorate %x_16 DescriptorSet 0
                OpDecorate %x_16 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
 %mat4v2float = OpTypeMatrix %v2float 4
 %_ptr_Private_mat4v2float = OpTypePointer Private %mat4v2float
-          %6 = OpConstantNull %mat4v2float
-          %m = OpVariable %_ptr_Private_mat4v2float Private %6
+         %12 = OpConstantNull %mat4v2float
+          %m = OpVariable %_ptr_Private_mat4v2float Private %12
        %buf2 = OpTypeStruct %float
 %_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2
        %x_10 = OpVariable %_ptr_Uniform_buf2 Uniform
@@ -72,21 +78,15 @@
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_12 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %19 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %19
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
      %uint_4 = OpConstant %uint 4
 %_arr_int_uint_4 = OpTypeArray %int %uint_4
        %buf1 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_16 = OpVariable %_ptr_Uniform_buf1 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %19
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %19
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %31 = OpTypeFunction %void %_ptr_Function_int
@@ -110,7 +110,7 @@
      %uint_2 = OpConstant %uint 2
      %uint_3 = OpConstant %uint 3
    %main_out = OpTypeStruct %v4float
-        %201 = OpTypeFunction %void %main_out
+        %201 = OpTypeFunction %main_out %v4float
   %func0_i1_ = OpFunction %void None %31
           %x = OpFunctionParameter %_ptr_Function_int
          %36 = OpLabel
@@ -310,20 +310,20 @@
         %181 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %201
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %201
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %205 = OpLabel
-        %206 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %206
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %206 = OpFunctionCall %void %main_1
+        %207 = OpLoad %v4float %x_GLF_color
+        %208 = OpCompositeConstruct %main_out %207
+               OpReturnValue %208
                OpFunctionEnd
        %main = OpFunction %void None %104
-        %208 = OpLabel
-        %209 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %209
-        %210 = OpFunctionCall %void %main_1
-        %212 = OpLoad %v4float %x_GLF_color
-        %213 = OpCompositeConstruct %main_out %212
-        %211 = OpFunctionCall %void %tint_symbol_3 %213
+        %210 = OpLabel
+        %212 = OpLoad %v4float %gl_FragCoord_param_1
+        %211 = OpFunctionCall %main_out %main_inner %212
+        %213 = OpCompositeExtract %v4float %211 0
+               OpStore %x_GLF_color_1_1 %213
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.spvasm.expected.spvasm
index 59b8fdd..5c3b9c6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 145
+; Bound: 144
 ; Schema: 0
                OpCapability Shader
          %73 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v0 "v0"
                OpName %v1 "v1"
@@ -23,9 +23,9 @@
                OpName %c "c"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -38,9 +38,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -53,12 +56,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -77,11 +76,11 @@
     %float_1 = OpConstant %float 1
         %102 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-        %133 = OpTypeFunction %void %main_out
+        %133 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
-         %v0 = OpVariable %_ptr_Function_v4float Function %17
-         %v1 = OpVariable %_ptr_Function_v4float Function %17
+         %v0 = OpVariable %_ptr_Function_v4float Function %5
+         %v1 = OpVariable %_ptr_Function_v4float Function %5
           %a = OpVariable %_ptr_Function_int Function %29
           %c = OpVariable %_ptr_Function_int Function %29
          %34 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_1
@@ -210,18 +209,17 @@
         %113 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %133
-%tint_symbol = OpFunctionParameter %main_out
-        %137 = OpLabel
-        %138 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %138
-               OpReturn
+ %main_inner = OpFunction %main_out None %133
+        %136 = OpLabel
+        %137 = OpFunctionCall %void %main_1
+        %138 = OpLoad %v4float %x_GLF_color
+        %139 = OpCompositeConstruct %main_out %138
+               OpReturnValue %139
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %140 = OpLabel
-        %141 = OpFunctionCall %void %main_1
-        %143 = OpLoad %v4float %x_GLF_color
-        %144 = OpCompositeConstruct %main_out %143
-        %142 = OpFunctionCall %void %tint_symbol_2 %144
+        %141 = OpLabel
+        %142 = OpFunctionCall %main_out %main_inner
+        %143 = OpCompositeExtract %v4float %142 0
+               OpStore %x_GLF_color_1_1 %143
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.wgsl.expected.spvasm
index 59b8fdd..5c3b9c6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 145
+; Bound: 144
 ; Schema: 0
                OpCapability Shader
          %73 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v0 "v0"
                OpName %v1 "v1"
@@ -23,9 +23,9 @@
                OpName %c "c"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -38,9 +38,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -53,12 +56,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -77,11 +76,11 @@
     %float_1 = OpConstant %float 1
         %102 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-        %133 = OpTypeFunction %void %main_out
+        %133 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
-         %v0 = OpVariable %_ptr_Function_v4float Function %17
-         %v1 = OpVariable %_ptr_Function_v4float Function %17
+         %v0 = OpVariable %_ptr_Function_v4float Function %5
+         %v1 = OpVariable %_ptr_Function_v4float Function %5
           %a = OpVariable %_ptr_Function_int Function %29
           %c = OpVariable %_ptr_Function_int Function %29
          %34 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %int_1
@@ -210,18 +209,17 @@
         %113 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %133
-%tint_symbol = OpFunctionParameter %main_out
-        %137 = OpLabel
-        %138 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %138
-               OpReturn
+ %main_inner = OpFunction %main_out None %133
+        %136 = OpLabel
+        %137 = OpFunctionCall %void %main_1
+        %138 = OpLoad %v4float %x_GLF_color
+        %139 = OpCompositeConstruct %main_out %138
+               OpReturnValue %139
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %140 = OpLabel
-        %141 = OpFunctionCall %void %main_1
-        %143 = OpLoad %v4float %x_GLF_color
-        %144 = OpCompositeConstruct %main_out %143
-        %142 = OpFunctionCall %void %tint_symbol_2 %144
+        %141 = OpLabel
+        %142 = OpFunctionCall %main_out %main_inner
+        %143 = OpCompositeExtract %v4float %142 0
+               OpStore %x_GLF_color_1_1 %143
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.spvasm.expected.spvasm
index c8c4a1e..90751e8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 355
+; Bound: 354
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_global_loop_count "x_GLF_global_loop_count"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
@@ -15,7 +16,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %i "i"
@@ -37,9 +37,9 @@
                OpName %r "r"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
@@ -52,13 +52,16 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
 %_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %4
-      %float = OpTypeFloat 32
+          %9 = OpConstantNull %int
+%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %9
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
@@ -70,12 +73,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %20 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %20
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %20
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -91,27 +90,27 @@
       %int_3 = OpConstant %int 3
     %int_100 = OpConstant %int 100
    %main_out = OpTypeStruct %v4float
-        %343 = OpTypeFunction %void %main_out
+        %343 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %29
-          %i = OpVariable %_ptr_Function_int Function %4
-        %i_1 = OpVariable %_ptr_Function_int Function %4
-        %i_2 = OpVariable %_ptr_Function_int Function %4
-        %i_3 = OpVariable %_ptr_Function_int Function %4
-        %i_4 = OpVariable %_ptr_Function_int Function %4
-        %i_5 = OpVariable %_ptr_Function_int Function %4
-        %i_6 = OpVariable %_ptr_Function_int Function %4
-        %i_7 = OpVariable %_ptr_Function_int Function %4
-        %i_8 = OpVariable %_ptr_Function_int Function %4
-        %i_9 = OpVariable %_ptr_Function_int Function %4
-       %i_10 = OpVariable %_ptr_Function_int Function %4
-       %i_11 = OpVariable %_ptr_Function_int Function %4
-       %i_12 = OpVariable %_ptr_Function_int Function %4
-       %i_13 = OpVariable %_ptr_Function_int Function %4
-       %i_14 = OpVariable %_ptr_Function_int Function %4
+          %i = OpVariable %_ptr_Function_int Function %9
+        %i_1 = OpVariable %_ptr_Function_int Function %9
+        %i_2 = OpVariable %_ptr_Function_int Function %9
+        %i_3 = OpVariable %_ptr_Function_int Function %9
+        %i_4 = OpVariable %_ptr_Function_int Function %9
+        %i_5 = OpVariable %_ptr_Function_int Function %9
+        %i_6 = OpVariable %_ptr_Function_int Function %9
+        %i_7 = OpVariable %_ptr_Function_int Function %9
+        %i_8 = OpVariable %_ptr_Function_int Function %9
+        %i_9 = OpVariable %_ptr_Function_int Function %9
+       %i_10 = OpVariable %_ptr_Function_int Function %9
+       %i_11 = OpVariable %_ptr_Function_int Function %9
+       %i_12 = OpVariable %_ptr_Function_int Function %9
+       %i_13 = OpVariable %_ptr_Function_int Function %9
+       %i_14 = OpVariable %_ptr_Function_int Function %9
         %sum = OpVariable %_ptr_Function_float Function %29
-          %r = OpVariable %_ptr_Function_int Function %4
+          %r = OpVariable %_ptr_Function_int Function %9
                OpStore %x_GLF_global_loop_count %int_0
          %52 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 %int_1
          %53 = OpLoad %float %52
@@ -594,18 +593,17 @@
         %323 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %343
-%tint_symbol = OpFunctionParameter %main_out
-        %347 = OpLabel
-        %348 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %348
-               OpReturn
+ %main_inner = OpFunction %main_out None %343
+        %346 = OpLabel
+        %347 = OpFunctionCall %void %main_1
+        %348 = OpLoad %v4float %x_GLF_color
+        %349 = OpCompositeConstruct %main_out %348
+               OpReturnValue %349
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %350 = OpLabel
-        %351 = OpFunctionCall %void %main_1
-        %353 = OpLoad %v4float %x_GLF_color
-        %354 = OpCompositeConstruct %main_out %353
-        %352 = OpFunctionCall %void %tint_symbol_2 %354
+        %351 = OpLabel
+        %352 = OpFunctionCall %main_out %main_inner
+        %353 = OpCompositeExtract %v4float %352 0
+               OpStore %x_GLF_color_1_1 %353
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.wgsl.expected.spvasm
index c8c4a1e..90751e8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 355
+; Bound: 354
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_global_loop_count "x_GLF_global_loop_count"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
@@ -15,7 +16,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %i "i"
@@ -37,9 +37,9 @@
                OpName %r "r"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
@@ -52,13 +52,16 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
 %_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %4
-      %float = OpTypeFloat 32
+          %9 = OpConstantNull %int
+%x_GLF_global_loop_count = OpVariable %_ptr_Private_int Private %9
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
@@ -70,12 +73,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %20 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %20
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %20
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -91,27 +90,27 @@
       %int_3 = OpConstant %int 3
     %int_100 = OpConstant %int 100
    %main_out = OpTypeStruct %v4float
-        %343 = OpTypeFunction %void %main_out
+        %343 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %29
-          %i = OpVariable %_ptr_Function_int Function %4
-        %i_1 = OpVariable %_ptr_Function_int Function %4
-        %i_2 = OpVariable %_ptr_Function_int Function %4
-        %i_3 = OpVariable %_ptr_Function_int Function %4
-        %i_4 = OpVariable %_ptr_Function_int Function %4
-        %i_5 = OpVariable %_ptr_Function_int Function %4
-        %i_6 = OpVariable %_ptr_Function_int Function %4
-        %i_7 = OpVariable %_ptr_Function_int Function %4
-        %i_8 = OpVariable %_ptr_Function_int Function %4
-        %i_9 = OpVariable %_ptr_Function_int Function %4
-       %i_10 = OpVariable %_ptr_Function_int Function %4
-       %i_11 = OpVariable %_ptr_Function_int Function %4
-       %i_12 = OpVariable %_ptr_Function_int Function %4
-       %i_13 = OpVariable %_ptr_Function_int Function %4
-       %i_14 = OpVariable %_ptr_Function_int Function %4
+          %i = OpVariable %_ptr_Function_int Function %9
+        %i_1 = OpVariable %_ptr_Function_int Function %9
+        %i_2 = OpVariable %_ptr_Function_int Function %9
+        %i_3 = OpVariable %_ptr_Function_int Function %9
+        %i_4 = OpVariable %_ptr_Function_int Function %9
+        %i_5 = OpVariable %_ptr_Function_int Function %9
+        %i_6 = OpVariable %_ptr_Function_int Function %9
+        %i_7 = OpVariable %_ptr_Function_int Function %9
+        %i_8 = OpVariable %_ptr_Function_int Function %9
+        %i_9 = OpVariable %_ptr_Function_int Function %9
+       %i_10 = OpVariable %_ptr_Function_int Function %9
+       %i_11 = OpVariable %_ptr_Function_int Function %9
+       %i_12 = OpVariable %_ptr_Function_int Function %9
+       %i_13 = OpVariable %_ptr_Function_int Function %9
+       %i_14 = OpVariable %_ptr_Function_int Function %9
         %sum = OpVariable %_ptr_Function_float Function %29
-          %r = OpVariable %_ptr_Function_int Function %4
+          %r = OpVariable %_ptr_Function_int Function %9
                OpStore %x_GLF_global_loop_count %int_0
          %52 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 %int_1
          %53 = OpLoad %float %52
@@ -594,18 +593,17 @@
         %323 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %343
-%tint_symbol = OpFunctionParameter %main_out
-        %347 = OpLabel
-        %348 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %348
-               OpReturn
+ %main_inner = OpFunction %main_out None %343
+        %346 = OpLabel
+        %347 = OpFunctionCall %void %main_1
+        %348 = OpLoad %v4float %x_GLF_color
+        %349 = OpCompositeConstruct %main_out %348
+               OpReturnValue %349
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %350 = OpLabel
-        %351 = OpFunctionCall %void %main_1
-        %353 = OpLoad %v4float %x_GLF_color
-        %354 = OpCompositeConstruct %main_out %353
-        %352 = OpFunctionCall %void %tint_symbol_2 %354
+        %351 = OpLabel
+        %352 = OpFunctionCall %main_out %main_inner
+        %353 = OpCompositeExtract %v4float %352 0
+               OpStore %x_GLF_color_1_1 %353
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.spvasm.expected.spvasm
index 794d877..40085c0 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.spvasm.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 215
+; Bound: 214
 ; Schema: 0
                OpCapability Shader
         %152 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %A "A"
                OpName %ref "ref"
@@ -22,18 +22,22 @@
                OpName %i_1 "i_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_19 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_17 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_19 = OpConstant %uint 19
@@ -41,13 +45,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_19
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %uint_17 = OpConstant %uint 17
@@ -82,7 +81,7 @@
        %true = OpConstantTrue %bool
       %false = OpConstantFalse %bool
    %main_out = OpTypeStruct %v4float
-        %203 = OpTypeFunction %void %main_out
+        %203 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %A = OpVariable %_ptr_Function__arr_int_uint_17 Function %23
@@ -277,18 +276,17 @@
         %188 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %203
-%tint_symbol = OpFunctionParameter %main_out
-        %207 = OpLabel
-        %208 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %208
-               OpReturn
+ %main_inner = OpFunction %main_out None %203
+        %206 = OpLabel
+        %207 = OpFunctionCall %void %main_1
+        %208 = OpLoad %v4float %x_GLF_color
+        %209 = OpCompositeConstruct %main_out %208
+               OpReturnValue %209
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %210 = OpLabel
-        %211 = OpFunctionCall %void %main_1
-        %213 = OpLoad %v4float %x_GLF_color
-        %214 = OpCompositeConstruct %main_out %213
-        %212 = OpFunctionCall %void %tint_symbol_2 %214
+        %211 = OpLabel
+        %212 = OpFunctionCall %main_out %main_inner
+        %213 = OpCompositeExtract %v4float %212 0
+               OpStore %x_GLF_color_1_1 %213
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.wgsl.expected.spvasm
index 794d877..40085c0 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.wgsl.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 215
+; Bound: 214
 ; Schema: 0
                OpCapability Shader
         %152 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %A "A"
                OpName %ref "ref"
@@ -22,18 +22,22 @@
                OpName %i_1 "i_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_19 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_17 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_19 = OpConstant %uint 19
@@ -41,13 +45,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_19
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %uint_17 = OpConstant %uint 17
@@ -82,7 +81,7 @@
        %true = OpConstantTrue %bool
       %false = OpConstantFalse %bool
    %main_out = OpTypeStruct %v4float
-        %203 = OpTypeFunction %void %main_out
+        %203 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %A = OpVariable %_ptr_Function__arr_int_uint_17 Function %23
@@ -277,18 +276,17 @@
         %188 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %203
-%tint_symbol = OpFunctionParameter %main_out
-        %207 = OpLabel
-        %208 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %208
-               OpReturn
+ %main_inner = OpFunction %main_out None %203
+        %206 = OpLabel
+        %207 = OpFunctionCall %void %main_1
+        %208 = OpLoad %v4float %x_GLF_color
+        %209 = OpCompositeConstruct %main_out %208
+               OpReturnValue %209
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %210 = OpLabel
-        %211 = OpFunctionCall %void %main_1
-        %213 = OpLoad %v4float %x_GLF_color
-        %214 = OpCompositeConstruct %main_out %213
-        %212 = OpFunctionCall %void %tint_symbol_2 %214
+        %211 = OpLabel
+        %212 = OpFunctionCall %main_out %main_inner
+        %213 = OpCompositeExtract %v4float %212 0
+               OpStore %x_GLF_color_1_1 %213
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.spvasm.expected.spvasm
index 6051176..fc1d811 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 111
+; Bound: 110
 ; Schema: 0
                OpCapability Shader
          %69 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v1 "v1"
                OpName %i "i"
@@ -24,9 +24,9 @@
                OpName %indexable_1 "indexable_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -39,10 +39,13 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_v4float_uint_2 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -55,12 +58,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -83,10 +82,10 @@
          %67 = OpConstantComposite %_arr_v4float_uint_2 %64 %66
 %_ptr_Function_float = OpTypePointer Function %float
    %main_out = OpTypeStruct %v4float
-         %99 = OpTypeFunction %void %main_out
+         %99 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
-         %v1 = OpVariable %_ptr_Function_v4float Function %17
+         %v1 = OpVariable %_ptr_Function_v4float Function %5
           %i = OpVariable %_ptr_Function_int Function %28
           %a = OpVariable %_ptr_Function_int Function %28
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_2 Function %33
@@ -160,18 +159,17 @@
                OpStore %x_GLF_color %98
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %99
-%tint_symbol = OpFunctionParameter %main_out
-        %103 = OpLabel
-        %104 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %104
-               OpReturn
+ %main_inner = OpFunction %main_out None %99
+        %102 = OpLabel
+        %103 = OpFunctionCall %void %main_1
+        %104 = OpLoad %v4float %x_GLF_color
+        %105 = OpCompositeConstruct %main_out %104
+               OpReturnValue %105
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %106 = OpLabel
-        %107 = OpFunctionCall %void %main_1
-        %109 = OpLoad %v4float %x_GLF_color
-        %110 = OpCompositeConstruct %main_out %109
-        %108 = OpFunctionCall %void %tint_symbol_2 %110
+        %107 = OpLabel
+        %108 = OpFunctionCall %main_out %main_inner
+        %109 = OpCompositeExtract %v4float %108 0
+               OpStore %x_GLF_color_1_1 %109
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.wgsl.expected.spvasm
index 6051176..fc1d811 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 111
+; Bound: 110
 ; Schema: 0
                OpCapability Shader
          %69 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v1 "v1"
                OpName %i "i"
@@ -24,9 +24,9 @@
                OpName %indexable_1 "indexable_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -39,10 +39,13 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_v4float_uint_2 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -55,12 +58,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -83,10 +82,10 @@
          %67 = OpConstantComposite %_arr_v4float_uint_2 %64 %66
 %_ptr_Function_float = OpTypePointer Function %float
    %main_out = OpTypeStruct %v4float
-         %99 = OpTypeFunction %void %main_out
+         %99 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
-         %v1 = OpVariable %_ptr_Function_v4float Function %17
+         %v1 = OpVariable %_ptr_Function_v4float Function %5
           %i = OpVariable %_ptr_Function_int Function %28
           %a = OpVariable %_ptr_Function_int Function %28
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_2 Function %33
@@ -160,18 +159,17 @@
                OpStore %x_GLF_color %98
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %99
-%tint_symbol = OpFunctionParameter %main_out
-        %103 = OpLabel
-        %104 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %104
-               OpReturn
+ %main_inner = OpFunction %main_out None %99
+        %102 = OpLabel
+        %103 = OpFunctionCall %void %main_1
+        %104 = OpLoad %v4float %x_GLF_color
+        %105 = OpCompositeConstruct %main_out %104
+               OpReturnValue %105
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %106 = OpLabel
-        %107 = OpFunctionCall %void %main_1
-        %109 = OpLoad %v4float %x_GLF_color
-        %110 = OpCompositeConstruct %main_out %109
-        %108 = OpFunctionCall %void %tint_symbol_2 %110
+        %107 = OpLabel
+        %108 = OpFunctionCall %main_out %main_inner
+        %109 = OpCompositeExtract %v4float %108 0
+               OpStore %x_GLF_color_1_1 %109
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.spvasm.expected.spvasm
index d45e754..1636891 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 104
+; Bound: 103
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
@@ -14,14 +15,13 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -34,12 +34,13 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -52,8 +53,6 @@
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -67,7 +66,7 @@
     %float_0 = OpConstant %float 0
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %92 = OpTypeFunction %void %main_out
+         %92 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %25
@@ -153,18 +152,17 @@
                OpStore %x_GLF_color %91
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %92
-%tint_symbol = OpFunctionParameter %main_out
-         %96 = OpLabel
-         %97 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %97
-               OpReturn
+ %main_inner = OpFunction %main_out None %92
+         %95 = OpLabel
+         %96 = OpFunctionCall %void %main_1
+         %97 = OpLoad %v4float %x_GLF_color
+         %98 = OpCompositeConstruct %main_out %97
+               OpReturnValue %98
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %99 = OpLabel
-        %100 = OpFunctionCall %void %main_1
-        %102 = OpLoad %v4float %x_GLF_color
-        %103 = OpCompositeConstruct %main_out %102
-        %101 = OpFunctionCall %void %tint_symbol_2 %103
+        %100 = OpLabel
+        %101 = OpFunctionCall %main_out %main_inner
+        %102 = OpCompositeExtract %v4float %101 0
+               OpStore %x_GLF_color_1_1 %102
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.wgsl.expected.spvasm
index d45e754..1636891 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 104
+; Bound: 103
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
@@ -14,14 +15,13 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -34,12 +34,13 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -52,8 +53,6 @@
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -67,7 +66,7 @@
     %float_0 = OpConstant %float 0
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %92 = OpTypeFunction %void %main_out
+         %92 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %25
@@ -153,18 +152,17 @@
                OpStore %x_GLF_color %91
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %92
-%tint_symbol = OpFunctionParameter %main_out
-         %96 = OpLabel
-         %97 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %97
-               OpReturn
+ %main_inner = OpFunction %main_out None %92
+         %95 = OpLabel
+         %96 = OpFunctionCall %void %main_1
+         %97 = OpLoad %v4float %x_GLF_color
+         %98 = OpCompositeConstruct %main_out %97
+               OpReturnValue %98
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %99 = OpLabel
-        %100 = OpFunctionCall %void %main_1
-        %102 = OpLoad %v4float %x_GLF_color
-        %103 = OpCompositeConstruct %main_out %102
-        %101 = OpFunctionCall %void %tint_symbol_2 %103
+        %100 = OpLabel
+        %101 = OpFunctionCall %main_out %main_inner
+        %102 = OpCompositeExtract %v4float %101 0
+               OpStore %x_GLF_color_1_1 %102
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.spvasm.expected.spvasm
index 40682e7..379bc64 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 118
+; Bound: 117
 ; Schema: 0
                OpCapability Shader
          %74 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,16 +16,15 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %M1 "M1"
                OpName %a "a"
                OpName %c "c"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_5 ArrayStride 16
@@ -37,9 +37,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
 %_arr_float_uint_5 = OpTypeArray %float %uint_5
@@ -52,12 +55,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -78,7 +77,7 @@
       %int_0 = OpConstant %int 0
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-        %106 = OpTypeFunction %void %main_out
+        %106 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
          %M1 = OpVariable %_ptr_Function_mat2v2float Function %28
@@ -167,18 +166,17 @@
          %86 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %106
-%tint_symbol = OpFunctionParameter %main_out
-        %110 = OpLabel
-        %111 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %111
-               OpReturn
+ %main_inner = OpFunction %main_out None %106
+        %109 = OpLabel
+        %110 = OpFunctionCall %void %main_1
+        %111 = OpLoad %v4float %x_GLF_color
+        %112 = OpCompositeConstruct %main_out %111
+               OpReturnValue %112
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %113 = OpLabel
-        %114 = OpFunctionCall %void %main_1
-        %116 = OpLoad %v4float %x_GLF_color
-        %117 = OpCompositeConstruct %main_out %116
-        %115 = OpFunctionCall %void %tint_symbol_2 %117
+        %114 = OpLabel
+        %115 = OpFunctionCall %main_out %main_inner
+        %116 = OpCompositeExtract %v4float %115 0
+               OpStore %x_GLF_color_1_1 %116
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.wgsl.expected.spvasm
index 40682e7..379bc64 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 118
+; Bound: 117
 ; Schema: 0
                OpCapability Shader
          %74 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,16 +16,15 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %M1 "M1"
                OpName %a "a"
                OpName %c "c"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_5 ArrayStride 16
@@ -37,9 +37,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
 %_arr_float_uint_5 = OpTypeArray %float %uint_5
@@ -52,12 +55,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -78,7 +77,7 @@
       %int_0 = OpConstant %int 0
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-        %106 = OpTypeFunction %void %main_out
+        %106 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
          %M1 = OpVariable %_ptr_Function_mat2v2float Function %28
@@ -167,18 +166,17 @@
          %86 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %106
-%tint_symbol = OpFunctionParameter %main_out
-        %110 = OpLabel
-        %111 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %111
-               OpReturn
+ %main_inner = OpFunction %main_out None %106
+        %109 = OpLabel
+        %110 = OpFunctionCall %void %main_1
+        %111 = OpLoad %v4float %x_GLF_color
+        %112 = OpCompositeConstruct %main_out %111
+               OpReturnValue %112
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %113 = OpLabel
-        %114 = OpFunctionCall %void %main_1
-        %116 = OpLoad %v4float %x_GLF_color
-        %117 = OpCompositeConstruct %main_out %116
-        %115 = OpFunctionCall %void %tint_symbol_2 %117
+        %114 = OpLabel
+        %115 = OpFunctionCall %main_out %main_inner
+        %116 = OpCompositeExtract %v4float %115 0
+               OpStore %x_GLF_color_1_1 %116
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.spvasm.expected.spvasm
index 3acf316..f9c4a95 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.spvasm.expected.spvasm
@@ -1,34 +1,38 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 73
+; Bound: 72
 ; Schema: 0
                OpCapability Shader
          %30 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -36,13 +40,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -57,7 +56,7 @@
        %bool = OpTypeBool
       %int_0 = OpConstant %int 0
    %main_out = OpTypeStruct %v4float
-         %61 = OpTypeFunction %void %main_out
+         %61 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %21
@@ -100,18 +99,17 @@
          %40 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %61
-%tint_symbol = OpFunctionParameter %main_out
-         %65 = OpLabel
-         %66 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %66
-               OpReturn
+ %main_inner = OpFunction %main_out None %61
+         %64 = OpLabel
+         %65 = OpFunctionCall %void %main_1
+         %66 = OpLoad %v4float %x_GLF_color
+         %67 = OpCompositeConstruct %main_out %66
+               OpReturnValue %67
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %68 = OpLabel
-         %69 = OpFunctionCall %void %main_1
-         %71 = OpLoad %v4float %x_GLF_color
-         %72 = OpCompositeConstruct %main_out %71
-         %70 = OpFunctionCall %void %tint_symbol_2 %72
+         %69 = OpLabel
+         %70 = OpFunctionCall %main_out %main_inner
+         %71 = OpCompositeExtract %v4float %70 0
+               OpStore %x_GLF_color_1_1 %71
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.wgsl.expected.spvasm
index 3acf316..f9c4a95 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.wgsl.expected.spvasm
@@ -1,34 +1,38 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 73
+; Bound: 72
 ; Schema: 0
                OpCapability Shader
          %30 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -36,13 +40,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -57,7 +56,7 @@
        %bool = OpTypeBool
       %int_0 = OpConstant %int 0
    %main_out = OpTypeStruct %v4float
-         %61 = OpTypeFunction %void %main_out
+         %61 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %21
@@ -100,18 +99,17 @@
          %40 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %61
-%tint_symbol = OpFunctionParameter %main_out
-         %65 = OpLabel
-         %66 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %66
-               OpReturn
+ %main_inner = OpFunction %main_out None %61
+         %64 = OpLabel
+         %65 = OpFunctionCall %void %main_1
+         %66 = OpLoad %v4float %x_GLF_color
+         %67 = OpCompositeConstruct %main_out %66
+               OpReturnValue %67
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %68 = OpLabel
-         %69 = OpFunctionCall %void %main_1
-         %71 = OpLoad %v4float %x_GLF_color
-         %72 = OpCompositeConstruct %main_out %71
-         %70 = OpFunctionCall %void %tint_symbol_2 %72
+         %69 = OpLabel
+         %70 = OpFunctionCall %main_out %main_inner
+         %71 = OpCompositeExtract %v4float %70 0
+               OpStore %x_GLF_color_1_1 %71
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.spvasm.expected.spvasm
index acba4e0..50325cf 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
@@ -15,17 +17,17 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_11 "x_11"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %j "j"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -38,9 +40,14 @@
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -48,21 +55,14 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_7 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %12
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_11 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -76,7 +76,7 @@
 %_ptr_Private_float = OpTypePointer Private %float
 %_ptr_Uniform_float = OpTypePointer Uniform %float
    %main_out = OpTypeStruct %v4float
-        %118 = OpTypeFunction %void %main_out
+        %118 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %29
@@ -203,20 +203,20 @@
         %100 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %118
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %118
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %122 = OpLabel
-        %123 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %123
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %123 = OpFunctionCall %void %main_1
+        %124 = OpLoad %v4float %x_GLF_color
+        %125 = OpCompositeConstruct %main_out %124
+               OpReturnValue %125
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %125 = OpLabel
-        %126 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %126
-        %127 = OpFunctionCall %void %main_1
-        %129 = OpLoad %v4float %x_GLF_color
-        %130 = OpCompositeConstruct %main_out %129
-        %128 = OpFunctionCall %void %tint_symbol_3 %130
+        %127 = OpLabel
+        %129 = OpLoad %v4float %gl_FragCoord_param_1
+        %128 = OpFunctionCall %main_out %main_inner %129
+        %130 = OpCompositeExtract %v4float %128 0
+               OpStore %x_GLF_color_1_1 %130
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.wgsl.expected.spvasm
index acba4e0..50325cf 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
@@ -15,17 +17,17 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_11 "x_11"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %j "j"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -38,9 +40,14 @@
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -48,21 +55,14 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_7 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %12
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_11 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -76,7 +76,7 @@
 %_ptr_Private_float = OpTypePointer Private %float
 %_ptr_Uniform_float = OpTypePointer Uniform %float
    %main_out = OpTypeStruct %v4float
-        %118 = OpTypeFunction %void %main_out
+        %118 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %29
@@ -203,20 +203,20 @@
         %100 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %118
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %118
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %122 = OpLabel
-        %123 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %123
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %123 = OpFunctionCall %void %main_1
+        %124 = OpLoad %v4float %x_GLF_color
+        %125 = OpCompositeConstruct %main_out %124
+               OpReturnValue %125
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %125 = OpLabel
-        %126 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %126
-        %127 = OpFunctionCall %void %main_1
-        %129 = OpLoad %v4float %x_GLF_color
-        %130 = OpCompositeConstruct %main_out %129
-        %128 = OpFunctionCall %void %tint_symbol_3 %130
+        %127 = OpLabel
+        %129 = OpLoad %v4float %gl_FragCoord_param_1
+        %128 = OpFunctionCall %main_out %main_inner %129
+        %130 = OpCompositeExtract %v4float %128 0
+               OpStore %x_GLF_color_1_1 %130
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.spvasm.expected.spvasm
index 2125db7..eccc08e 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_7 "x_7"
@@ -15,8 +17,6 @@
                OpName %x_11 "x_11"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
@@ -33,9 +33,11 @@
                OpName %i_10 "i_10"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -48,10 +50,14 @@
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -64,15 +70,9 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_11 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -90,7 +90,7 @@
 %_ptr_Private_float = OpTypePointer Private %float
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %239 = OpTypeFunction %void %main_out
+        %239 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %29
@@ -422,20 +422,20 @@
                OpStore %x_GLF_color %238
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %239
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %239
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %243 = OpLabel
-        %244 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %244
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %244 = OpFunctionCall %void %main_1
+        %245 = OpLoad %v4float %x_GLF_color
+        %246 = OpCompositeConstruct %main_out %245
+               OpReturnValue %246
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %246 = OpLabel
-        %247 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %247
-        %248 = OpFunctionCall %void %main_1
-        %250 = OpLoad %v4float %x_GLF_color
-        %251 = OpCompositeConstruct %main_out %250
-        %249 = OpFunctionCall %void %tint_symbol_3 %251
+        %248 = OpLabel
+        %250 = OpLoad %v4float %gl_FragCoord_param_1
+        %249 = OpFunctionCall %main_out %main_inner %250
+        %251 = OpCompositeExtract %v4float %249 0
+               OpStore %x_GLF_color_1_1 %251
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.wgsl.expected.spvasm
index 2125db7..eccc08e 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_7 "x_7"
@@ -15,8 +17,6 @@
                OpName %x_11 "x_11"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
@@ -33,9 +33,11 @@
                OpName %i_10 "i_10"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -48,10 +50,14 @@
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -64,15 +70,9 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_11 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -90,7 +90,7 @@
 %_ptr_Private_float = OpTypePointer Private %float
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %239 = OpTypeFunction %void %main_out
+        %239 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %29
@@ -422,20 +422,20 @@
                OpStore %x_GLF_color %238
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %239
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %239
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %243 = OpLabel
-        %244 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %244
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %244 = OpFunctionCall %void %main_1
+        %245 = OpLoad %v4float %x_GLF_color
+        %246 = OpCompositeConstruct %main_out %245
+               OpReturnValue %246
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %246 = OpLabel
-        %247 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %247
-        %248 = OpFunctionCall %void %main_1
-        %250 = OpLoad %v4float %x_GLF_color
-        %251 = OpCompositeConstruct %main_out %250
-        %249 = OpFunctionCall %void %tint_symbol_3 %251
+        %248 = OpLabel
+        %250 = OpLoad %v4float %gl_FragCoord_param_1
+        %249 = OpFunctionCall %main_out %main_inner %250
+        %251 = OpCompositeExtract %v4float %249 0
+               OpStore %x_GLF_color_1_1 %251
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.spvasm.expected.spvasm
index 48890d8..c06418f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 167
+; Bound: 166
 ; Schema: 0
                OpCapability Shader
          %39 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
@@ -15,7 +16,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %values "values"
@@ -28,9 +28,9 @@
                OpName %x_118_phi "x_118_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_4 ArrayStride 16
@@ -43,9 +43,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
 %_arr_float_uint_4 = OpTypeArray %float %uint_4
@@ -57,12 +60,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -83,12 +82,12 @@
 %_ptr_Function_float = OpTypePointer Function %float
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-        %155 = OpTypeFunction %void %main_out
+        %155 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
           %a = OpVariable %_ptr_Function_uint Function %25
-     %values = OpVariable %_ptr_Function_v4float Function %16
-        %ref = OpVariable %_ptr_Function_v4float Function %16
+     %values = OpVariable %_ptr_Function_v4float Function %5
+        %ref = OpVariable %_ptr_Function_v4float Function %5
        %x_85 = OpVariable %_ptr_Function_bool Function %32
       %x_101 = OpVariable %_ptr_Function_bool Function %32
       %x_117 = OpVariable %_ptr_Function_bool Function %32
@@ -229,18 +228,17 @@
         %135 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %155
-%tint_symbol = OpFunctionParameter %main_out
-        %159 = OpLabel
-        %160 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %160
-               OpReturn
+ %main_inner = OpFunction %main_out None %155
+        %158 = OpLabel
+        %159 = OpFunctionCall %void %main_1
+        %160 = OpLoad %v4float %x_GLF_color
+        %161 = OpCompositeConstruct %main_out %160
+               OpReturnValue %161
                OpFunctionEnd
        %main = OpFunction %void None %19
-        %162 = OpLabel
-        %163 = OpFunctionCall %void %main_1
-        %165 = OpLoad %v4float %x_GLF_color
-        %166 = OpCompositeConstruct %main_out %165
-        %164 = OpFunctionCall %void %tint_symbol_2 %166
+        %163 = OpLabel
+        %164 = OpFunctionCall %main_out %main_inner
+        %165 = OpCompositeExtract %v4float %164 0
+               OpStore %x_GLF_color_1_1 %165
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.wgsl.expected.spvasm
index 48890d8..c06418f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 167
+; Bound: 166
 ; Schema: 0
                OpCapability Shader
          %39 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
@@ -15,7 +16,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %values "values"
@@ -28,9 +28,9 @@
                OpName %x_118_phi "x_118_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_4 ArrayStride 16
@@ -43,9 +43,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
 %_arr_float_uint_4 = OpTypeArray %float %uint_4
@@ -57,12 +60,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_10 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -83,12 +82,12 @@
 %_ptr_Function_float = OpTypePointer Function %float
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-        %155 = OpTypeFunction %void %main_out
+        %155 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
           %a = OpVariable %_ptr_Function_uint Function %25
-     %values = OpVariable %_ptr_Function_v4float Function %16
-        %ref = OpVariable %_ptr_Function_v4float Function %16
+     %values = OpVariable %_ptr_Function_v4float Function %5
+        %ref = OpVariable %_ptr_Function_v4float Function %5
        %x_85 = OpVariable %_ptr_Function_bool Function %32
       %x_101 = OpVariable %_ptr_Function_bool Function %32
       %x_117 = OpVariable %_ptr_Function_bool Function %32
@@ -229,18 +228,17 @@
         %135 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %155
-%tint_symbol = OpFunctionParameter %main_out
-        %159 = OpLabel
-        %160 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %160
-               OpReturn
+ %main_inner = OpFunction %main_out None %155
+        %158 = OpLabel
+        %159 = OpFunctionCall %void %main_1
+        %160 = OpLoad %v4float %x_GLF_color
+        %161 = OpCompositeConstruct %main_out %160
+               OpReturnValue %161
                OpFunctionEnd
        %main = OpFunction %void None %19
-        %162 = OpLabel
-        %163 = OpFunctionCall %void %main_1
-        %165 = OpLoad %v4float %x_GLF_color
-        %166 = OpCompositeConstruct %main_out %165
-        %164 = OpFunctionCall %void %tint_symbol_2 %166
+        %163 = OpLabel
+        %164 = OpFunctionCall %main_out %main_inner
+        %165 = OpCompositeExtract %v4float %164 0
+               OpStore %x_GLF_color_1_1 %165
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.spvasm.expected.spvasm
index 3722ee6..542b71a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.spvasm.expected.spvasm
@@ -1,44 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 61
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_i1_ "func_i1_"
                OpName %x "x"
                OpName %main_1 "main_1"
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Function_int = OpTypePointer Function %int
          %12 = OpTypeFunction %int %_ptr_Function_int
        %uint = OpTypeInt 32 0
@@ -56,7 +55,7 @@
          %47 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %48 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %49 = OpTypeFunction %void %main_out
+         %49 = OpTypeFunction %main_out
    %func_i1_ = OpFunction %int None %12
           %x = OpFunctionParameter %_ptr_Function_int
          %16 = OpLabel
@@ -90,18 +89,17 @@
          %42 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %49
-%tint_symbol = OpFunctionParameter %main_out
-         %53 = OpLabel
-         %54 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %54
-               OpReturn
+ %main_inner = OpFunction %main_out None %49
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %main_1
+         %54 = OpLoad %v4float %x_GLF_color
+         %55 = OpCompositeConstruct %main_out %54
+               OpReturnValue %55
                OpFunctionEnd
        %main = OpFunction %void None %31
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %main_1
-         %59 = OpLoad %v4float %x_GLF_color
-         %60 = OpCompositeConstruct %main_out %59
-         %58 = OpFunctionCall %void %tint_symbol_2 %60
+         %57 = OpLabel
+         %58 = OpFunctionCall %main_out %main_inner
+         %59 = OpCompositeExtract %v4float %58 0
+               OpStore %x_GLF_color_1_1 %59
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.wgsl.expected.spvasm
index 3722ee6..542b71a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.wgsl.expected.spvasm
@@ -1,44 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 61
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_i1_ "func_i1_"
                OpName %x "x"
                OpName %main_1 "main_1"
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Function_int = OpTypePointer Function %int
          %12 = OpTypeFunction %int %_ptr_Function_int
        %uint = OpTypeInt 32 0
@@ -56,7 +55,7 @@
          %47 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %48 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %49 = OpTypeFunction %void %main_out
+         %49 = OpTypeFunction %main_out
    %func_i1_ = OpFunction %int None %12
           %x = OpFunctionParameter %_ptr_Function_int
          %16 = OpLabel
@@ -90,18 +89,17 @@
          %42 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %49
-%tint_symbol = OpFunctionParameter %main_out
-         %53 = OpLabel
-         %54 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %54
-               OpReturn
+ %main_inner = OpFunction %main_out None %49
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %main_1
+         %54 = OpLoad %v4float %x_GLF_color
+         %55 = OpCompositeConstruct %main_out %54
+               OpReturnValue %55
                OpFunctionEnd
        %main = OpFunction %void None %31
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %main_1
-         %59 = OpLoad %v4float %x_GLF_color
-         %60 = OpCompositeConstruct %main_out %59
-         %58 = OpFunctionCall %void %tint_symbol_2 %60
+         %57 = OpLabel
+         %58 = OpFunctionCall %main_out %main_inner
+         %59 = OpCompositeExtract %v4float %58 0
+               OpStore %x_GLF_color_1_1 %59
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.spvasm.expected.spvasm
index ed4d1eb..7691107 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.spvasm.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "three"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -50,7 +49,7 @@
          %33 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %34 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %35 = OpTypeFunction %void %main_out
+         %35 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
          %19 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0
@@ -69,18 +68,17 @@
          %28 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %35
-%tint_symbol = OpFunctionParameter %main_out
-         %39 = OpLabel
-         %40 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %40
-               OpReturn
+ %main_inner = OpFunction %main_out None %35
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %main_1
+         %40 = OpLoad %v4float %x_GLF_color
+         %41 = OpCompositeConstruct %main_out %40
+               OpReturnValue %41
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %main_1
-         %45 = OpLoad %v4float %x_GLF_color
-         %46 = OpCompositeConstruct %main_out %45
-         %44 = OpFunctionCall %void %tint_symbol_2 %46
+         %43 = OpLabel
+         %44 = OpFunctionCall %main_out %main_inner
+         %45 = OpCompositeExtract %v4float %44 0
+               OpStore %x_GLF_color_1_1 %45
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.wgsl.expected.spvasm
index ed4d1eb..7691107 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "three"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -50,7 +49,7 @@
          %33 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %34 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %35 = OpTypeFunction %void %main_out
+         %35 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
          %19 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0
@@ -69,18 +68,17 @@
          %28 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %35
-%tint_symbol = OpFunctionParameter %main_out
-         %39 = OpLabel
-         %40 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %40
-               OpReturn
+ %main_inner = OpFunction %main_out None %35
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %main_1
+         %40 = OpLoad %v4float %x_GLF_color
+         %41 = OpCompositeConstruct %main_out %40
+               OpReturnValue %41
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %main_1
-         %45 = OpLoad %v4float %x_GLF_color
-         %46 = OpCompositeConstruct %main_out %45
-         %44 = OpFunctionCall %void %tint_symbol_2 %46
+         %43 = OpLabel
+         %44 = OpFunctionCall %main_out %main_inner
+         %45 = OpCompositeExtract %v4float %44 0
+               OpStore %x_GLF_color_1_1 %45
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.spvasm.expected.spvasm
index 6e3a136..50bbfc1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
@@ -15,15 +17,15 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_9 "x_9"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -36,14 +38,16 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -51,16 +55,12 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf1 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -76,7 +76,7 @@
 %_ptr_Uniform_float = OpTypePointer Uniform %float
     %float_0 = OpConstant %float 0
    %main_out = OpTypeStruct %v4float
-        %105 = OpTypeFunction %void %main_out
+        %105 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %29
@@ -175,20 +175,20 @@
          %40 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %105
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %105
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %109 = OpLabel
-        %110 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %110
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %110 = OpFunctionCall %void %main_1
+        %111 = OpLoad %v4float %x_GLF_color
+        %112 = OpCompositeConstruct %main_out %111
+               OpReturnValue %112
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %112 = OpLabel
-        %113 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %113
-        %114 = OpFunctionCall %void %main_1
-        %116 = OpLoad %v4float %x_GLF_color
-        %117 = OpCompositeConstruct %main_out %116
-        %115 = OpFunctionCall %void %tint_symbol_3 %117
+        %114 = OpLabel
+        %116 = OpLoad %v4float %gl_FragCoord_param_1
+        %115 = OpFunctionCall %main_out %main_inner %116
+        %117 = OpCompositeExtract %v4float %115 0
+               OpStore %x_GLF_color_1_1 %117
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.wgsl.expected.spvasm
index 6e3a136..50bbfc1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
@@ -15,15 +17,15 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_9 "x_9"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -36,14 +38,16 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -51,16 +55,12 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf1 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -76,7 +76,7 @@
 %_ptr_Uniform_float = OpTypePointer Uniform %float
     %float_0 = OpConstant %float 0
    %main_out = OpTypeStruct %v4float
-        %105 = OpTypeFunction %void %main_out
+        %105 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %29
@@ -175,20 +175,20 @@
          %40 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %105
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %105
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %109 = OpLabel
-        %110 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %110
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %110 = OpFunctionCall %void %main_1
+        %111 = OpLoad %v4float %x_GLF_color
+        %112 = OpCompositeConstruct %main_out %111
+               OpReturnValue %112
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %112 = OpLabel
-        %113 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %113
-        %114 = OpFunctionCall %void %main_1
-        %116 = OpLoad %v4float %x_GLF_color
-        %117 = OpCompositeConstruct %main_out %116
-        %115 = OpFunctionCall %void %tint_symbol_3 %117
+        %114 = OpLabel
+        %116 = OpLoad %v4float %gl_FragCoord_param_1
+        %115 = OpFunctionCall %main_out %main_inner %116
+        %117 = OpCompositeExtract %v4float %115 0
+               OpStore %x_GLF_color_1_1 %117
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.spvasm.expected.spvasm
index 4a7d285..e49d71a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 98
+; Bound: 97
 ; Schema: 0
                OpCapability Shader
          %42 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -18,7 +19,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_13 "x_13"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f0 "f0"
                OpName %f1 "f1"
@@ -26,9 +26,9 @@
                OpName %f3 "f3"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -46,9 +46,12 @@
                OpDecorate %x_13 NonWritable
                OpDecorate %x_13 DescriptorSet 0
                OpDecorate %x_13 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -63,12 +66,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_13 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %19 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %19
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %19
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -81,7 +80,7 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %86 = OpTypeFunction %void %main_out
+         %86 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %22
          %25 = OpLabel
          %f0 = OpVariable %_ptr_Function_float Function %28
@@ -146,18 +145,17 @@
          %66 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %86
-%tint_symbol = OpFunctionParameter %main_out
-         %90 = OpLabel
-         %91 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %91
-               OpReturn
+ %main_inner = OpFunction %main_out None %86
+         %89 = OpLabel
+         %90 = OpFunctionCall %void %main_1
+         %91 = OpLoad %v4float %x_GLF_color
+         %92 = OpCompositeConstruct %main_out %91
+               OpReturnValue %92
                OpFunctionEnd
        %main = OpFunction %void None %22
-         %93 = OpLabel
-         %94 = OpFunctionCall %void %main_1
-         %96 = OpLoad %v4float %x_GLF_color
-         %97 = OpCompositeConstruct %main_out %96
-         %95 = OpFunctionCall %void %tint_symbol_2 %97
+         %94 = OpLabel
+         %95 = OpFunctionCall %main_out %main_inner
+         %96 = OpCompositeExtract %v4float %95 0
+               OpStore %x_GLF_color_1_1 %96
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.wgsl.expected.spvasm
index 4a7d285..e49d71a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 98
+; Bound: 97
 ; Schema: 0
                OpCapability Shader
          %42 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -18,7 +19,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_13 "x_13"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f0 "f0"
                OpName %f1 "f1"
@@ -26,9 +26,9 @@
                OpName %f3 "f3"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -46,9 +46,12 @@
                OpDecorate %x_13 NonWritable
                OpDecorate %x_13 DescriptorSet 0
                OpDecorate %x_13 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -63,12 +66,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_13 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %19 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %19
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %19
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -81,7 +80,7 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %86 = OpTypeFunction %void %main_out
+         %86 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %22
          %25 = OpLabel
          %f0 = OpVariable %_ptr_Function_float Function %28
@@ -146,18 +145,17 @@
          %66 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %86
-%tint_symbol = OpFunctionParameter %main_out
-         %90 = OpLabel
-         %91 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %91
-               OpReturn
+ %main_inner = OpFunction %main_out None %86
+         %89 = OpLabel
+         %90 = OpFunctionCall %void %main_1
+         %91 = OpLoad %v4float %x_GLF_color
+         %92 = OpCompositeConstruct %main_out %91
+               OpReturnValue %92
                OpFunctionEnd
        %main = OpFunction %void None %22
-         %93 = OpLabel
-         %94 = OpFunctionCall %void %main_1
-         %96 = OpLoad %v4float %x_GLF_color
-         %97 = OpCompositeConstruct %main_out %96
-         %95 = OpFunctionCall %void %tint_symbol_2 %97
+         %94 = OpLabel
+         %95 = OpFunctionCall %main_out %main_inner
+         %96 = OpCompositeExtract %v4float %95 0
+               OpStore %x_GLF_color_1_1 %96
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.spvasm.expected.spvasm
index 8e68666..8fccec2 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 92
+; Bound: 91
 ; Schema: 0
                OpCapability Shader
          %40 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -18,16 +19,15 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %x_48 "x_48"
                OpName %x_49_phi "x_49_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -45,9 +45,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -62,12 +65,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %19 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %19
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %19
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -82,7 +81,7 @@
       %int_0 = OpConstant %int 0
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %80 = OpTypeFunction %void %main_out
+         %80 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %22
          %25 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %28
@@ -142,18 +141,17 @@
          %60 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %80
-%tint_symbol = OpFunctionParameter %main_out
-         %84 = OpLabel
-         %85 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %85
-               OpReturn
+ %main_inner = OpFunction %main_out None %80
+         %83 = OpLabel
+         %84 = OpFunctionCall %void %main_1
+         %85 = OpLoad %v4float %x_GLF_color
+         %86 = OpCompositeConstruct %main_out %85
+               OpReturnValue %86
                OpFunctionEnd
        %main = OpFunction %void None %22
-         %87 = OpLabel
-         %88 = OpFunctionCall %void %main_1
-         %90 = OpLoad %v4float %x_GLF_color
-         %91 = OpCompositeConstruct %main_out %90
-         %89 = OpFunctionCall %void %tint_symbol_2 %91
+         %88 = OpLabel
+         %89 = OpFunctionCall %main_out %main_inner
+         %90 = OpCompositeExtract %v4float %89 0
+               OpStore %x_GLF_color_1_1 %90
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.wgsl.expected.spvasm
index 8e68666..8fccec2 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 92
+; Bound: 91
 ; Schema: 0
                OpCapability Shader
          %40 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -18,16 +19,15 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %x_48 "x_48"
                OpName %x_49_phi "x_49_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -45,9 +45,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -62,12 +65,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %19 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %19
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %19
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -82,7 +81,7 @@
       %int_0 = OpConstant %int 0
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %80 = OpTypeFunction %void %main_out
+         %80 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %22
          %25 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %28
@@ -142,18 +141,17 @@
          %60 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %80
-%tint_symbol = OpFunctionParameter %main_out
-         %84 = OpLabel
-         %85 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %85
-               OpReturn
+ %main_inner = OpFunction %main_out None %80
+         %83 = OpLabel
+         %84 = OpFunctionCall %void %main_1
+         %85 = OpLoad %v4float %x_GLF_color
+         %86 = OpCompositeConstruct %main_out %85
+               OpReturnValue %86
                OpFunctionEnd
        %main = OpFunction %void None %22
-         %87 = OpLabel
-         %88 = OpFunctionCall %void %main_1
-         %90 = OpLoad %v4float %x_GLF_color
-         %91 = OpCompositeConstruct %main_out %90
-         %89 = OpFunctionCall %void %tint_symbol_2 %91
+         %88 = OpLabel
+         %89 = OpFunctionCall %main_out %main_inner
+         %90 = OpCompositeExtract %v4float %89 0
+               OpStore %x_GLF_color_1_1 %90
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.spvasm
index 35787a8..f2e01df 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.spvasm
@@ -1,39 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 69
+; Bound: 68
 ; Schema: 0
                OpCapability Shader
          %28 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
                OpName %c "c"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -41,8 +42,6 @@
        %buf0 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -56,7 +55,7 @@
 %_ptr_Uniform_float = OpTypePointer Uniform %float
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %57 = OpTypeFunction %void %main_out
+         %57 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %20
@@ -99,18 +98,17 @@
          %37 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %57
-%tint_symbol = OpFunctionParameter %main_out
-         %61 = OpLabel
-         %62 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %62
-               OpReturn
+ %main_inner = OpFunction %main_out None %57
+         %60 = OpLabel
+         %61 = OpFunctionCall %void %main_1
+         %62 = OpLoad %v4float %x_GLF_color
+         %63 = OpCompositeConstruct %main_out %62
+               OpReturnValue %63
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %64 = OpLabel
-         %65 = OpFunctionCall %void %main_1
-         %67 = OpLoad %v4float %x_GLF_color
-         %68 = OpCompositeConstruct %main_out %67
-         %66 = OpFunctionCall %void %tint_symbol_2 %68
+         %65 = OpLabel
+         %66 = OpFunctionCall %main_out %main_inner
+         %67 = OpCompositeExtract %v4float %66 0
+               OpStore %x_GLF_color_1_1 %67
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.wgsl.expected.spvasm
index 60826bb..d4abc98 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.wgsl.expected.spvasm
@@ -1,39 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 71
+; Bound: 70
 ; Schema: 0
                OpCapability Shader
          %28 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
                OpName %c "c"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -41,8 +42,6 @@
        %buf0 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -56,7 +55,7 @@
 %_ptr_Uniform_float = OpTypePointer Uniform %float
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %59 = OpTypeFunction %void %main_out
+         %59 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %20
@@ -104,18 +103,17 @@
          %39 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %59
-%tint_symbol = OpFunctionParameter %main_out
-         %63 = OpLabel
-         %64 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %64
-               OpReturn
+ %main_inner = OpFunction %main_out None %59
+         %62 = OpLabel
+         %63 = OpFunctionCall %void %main_1
+         %64 = OpLoad %v4float %x_GLF_color
+         %65 = OpCompositeConstruct %main_out %64
+               OpReturnValue %65
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %66 = OpLabel
-         %67 = OpFunctionCall %void %main_1
-         %69 = OpLoad %v4float %x_GLF_color
-         %70 = OpCompositeConstruct %main_out %69
-         %68 = OpFunctionCall %void %tint_symbol_2 %70
+         %67 = OpLabel
+         %68 = OpFunctionCall %main_out %main_inner
+         %69 = OpCompositeExtract %v4float %68 0
+               OpStore %x_GLF_color_1_1 %69
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.spvasm.expected.spvasm
index b52f8c5..0af5f16 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.spvasm.expected.spvasm
@@ -1,32 +1,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 67
+; Bound: 66
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -34,13 +38,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -52,7 +51,7 @@
       %int_0 = OpConstant %int 0
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %55 = OpTypeFunction %void %main_out
+         %55 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -92,18 +91,17 @@
          %35 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %55
-%tint_symbol = OpFunctionParameter %main_out
-         %59 = OpLabel
-         %60 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %60
-               OpReturn
+ %main_inner = OpFunction %main_out None %55
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %main_1
+         %60 = OpLoad %v4float %x_GLF_color
+         %61 = OpCompositeConstruct %main_out %60
+               OpReturnValue %61
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %62 = OpLabel
-         %63 = OpFunctionCall %void %main_1
-         %65 = OpLoad %v4float %x_GLF_color
-         %66 = OpCompositeConstruct %main_out %65
-         %64 = OpFunctionCall %void %tint_symbol_2 %66
+         %63 = OpLabel
+         %64 = OpFunctionCall %main_out %main_inner
+         %65 = OpCompositeExtract %v4float %64 0
+               OpStore %x_GLF_color_1_1 %65
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.wgsl.expected.spvasm
index b52f8c5..0af5f16 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.wgsl.expected.spvasm
@@ -1,32 +1,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 67
+; Bound: 66
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -34,13 +38,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -52,7 +51,7 @@
       %int_0 = OpConstant %int 0
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %55 = OpTypeFunction %void %main_out
+         %55 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -92,18 +91,17 @@
          %35 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %55
-%tint_symbol = OpFunctionParameter %main_out
-         %59 = OpLabel
-         %60 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %60
-               OpReturn
+ %main_inner = OpFunction %main_out None %55
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %main_1
+         %60 = OpLoad %v4float %x_GLF_color
+         %61 = OpCompositeConstruct %main_out %60
+               OpReturnValue %61
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %62 = OpLabel
-         %63 = OpFunctionCall %void %main_1
-         %65 = OpLoad %v4float %x_GLF_color
-         %66 = OpCompositeConstruct %main_out %65
-         %64 = OpFunctionCall %void %tint_symbol_2 %66
+         %63 = OpLabel
+         %64 = OpFunctionCall %main_out %main_inner
+         %65 = OpCompositeExtract %v4float %64 0
+               OpStore %x_GLF_color_1_1 %65
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.spvasm.expected.spvasm
index 83487ed..b524821 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.spvasm.expected.spvasm
@@ -1,32 +1,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 67
+; Bound: 66
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -34,13 +38,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -52,7 +51,7 @@
        %bool = OpTypeBool
       %int_0 = OpConstant %int 0
    %main_out = OpTypeStruct %v4float
-         %55 = OpTypeFunction %void %main_out
+         %55 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -92,18 +91,17 @@
          %34 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %55
-%tint_symbol = OpFunctionParameter %main_out
-         %59 = OpLabel
-         %60 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %60
-               OpReturn
+ %main_inner = OpFunction %main_out None %55
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %main_1
+         %60 = OpLoad %v4float %x_GLF_color
+         %61 = OpCompositeConstruct %main_out %60
+               OpReturnValue %61
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %62 = OpLabel
-         %63 = OpFunctionCall %void %main_1
-         %65 = OpLoad %v4float %x_GLF_color
-         %66 = OpCompositeConstruct %main_out %65
-         %64 = OpFunctionCall %void %tint_symbol_2 %66
+         %63 = OpLabel
+         %64 = OpFunctionCall %main_out %main_inner
+         %65 = OpCompositeExtract %v4float %64 0
+               OpStore %x_GLF_color_1_1 %65
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.wgsl.expected.spvasm
index 83487ed..b524821 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.wgsl.expected.spvasm
@@ -1,32 +1,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 67
+; Bound: 66
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -34,13 +38,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -52,7 +51,7 @@
        %bool = OpTypeBool
       %int_0 = OpConstant %int 0
    %main_out = OpTypeStruct %v4float
-         %55 = OpTypeFunction %void %main_out
+         %55 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -92,18 +91,17 @@
          %34 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %55
-%tint_symbol = OpFunctionParameter %main_out
-         %59 = OpLabel
-         %60 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %60
-               OpReturn
+ %main_inner = OpFunction %main_out None %55
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %main_1
+         %60 = OpLoad %v4float %x_GLF_color
+         %61 = OpCompositeConstruct %main_out %60
+               OpReturnValue %61
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %62 = OpLabel
-         %63 = OpFunctionCall %void %main_1
-         %65 = OpLoad %v4float %x_GLF_color
-         %66 = OpCompositeConstruct %main_out %65
-         %64 = OpFunctionCall %void %tint_symbol_2 %66
+         %63 = OpLabel
+         %64 = OpFunctionCall %main_out %main_inner
+         %65 = OpCompositeExtract %v4float %64 0
+               OpStore %x_GLF_color_1_1 %65
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.spvasm
index 7a86628..6162334 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.spvasm
@@ -1,44 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 66
+; Bound: 65
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_5 "x_5"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_9 "x_9"
                OpName %x_10_phi "x_10_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_1 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -58,7 +57,7 @@
     %float_1 = OpConstant %float 1
          %53 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %54 = OpTypeFunction %void %main_out
+         %54 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
         %x_9 = OpVariable %_ptr_Function__arr_int_uint_1 Function %21
@@ -102,18 +101,17 @@
          %49 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %54
-%tint_symbol = OpFunctionParameter %main_out
-         %58 = OpLabel
-         %59 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %59
-               OpReturn
+ %main_inner = OpFunction %main_out None %54
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %main_1
+         %59 = OpLoad %v4float %x_GLF_color
+         %60 = OpCompositeConstruct %main_out %59
+               OpReturnValue %60
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %61 = OpLabel
-         %62 = OpFunctionCall %void %main_1
-         %64 = OpLoad %v4float %x_GLF_color
-         %65 = OpCompositeConstruct %main_out %64
-         %63 = OpFunctionCall %void %tint_symbol_2 %65
+         %62 = OpLabel
+         %63 = OpFunctionCall %main_out %main_inner
+         %64 = OpCompositeExtract %v4float %63 0
+               OpStore %x_GLF_color_1_1 %64
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.wgsl.expected.spvasm
index e24ad6d..ea49963 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.wgsl.expected.spvasm
@@ -1,44 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 68
+; Bound: 67
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_5 "x_5"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_9 "x_9"
                OpName %x_10_phi "x_10_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_1 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -58,7 +57,7 @@
     %float_1 = OpConstant %float 1
          %55 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %56 = OpTypeFunction %void %main_out
+         %56 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
         %x_9 = OpVariable %_ptr_Function__arr_int_uint_1 Function %21
@@ -107,18 +106,17 @@
          %51 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %56
-%tint_symbol = OpFunctionParameter %main_out
-         %60 = OpLabel
-         %61 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %61
-               OpReturn
+ %main_inner = OpFunction %main_out None %56
+         %59 = OpLabel
+         %60 = OpFunctionCall %void %main_1
+         %61 = OpLoad %v4float %x_GLF_color
+         %62 = OpCompositeConstruct %main_out %61
+               OpReturnValue %62
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %63 = OpLabel
-         %64 = OpFunctionCall %void %main_1
-         %66 = OpLoad %v4float %x_GLF_color
-         %67 = OpCompositeConstruct %main_out %66
-         %65 = OpFunctionCall %void %tint_symbol_2 %67
+         %64 = OpLabel
+         %65 = OpFunctionCall %main_out %main_inner
+         %66 = OpCompositeExtract %v4float %65 0
+               OpStore %x_GLF_color_1_1 %66
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.spvasm.expected.spvasm
index c85153e..34219e4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 90
+; Bound: 89
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %S "S"
                OpMemberName %S 0 "x"
                OpMemberName %S 1 "y"
@@ -23,30 +23,29 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %S 0 Offset 0
                OpMemberDecorate %S 1 Offset 4
                OpDecorate %_arr_S_uint_2 ArrayStride 8
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %S = OpTypeStruct %int %int
 %_ptr_Function_S = OpTypePointer Function %S
@@ -73,7 +72,7 @@
          %76 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %77 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %78 = OpTypeFunction %void %main_out
+         %78 = OpTypeFunction %main_out
 %func_struct_S_i1_i11_ = OpFunction %void None %12
         %arg = OpFunctionParameter %_ptr_Function_S
          %18 = OpLabel
@@ -141,18 +140,17 @@
          %72 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %78
-%tint_symbol = OpFunctionParameter %main_out
-         %82 = OpLabel
-         %83 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %83
-               OpReturn
+ %main_inner = OpFunction %main_out None %78
+         %81 = OpLabel
+         %82 = OpFunctionCall %void %main_1
+         %83 = OpLoad %v4float %x_GLF_color
+         %84 = OpCompositeConstruct %main_out %83
+               OpReturnValue %84
                OpFunctionEnd
        %main = OpFunction %void None %25
-         %85 = OpLabel
-         %86 = OpFunctionCall %void %main_1
-         %88 = OpLoad %v4float %x_GLF_color
-         %89 = OpCompositeConstruct %main_out %88
-         %87 = OpFunctionCall %void %tint_symbol_2 %89
+         %86 = OpLabel
+         %87 = OpFunctionCall %main_out %main_inner
+         %88 = OpCompositeExtract %v4float %87 0
+               OpStore %x_GLF_color_1_1 %88
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.wgsl.expected.spvasm
index c85153e..34219e4 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 90
+; Bound: 89
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %S "S"
                OpMemberName %S 0 "x"
                OpMemberName %S 1 "y"
@@ -23,30 +23,29 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %S 0 Offset 0
                OpMemberDecorate %S 1 Offset 4
                OpDecorate %_arr_S_uint_2 ArrayStride 8
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %S = OpTypeStruct %int %int
 %_ptr_Function_S = OpTypePointer Function %S
@@ -73,7 +72,7 @@
          %76 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %77 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %78 = OpTypeFunction %void %main_out
+         %78 = OpTypeFunction %main_out
 %func_struct_S_i1_i11_ = OpFunction %void None %12
         %arg = OpFunctionParameter %_ptr_Function_S
          %18 = OpLabel
@@ -141,18 +140,17 @@
          %72 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %78
-%tint_symbol = OpFunctionParameter %main_out
-         %82 = OpLabel
-         %83 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %83
-               OpReturn
+ %main_inner = OpFunction %main_out None %78
+         %81 = OpLabel
+         %82 = OpFunctionCall %void %main_1
+         %83 = OpLoad %v4float %x_GLF_color
+         %84 = OpCompositeConstruct %main_out %83
+               OpReturnValue %84
                OpFunctionEnd
        %main = OpFunction %void None %25
-         %85 = OpLabel
-         %86 = OpFunctionCall %void %main_1
-         %88 = OpLoad %v4float %x_GLF_color
-         %89 = OpCompositeConstruct %main_out %88
-         %87 = OpFunctionCall %void %tint_symbol_2 %89
+         %86 = OpLabel
+         %87 = OpFunctionCall %main_out %main_inner
+         %88 = OpCompositeExtract %v4float %87 0
+               OpStore %x_GLF_color_1_1 %88
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.spvasm.expected.spvasm
index 7d4d31d..5387682 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_v1_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_v1_1_1 "x_GLF_v1_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
@@ -15,16 +17,16 @@
                OpName %x_9 "x_9"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_v1 "x_GLF_v1"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %j "j"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_v1_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_v1_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -37,9 +39,14 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_v1_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -47,21 +54,14 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_7 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf0 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-   %x_GLF_v1 = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+   %x_GLF_v1 = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -75,7 +75,7 @@
 %_ptr_Private_float = OpTypePointer Private %float
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %96 = OpTypeFunction %void %main_out
+         %96 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %29
@@ -168,20 +168,20 @@
          %37 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %96
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %96
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %100 = OpLabel
-        %101 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %101
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %101 = OpFunctionCall %void %main_1
+        %102 = OpLoad %v4float %x_GLF_v1
+        %103 = OpCompositeConstruct %main_out %102
+               OpReturnValue %103
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %103 = OpLabel
-        %104 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %104
-        %105 = OpFunctionCall %void %main_1
-        %107 = OpLoad %v4float %x_GLF_v1
-        %108 = OpCompositeConstruct %main_out %107
-        %106 = OpFunctionCall %void %tint_symbol_3 %108
+        %105 = OpLabel
+        %107 = OpLoad %v4float %gl_FragCoord_param_1
+        %106 = OpFunctionCall %main_out %main_inner %107
+        %108 = OpCompositeExtract %v4float %106 0
+               OpStore %x_GLF_v1_1_1 %108
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.wgsl.expected.spvasm
index 7d4d31d..5387682 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_v1_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_v1_1_1 "x_GLF_v1_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
@@ -15,16 +17,16 @@
                OpName %x_9 "x_9"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_v1 "x_GLF_v1"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %j "j"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_v1_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_v1_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
@@ -37,9 +39,14 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_v1_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -47,21 +54,14 @@
        %buf1 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_7 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf0 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-   %x_GLF_v1 = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+   %x_GLF_v1 = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -75,7 +75,7 @@
 %_ptr_Private_float = OpTypePointer Private %float
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %96 = OpTypeFunction %void %main_out
+         %96 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %29
@@ -168,20 +168,20 @@
          %37 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %96
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %96
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %100 = OpLabel
-        %101 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %101
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %101 = OpFunctionCall %void %main_1
+        %102 = OpLoad %v4float %x_GLF_v1
+        %103 = OpCompositeConstruct %main_out %102
+               OpReturnValue %103
                OpFunctionEnd
        %main = OpFunction %void None %23
-        %103 = OpLabel
-        %104 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %104
-        %105 = OpFunctionCall %void %main_1
-        %107 = OpLoad %v4float %x_GLF_v1
-        %108 = OpCompositeConstruct %main_out %107
-        %106 = OpFunctionCall %void %tint_symbol_3 %108
+        %105 = OpLabel
+        %107 = OpLoad %v4float %gl_FragCoord_param_1
+        %106 = OpFunctionCall %main_out %main_inner %107
+        %108 = OpCompositeExtract %v4float %106 0
+               OpStore %x_GLF_v1_1_1 %108
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.spvasm
index 23d5183..74936e1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 147
+; Bound: 146
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m "m"
                OpName %f "f"
@@ -19,17 +19,21 @@
                OpName %j "j"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -37,13 +41,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -65,7 +64,7 @@
      %v2bool = OpTypeVector %bool 2
      %uint_1 = OpConstant %uint 1
    %main_out = OpTypeStruct %v4float
-        %135 = OpTypeFunction %void %main_out
+        %135 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %m = OpVariable %_ptr_Function_mat2v2float Function %23
@@ -201,18 +200,17 @@
         %115 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %135
-%tint_symbol = OpFunctionParameter %main_out
-        %139 = OpLabel
-        %140 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %140
-               OpReturn
+ %main_inner = OpFunction %main_out None %135
+        %138 = OpLabel
+        %139 = OpFunctionCall %void %main_1
+        %140 = OpLoad %v4float %x_GLF_color
+        %141 = OpCompositeConstruct %main_out %140
+               OpReturnValue %141
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %142 = OpLabel
-        %143 = OpFunctionCall %void %main_1
-        %145 = OpLoad %v4float %x_GLF_color
-        %146 = OpCompositeConstruct %main_out %145
-        %144 = OpFunctionCall %void %tint_symbol_2 %146
+        %143 = OpLabel
+        %144 = OpFunctionCall %main_out %main_inner
+        %145 = OpCompositeExtract %v4float %144 0
+               OpStore %x_GLF_color_1_1 %145
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.wgsl.expected.spvasm
index 2f12b21..e6793bf 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 149
+; Bound: 148
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m "m"
                OpName %f "f"
@@ -19,17 +19,21 @@
                OpName %j "j"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -37,13 +41,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -65,7 +64,7 @@
      %v2bool = OpTypeVector %bool 2
      %uint_1 = OpConstant %uint 1
    %main_out = OpTypeStruct %v4float
-        %137 = OpTypeFunction %void %main_out
+        %137 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %m = OpVariable %_ptr_Function_mat2v2float Function %23
@@ -206,18 +205,17 @@
         %117 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %137
-%tint_symbol = OpFunctionParameter %main_out
-        %141 = OpLabel
-        %142 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %142
-               OpReturn
+ %main_inner = OpFunction %main_out None %137
+        %140 = OpLabel
+        %141 = OpFunctionCall %void %main_1
+        %142 = OpLoad %v4float %x_GLF_color
+        %143 = OpCompositeConstruct %main_out %142
+               OpReturnValue %143
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %144 = OpLabel
-        %145 = OpFunctionCall %void %main_1
-        %147 = OpLoad %v4float %x_GLF_color
-        %148 = OpCompositeConstruct %main_out %147
-        %146 = OpFunctionCall %void %tint_symbol_2 %148
+        %145 = OpLabel
+        %146 = OpFunctionCall %main_out %main_inner
+        %147 = OpCompositeExtract %v4float %146 0
+               OpStore %x_GLF_color_1_1 %147
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.spvasm.expected.spvasm
index 79aef81..07421fe 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 120
+; Bound: 119
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_11 "x_11"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %S "S"
                OpMemberName %S 0 "data"
                OpName %func_struct_S_i11_i1_ "func_struct_S_i11_i1_"
@@ -27,29 +27,28 @@
                OpName %param_3 "param_3"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_arr_S_uint_1 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_11 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
           %S = OpTypeStruct %int
 %_ptr_Function_S = OpTypePointer Function %S
 %_ptr_Function_int = OpTypePointer Function %int
@@ -76,7 +75,7 @@
         %106 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %107 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %108 = OpTypeFunction %void %main_out
+        %108 = OpTypeFunction %main_out
 %func_struct_S_i11_i1_ = OpFunction %int None %12
           %s = OpFunctionParameter %_ptr_Function_S
           %x = OpFunctionParameter %_ptr_Function_int
@@ -179,18 +178,17 @@
         %101 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %108
-%tint_symbol = OpFunctionParameter %main_out
-        %112 = OpLabel
-        %113 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %113
-               OpReturn
+ %main_inner = OpFunction %main_out None %108
+        %111 = OpLabel
+        %112 = OpFunctionCall %void %main_1
+        %113 = OpLoad %v4float %x_GLF_color
+        %114 = OpCompositeConstruct %main_out %113
+               OpReturnValue %114
                OpFunctionEnd
        %main = OpFunction %void None %40
-        %115 = OpLabel
-        %116 = OpFunctionCall %void %main_1
-        %118 = OpLoad %v4float %x_GLF_color
-        %119 = OpCompositeConstruct %main_out %118
-        %117 = OpFunctionCall %void %tint_symbol_2 %119
+        %116 = OpLabel
+        %117 = OpFunctionCall %main_out %main_inner
+        %118 = OpCompositeExtract %v4float %117 0
+               OpStore %x_GLF_color_1_1 %118
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.wgsl.expected.spvasm
index 79aef81..07421fe 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 120
+; Bound: 119
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_11 "x_11"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %S "S"
                OpMemberName %S 0 "data"
                OpName %func_struct_S_i11_i1_ "func_struct_S_i11_i1_"
@@ -27,29 +27,28 @@
                OpName %param_3 "param_3"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_arr_S_uint_1 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_11 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
           %S = OpTypeStruct %int
 %_ptr_Function_S = OpTypePointer Function %S
 %_ptr_Function_int = OpTypePointer Function %int
@@ -76,7 +75,7 @@
         %106 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %107 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %108 = OpTypeFunction %void %main_out
+        %108 = OpTypeFunction %main_out
 %func_struct_S_i11_i1_ = OpFunction %int None %12
           %s = OpFunctionParameter %_ptr_Function_S
           %x = OpFunctionParameter %_ptr_Function_int
@@ -179,18 +178,17 @@
         %101 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %108
-%tint_symbol = OpFunctionParameter %main_out
-        %112 = OpLabel
-        %113 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %113
-               OpReturn
+ %main_inner = OpFunction %main_out None %108
+        %111 = OpLabel
+        %112 = OpFunctionCall %void %main_1
+        %113 = OpLoad %v4float %x_GLF_color
+        %114 = OpCompositeConstruct %main_out %113
+               OpReturnValue %114
                OpFunctionEnd
        %main = OpFunction %void None %40
-        %115 = OpLabel
-        %116 = OpFunctionCall %void %main_1
-        %118 = OpLoad %v4float %x_GLF_color
-        %119 = OpCompositeConstruct %main_out %118
-        %117 = OpFunctionCall %void %tint_symbol_2 %119
+        %116 = OpLabel
+        %117 = OpFunctionCall %main_out %main_inner
+        %118 = OpCompositeExtract %v4float %117 0
+               OpStore %x_GLF_color_1_1 %118
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.spvasm.expected.spvasm
index 653b0a1..8694f3a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.spvasm.expected.spvasm
@@ -1,35 +1,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 69
+; Bound: 68
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_5 "x_5"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
@@ -38,8 +39,6 @@
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_5 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -48,7 +47,7 @@
       %int_1 = OpConstant %int 1
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %57 = OpTypeFunction %void %main_out
+         %57 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
          %22 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0
@@ -96,18 +95,17 @@
          %42 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %57
-%tint_symbol = OpFunctionParameter %main_out
-         %61 = OpLabel
-         %62 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %62
-               OpReturn
+ %main_inner = OpFunction %main_out None %57
+         %60 = OpLabel
+         %61 = OpFunctionCall %void %main_1
+         %62 = OpLoad %v4float %x_GLF_color
+         %63 = OpCompositeConstruct %main_out %62
+               OpReturnValue %63
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %64 = OpLabel
-         %65 = OpFunctionCall %void %main_1
-         %67 = OpLoad %v4float %x_GLF_color
-         %68 = OpCompositeConstruct %main_out %67
-         %66 = OpFunctionCall %void %tint_symbol_2 %68
+         %65 = OpLabel
+         %66 = OpFunctionCall %main_out %main_inner
+         %67 = OpCompositeExtract %v4float %66 0
+               OpStore %x_GLF_color_1_1 %67
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.wgsl.expected.spvasm
index 653b0a1..8694f3a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.wgsl.expected.spvasm
@@ -1,35 +1,36 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 69
+; Bound: 68
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_5 "x_5"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
@@ -38,8 +39,6 @@
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_5 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -48,7 +47,7 @@
       %int_1 = OpConstant %int 1
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %57 = OpTypeFunction %void %main_out
+         %57 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
          %22 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0
@@ -96,18 +95,17 @@
          %42 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %57
-%tint_symbol = OpFunctionParameter %main_out
-         %61 = OpLabel
-         %62 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %62
-               OpReturn
+ %main_inner = OpFunction %main_out None %57
+         %60 = OpLabel
+         %61 = OpFunctionCall %void %main_1
+         %62 = OpLoad %v4float %x_GLF_color
+         %63 = OpCompositeConstruct %main_out %62
+               OpReturnValue %63
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %64 = OpLabel
-         %65 = OpFunctionCall %void %main_1
-         %67 = OpLoad %v4float %x_GLF_color
-         %68 = OpCompositeConstruct %main_out %67
-         %66 = OpFunctionCall %void %tint_symbol_2 %68
+         %65 = OpLabel
+         %66 = OpFunctionCall %main_out %main_inner
+         %67 = OpCompositeExtract %v4float %66 0
+               OpStore %x_GLF_color_1_1 %67
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.spvasm.expected.spvasm
index f165252..76d5a1d 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
@@ -18,15 +20,15 @@
                OpName %buf2 "buf2"
                OpMemberName %buf2 0 "injectionSwitch"
                OpName %x_11 "x_11"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -44,14 +46,16 @@
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 2
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -59,7 +63,7 @@
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_7 = OpVariable %_ptr_Uniform_buf1 Uniform
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
@@ -69,10 +73,6 @@
        %buf2 = OpTypeStruct %v2float
 %_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2
        %x_11 = OpVariable %_ptr_Uniform_buf2 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %27 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -90,7 +90,7 @@
     %v3float = OpTypeVector %float 3
          %75 = OpConstantComposite %v3float %float_1 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-         %80 = OpTypeFunction %void %main_out
+         %80 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %27
          %30 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %33
@@ -149,20 +149,20 @@
                OpStore %x_GLF_color %79
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %80
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %80
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %84 = OpLabel
-         %85 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %85
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %85 = OpFunctionCall %void %main_1
+         %86 = OpLoad %v4float %x_GLF_color
+         %87 = OpCompositeConstruct %main_out %86
+               OpReturnValue %87
                OpFunctionEnd
        %main = OpFunction %void None %27
-         %87 = OpLabel
-         %88 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %88
-         %89 = OpFunctionCall %void %main_1
-         %91 = OpLoad %v4float %x_GLF_color
-         %92 = OpCompositeConstruct %main_out %91
-         %90 = OpFunctionCall %void %tint_symbol_3 %92
+         %89 = OpLabel
+         %91 = OpLoad %v4float %gl_FragCoord_param_1
+         %90 = OpFunctionCall %main_out %main_inner %91
+         %92 = OpCompositeExtract %v4float %90 0
+               OpStore %x_GLF_color_1_1 %92
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.wgsl.expected.spvasm
index f165252..76d5a1d 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
@@ -18,15 +20,15 @@
                OpName %buf2 "buf2"
                OpMemberName %buf2 0 "injectionSwitch"
                OpName %x_11 "x_11"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -44,14 +46,16 @@
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 2
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -59,7 +63,7 @@
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_7 = OpVariable %_ptr_Uniform_buf1 Uniform
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
@@ -69,10 +73,6 @@
        %buf2 = OpTypeStruct %v2float
 %_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2
        %x_11 = OpVariable %_ptr_Uniform_buf2 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %27 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -90,7 +90,7 @@
     %v3float = OpTypeVector %float 3
          %75 = OpConstantComposite %v3float %float_1 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-         %80 = OpTypeFunction %void %main_out
+         %80 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %27
          %30 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %33
@@ -149,20 +149,20 @@
                OpStore %x_GLF_color %79
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %80
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %80
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %84 = OpLabel
-         %85 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %85
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %85 = OpFunctionCall %void %main_1
+         %86 = OpLoad %v4float %x_GLF_color
+         %87 = OpCompositeConstruct %main_out %86
+               OpReturnValue %87
                OpFunctionEnd
        %main = OpFunction %void None %27
-         %87 = OpLabel
-         %88 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %88
-         %89 = OpFunctionCall %void %main_1
-         %91 = OpLoad %v4float %x_GLF_color
-         %92 = OpCompositeConstruct %main_out %91
-         %90 = OpFunctionCall %void %tint_symbol_3 %92
+         %89 = OpLabel
+         %91 = OpLoad %v4float %gl_FragCoord_param_1
+         %90 = OpFunctionCall %main_out %main_inner %91
+         %92 = OpCompositeExtract %v4float %90 0
+               OpStore %x_GLF_color_1_1 %92
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.spvasm.expected.spvasm
index b6b2b57..41c408c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 98
+; Bound: 97
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_7 "x_7"
@@ -14,7 +15,6 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_11 "x_11"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %v "v"
                OpName %a "a"
@@ -22,9 +22,9 @@
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -37,27 +37,26 @@
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_v2float_uint_3 ArrayStride 8
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf0 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_11 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
     %v2float = OpTypeVector %float 2
          %19 = OpTypeFunction %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
@@ -80,7 +79,7 @@
        %bool = OpTypeBool
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %86 = OpTypeFunction %void %main_out
+         %86 = OpTypeFunction %main_out
       %func_ = OpFunction %v2float None %19
          %22 = OpLabel
           %v = OpVariable %_ptr_Function_v2float Function %25
@@ -140,18 +139,17 @@
          %65 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %86
-%tint_symbol = OpFunctionParameter %main_out
-         %90 = OpLabel
-         %91 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %91
-               OpReturn
+ %main_inner = OpFunction %main_out None %86
+         %89 = OpLabel
+         %90 = OpFunctionCall %void %main_1
+         %91 = OpLoad %v4float %x_GLF_color
+         %92 = OpCompositeConstruct %main_out %91
+               OpReturnValue %92
                OpFunctionEnd
        %main = OpFunction %void None %55
-         %93 = OpLabel
-         %94 = OpFunctionCall %void %main_1
-         %96 = OpLoad %v4float %x_GLF_color
-         %97 = OpCompositeConstruct %main_out %96
-         %95 = OpFunctionCall %void %tint_symbol_2 %97
+         %94 = OpLabel
+         %95 = OpFunctionCall %main_out %main_inner
+         %96 = OpCompositeExtract %v4float %95 0
+               OpStore %x_GLF_color_1_1 %96
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.wgsl.expected.spvasm
index b6b2b57..41c408c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 98
+; Bound: 97
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_7 "x_7"
@@ -14,7 +15,6 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_11 "x_11"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %v "v"
                OpName %a "a"
@@ -22,9 +22,9 @@
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -37,27 +37,26 @@
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_v2float_uint_3 ArrayStride 8
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf0 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_11 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
     %v2float = OpTypeVector %float 2
          %19 = OpTypeFunction %v2float
 %_ptr_Function_v2float = OpTypePointer Function %v2float
@@ -80,7 +79,7 @@
        %bool = OpTypeBool
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %86 = OpTypeFunction %void %main_out
+         %86 = OpTypeFunction %main_out
       %func_ = OpFunction %v2float None %19
          %22 = OpLabel
           %v = OpVariable %_ptr_Function_v2float Function %25
@@ -140,18 +139,17 @@
          %65 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %86
-%tint_symbol = OpFunctionParameter %main_out
-         %90 = OpLabel
-         %91 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %91
-               OpReturn
+ %main_inner = OpFunction %main_out None %86
+         %89 = OpLabel
+         %90 = OpFunctionCall %void %main_1
+         %91 = OpLoad %v4float %x_GLF_color
+         %92 = OpCompositeConstruct %main_out %91
+               OpReturnValue %92
                OpFunctionEnd
        %main = OpFunction %void None %55
-         %93 = OpLabel
-         %94 = OpFunctionCall %void %main_1
-         %96 = OpLoad %v4float %x_GLF_color
-         %97 = OpCompositeConstruct %main_out %96
-         %95 = OpFunctionCall %void %tint_symbol_2 %97
+         %94 = OpLabel
+         %95 = OpFunctionCall %main_out %main_inner
+         %96 = OpCompositeExtract %v4float %95 0
+               OpStore %x_GLF_color_1_1 %96
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.spvasm.expected.spvasm
index 504fead..1a14698 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 274
+; Bound: 273
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -14,7 +15,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %sums "sums"
                OpName %a "a"
@@ -31,9 +31,9 @@
                OpName %x_216_phi "x_216_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_7 ArrayStride 16
@@ -46,9 +46,13 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_7 = OpConstant %uint 7
@@ -56,18 +60,13 @@
        %buf0 = OpTypeStruct %_arr_int_uint_7
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
        %buf1 = OpTypeStruct %_arr_float_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
@@ -91,7 +90,7 @@
       %int_6 = OpConstant %int 6
       %int_4 = OpConstant %int 4
    %main_out = OpTypeStruct %v4float
-        %262 = OpTypeFunction %void %main_out
+        %262 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
        %sums = OpVariable %_ptr_Function__arr_float_uint_2 Function %28
@@ -439,18 +438,17 @@
         %242 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %262
-%tint_symbol = OpFunctionParameter %main_out
-        %266 = OpLabel
-        %267 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %267
-               OpReturn
+ %main_inner = OpFunction %main_out None %262
+        %265 = OpLabel
+        %266 = OpFunctionCall %void %main_1
+        %267 = OpLoad %v4float %x_GLF_color
+        %268 = OpCompositeConstruct %main_out %267
+               OpReturnValue %268
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %269 = OpLabel
-        %270 = OpFunctionCall %void %main_1
-        %272 = OpLoad %v4float %x_GLF_color
-        %273 = OpCompositeConstruct %main_out %272
-        %271 = OpFunctionCall %void %tint_symbol_2 %273
+        %270 = OpLabel
+        %271 = OpFunctionCall %main_out %main_inner
+        %272 = OpCompositeExtract %v4float %271 0
+               OpStore %x_GLF_color_1_1 %272
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.wgsl.expected.spvasm
index 504fead..1a14698 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 274
+; Bound: 273
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -14,7 +15,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %sums "sums"
                OpName %a "a"
@@ -31,9 +31,9 @@
                OpName %x_216_phi "x_216_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_7 ArrayStride 16
@@ -46,9 +46,13 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_7 = OpConstant %uint 7
@@ -56,18 +60,13 @@
        %buf0 = OpTypeStruct %_arr_int_uint_7
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
        %buf1 = OpTypeStruct %_arr_float_uint_3
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
@@ -91,7 +90,7 @@
       %int_6 = OpConstant %int 6
       %int_4 = OpConstant %int 4
    %main_out = OpTypeStruct %v4float
-        %262 = OpTypeFunction %void %main_out
+        %262 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
        %sums = OpVariable %_ptr_Function__arr_float_uint_2 Function %28
@@ -439,18 +438,17 @@
         %242 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %262
-%tint_symbol = OpFunctionParameter %main_out
-        %266 = OpLabel
-        %267 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %267
-               OpReturn
+ %main_inner = OpFunction %main_out None %262
+        %265 = OpLabel
+        %266 = OpFunctionCall %void %main_1
+        %267 = OpLoad %v4float %x_GLF_color
+        %268 = OpCompositeConstruct %main_out %267
+               OpReturnValue %268
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %269 = OpLabel
-        %270 = OpFunctionCall %void %main_1
-        %272 = OpLoad %v4float %x_GLF_color
-        %273 = OpCompositeConstruct %main_out %272
-        %271 = OpFunctionCall %void %tint_symbol_2 %273
+        %270 = OpLabel
+        %271 = OpFunctionCall %main_out %main_inner
+        %272 = OpCompositeExtract %v4float %271 0
+               OpStore %x_GLF_color_1_1 %272
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.spvasm.expected.spvasm
index 854519d..2d3e9ce 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 201
+; Bound: 200
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i0 "i0"
@@ -26,27 +26,26 @@
                OpName %i9 "i9"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -64,7 +63,7 @@
         %187 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %188 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %189 = OpTypeFunction %void %main_out
+        %189 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %18
@@ -355,18 +354,17 @@
         %182 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %189
-%tint_symbol = OpFunctionParameter %main_out
-        %193 = OpLabel
-        %194 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %194
-               OpReturn
+ %main_inner = OpFunction %main_out None %189
+        %192 = OpLabel
+        %193 = OpFunctionCall %void %main_1
+        %194 = OpLoad %v4float %x_GLF_color
+        %195 = OpCompositeConstruct %main_out %194
+               OpReturnValue %195
                OpFunctionEnd
        %main = OpFunction %void None %12
-        %196 = OpLabel
-        %197 = OpFunctionCall %void %main_1
-        %199 = OpLoad %v4float %x_GLF_color
-        %200 = OpCompositeConstruct %main_out %199
-        %198 = OpFunctionCall %void %tint_symbol_2 %200
+        %197 = OpLabel
+        %198 = OpFunctionCall %main_out %main_inner
+        %199 = OpCompositeExtract %v4float %198 0
+               OpStore %x_GLF_color_1_1 %199
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.wgsl.expected.spvasm
index 854519d..2d3e9ce 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 201
+; Bound: 200
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i0 "i0"
@@ -26,27 +26,26 @@
                OpName %i9 "i9"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -64,7 +63,7 @@
         %187 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %188 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %189 = OpTypeFunction %void %main_out
+        %189 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %18
@@ -355,18 +354,17 @@
         %182 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %189
-%tint_symbol = OpFunctionParameter %main_out
-        %193 = OpLabel
-        %194 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %194
-               OpReturn
+ %main_inner = OpFunction %main_out None %189
+        %192 = OpLabel
+        %193 = OpFunctionCall %void %main_1
+        %194 = OpLoad %v4float %x_GLF_color
+        %195 = OpCompositeConstruct %main_out %194
+               OpReturnValue %195
                OpFunctionEnd
        %main = OpFunction %void None %12
-        %196 = OpLabel
-        %197 = OpFunctionCall %void %main_1
-        %199 = OpLoad %v4float %x_GLF_color
-        %200 = OpCompositeConstruct %main_out %199
-        %198 = OpFunctionCall %void %tint_symbol_2 %200
+        %197 = OpLabel
+        %198 = OpFunctionCall %main_out %main_inner
+        %199 = OpCompositeExtract %v4float %198 0
+               OpStore %x_GLF_color_1_1 %199
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.spvasm.expected.spvasm
index f34e73c..9b76f3a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.spvasm.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 86
+; Bound: 85
 ; Schema: 0
                OpCapability Shader
          %44 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
@@ -20,30 +20,29 @@
                OpName %x_52_phi "x_52_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_5 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
 %_arr_float_uint_5 = OpTypeArray %float %uint_5
        %buf0 = OpTypeStruct %_arr_float_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -60,7 +59,7 @@
       %int_1 = OpConstant %int 1
       %int_4 = OpConstant %int 4
    %main_out = OpTypeStruct %v4float
-         %74 = OpTypeFunction %void %main_out
+         %74 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %20
@@ -120,18 +119,17 @@
          %62 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %74
-%tint_symbol = OpFunctionParameter %main_out
-         %78 = OpLabel
-         %79 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %79
-               OpReturn
+ %main_inner = OpFunction %main_out None %74
+         %77 = OpLabel
+         %78 = OpFunctionCall %void %main_1
+         %79 = OpLoad %v4float %x_GLF_color
+         %80 = OpCompositeConstruct %main_out %79
+               OpReturnValue %80
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %81 = OpLabel
-         %82 = OpFunctionCall %void %main_1
-         %84 = OpLoad %v4float %x_GLF_color
-         %85 = OpCompositeConstruct %main_out %84
-         %83 = OpFunctionCall %void %tint_symbol_2 %85
+         %82 = OpLabel
+         %83 = OpFunctionCall %main_out %main_inner
+         %84 = OpCompositeExtract %v4float %83 0
+               OpStore %x_GLF_color_1_1 %84
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.wgsl.expected.spvasm
index f34e73c..9b76f3a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.wgsl.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 86
+; Bound: 85
 ; Schema: 0
                OpCapability Shader
          %44 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
@@ -20,30 +20,29 @@
                OpName %x_52_phi "x_52_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_5 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
 %_arr_float_uint_5 = OpTypeArray %float %uint_5
        %buf0 = OpTypeStruct %_arr_float_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -60,7 +59,7 @@
       %int_1 = OpConstant %int 1
       %int_4 = OpConstant %int 4
    %main_out = OpTypeStruct %v4float
-         %74 = OpTypeFunction %void %main_out
+         %74 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %20
@@ -120,18 +119,17 @@
          %62 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %74
-%tint_symbol = OpFunctionParameter %main_out
-         %78 = OpLabel
-         %79 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %79
-               OpReturn
+ %main_inner = OpFunction %main_out None %74
+         %77 = OpLabel
+         %78 = OpFunctionCall %void %main_1
+         %79 = OpLoad %v4float %x_GLF_color
+         %80 = OpCompositeConstruct %main_out %79
+               OpReturnValue %80
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %81 = OpLabel
-         %82 = OpFunctionCall %void %main_1
-         %84 = OpLoad %v4float %x_GLF_color
-         %85 = OpCompositeConstruct %main_out %84
-         %83 = OpFunctionCall %void %tint_symbol_2 %85
+         %82 = OpLabel
+         %83 = OpFunctionCall %main_out %main_inner
+         %84 = OpCompositeExtract %v4float %83 0
+               OpStore %x_GLF_color_1_1 %84
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.spvasm.expected.spvasm
index 47829d0..87a8b88 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.spvasm.expected.spvasm
@@ -1,36 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_5 "x_5"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
@@ -39,8 +40,6 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -51,7 +50,7 @@
     %float_0 = OpConstant %float 0
          %40 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %42 = OpTypeFunction %void %main_out
+         %42 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %v = OpVariable %_ptr_Function_v4float Function %5
@@ -76,18 +75,17 @@
                OpStore %x_GLF_color %41
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %42
-%tint_symbol = OpFunctionParameter %main_out
-         %46 = OpLabel
-         %47 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %47
-               OpReturn
+ %main_inner = OpFunction %main_out None %42
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %main_1
+         %47 = OpLoad %v4float %x_GLF_color
+         %48 = OpCompositeConstruct %main_out %47
+               OpReturnValue %48
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %main_1
-         %52 = OpLoad %v4float %x_GLF_color
-         %53 = OpCompositeConstruct %main_out %52
-         %51 = OpFunctionCall %void %tint_symbol_2 %53
+         %50 = OpLabel
+         %51 = OpFunctionCall %main_out %main_inner
+         %52 = OpCompositeExtract %v4float %51 0
+               OpStore %x_GLF_color_1_1 %52
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.wgsl.expected.spvasm
index 47829d0..87a8b88 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.wgsl.expected.spvasm
@@ -1,36 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 54
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_5 "x_5"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
@@ -39,8 +40,6 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -51,7 +50,7 @@
     %float_0 = OpConstant %float 0
          %40 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %42 = OpTypeFunction %void %main_out
+         %42 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %v = OpVariable %_ptr_Function_v4float Function %5
@@ -76,18 +75,17 @@
                OpStore %x_GLF_color %41
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %42
-%tint_symbol = OpFunctionParameter %main_out
-         %46 = OpLabel
-         %47 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %47
-               OpReturn
+ %main_inner = OpFunction %main_out None %42
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %main_1
+         %47 = OpLoad %v4float %x_GLF_color
+         %48 = OpCompositeConstruct %main_out %47
+               OpReturnValue %48
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %49 = OpLabel
-         %50 = OpFunctionCall %void %main_1
-         %52 = OpLoad %v4float %x_GLF_color
-         %53 = OpCompositeConstruct %main_out %52
-         %51 = OpFunctionCall %void %tint_symbol_2 %53
+         %50 = OpLabel
+         %51 = OpFunctionCall %main_out %main_inner
+         %52 = OpCompositeExtract %v4float %51 0
+               OpStore %x_GLF_color_1_1 %52
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.spvasm.expected.spvasm
index a8d0f90..3b81250 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.spvasm.expected.spvasm
@@ -1,34 +1,38 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 87
+; Bound: 86
 ; Schema: 0
                OpCapability Shader
          %47 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %c "c"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -36,13 +40,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -55,7 +54,7 @@
       %int_3 = OpConstant %int 3
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %75 = OpTypeFunction %void %main_out
+         %75 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %c = OpVariable %_ptr_Function_int Function %21
@@ -125,18 +124,17 @@
          %60 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %75
-%tint_symbol = OpFunctionParameter %main_out
-         %79 = OpLabel
-         %80 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %80
-               OpReturn
+ %main_inner = OpFunction %main_out None %75
+         %78 = OpLabel
+         %79 = OpFunctionCall %void %main_1
+         %80 = OpLoad %v4float %x_GLF_color
+         %81 = OpCompositeConstruct %main_out %80
+               OpReturnValue %81
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %82 = OpLabel
-         %83 = OpFunctionCall %void %main_1
-         %85 = OpLoad %v4float %x_GLF_color
-         %86 = OpCompositeConstruct %main_out %85
-         %84 = OpFunctionCall %void %tint_symbol_2 %86
+         %83 = OpLabel
+         %84 = OpFunctionCall %main_out %main_inner
+         %85 = OpCompositeExtract %v4float %84 0
+               OpStore %x_GLF_color_1_1 %85
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.wgsl.expected.spvasm
index a8d0f90..3b81250 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.wgsl.expected.spvasm
@@ -1,34 +1,38 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 87
+; Bound: 86
 ; Schema: 0
                OpCapability Shader
          %47 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %c "c"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -36,13 +40,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -55,7 +54,7 @@
       %int_3 = OpConstant %int 3
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %75 = OpTypeFunction %void %main_out
+         %75 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %c = OpVariable %_ptr_Function_int Function %21
@@ -125,18 +124,17 @@
          %60 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %75
-%tint_symbol = OpFunctionParameter %main_out
-         %79 = OpLabel
-         %80 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %80
-               OpReturn
+ %main_inner = OpFunction %main_out None %75
+         %78 = OpLabel
+         %79 = OpFunctionCall %void %main_1
+         %80 = OpLoad %v4float %x_GLF_color
+         %81 = OpCompositeConstruct %main_out %80
+               OpReturnValue %81
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %82 = OpLabel
-         %83 = OpFunctionCall %void %main_1
-         %85 = OpLoad %v4float %x_GLF_color
-         %86 = OpCompositeConstruct %main_out %85
-         %84 = OpFunctionCall %void %tint_symbol_2 %86
+         %83 = OpLabel
+         %84 = OpFunctionCall %main_out %main_inner
+         %85 = OpCompositeExtract %v4float %84 0
+               OpStore %x_GLF_color_1_1 %85
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.spvasm.expected.spvasm
index 77d773f..142fdab 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 78
+; Bound: 77
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "v1"
                OpName %x_5 "x_5"
@@ -14,13 +15,12 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_5 NonWritable
@@ -32,17 +32,18 @@
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_5 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -50,8 +51,6 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -62,7 +61,7 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %66 = OpTypeFunction %void %main_out
+         %66 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
          %25 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %uint_0
@@ -113,18 +112,17 @@
          %32 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %66
-%tint_symbol = OpFunctionParameter %main_out
-         %70 = OpLabel
-         %71 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %71
-               OpReturn
+ %main_inner = OpFunction %main_out None %66
+         %69 = OpLabel
+         %70 = OpFunctionCall %void %main_1
+         %71 = OpLoad %v4float %x_GLF_color
+         %72 = OpCompositeConstruct %main_out %71
+               OpReturnValue %72
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %73 = OpLabel
-         %74 = OpFunctionCall %void %main_1
-         %76 = OpLoad %v4float %x_GLF_color
-         %77 = OpCompositeConstruct %main_out %76
-         %75 = OpFunctionCall %void %tint_symbol_2 %77
+         %74 = OpLabel
+         %75 = OpFunctionCall %main_out %main_inner
+         %76 = OpCompositeExtract %v4float %75 0
+               OpStore %x_GLF_color_1_1 %76
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.wgsl.expected.spvasm
index 77d773f..142fdab 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 78
+; Bound: 77
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "v1"
                OpName %x_5 "x_5"
@@ -14,13 +15,12 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_5 NonWritable
@@ -32,17 +32,18 @@
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_5 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -50,8 +51,6 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -62,7 +61,7 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %66 = OpTypeFunction %void %main_out
+         %66 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
          %25 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %uint_0
@@ -113,18 +112,17 @@
          %32 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %66
-%tint_symbol = OpFunctionParameter %main_out
-         %70 = OpLabel
-         %71 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %71
-               OpReturn
+ %main_inner = OpFunction %main_out None %66
+         %69 = OpLabel
+         %70 = OpFunctionCall %void %main_1
+         %71 = OpLoad %v4float %x_GLF_color
+         %72 = OpCompositeConstruct %main_out %71
+               OpReturnValue %72
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %73 = OpLabel
-         %74 = OpFunctionCall %void %main_1
-         %76 = OpLoad %v4float %x_GLF_color
-         %77 = OpCompositeConstruct %main_out %76
-         %75 = OpFunctionCall %void %tint_symbol_2 %77
+         %74 = OpLabel
+         %75 = OpFunctionCall %main_out %main_inner
+         %76 = OpCompositeExtract %v4float %75 0
+               OpStore %x_GLF_color_1_1 %76
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.spvasm.expected.spvasm
index 7708f0f..da3ef5d 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.spvasm.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_5 "x_5"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_29 "x_29"
                OpName %x_30_phi "x_30_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -51,7 +50,7 @@
          %39 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
          %40 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %41 = OpTypeFunction %void %main_out
+         %41 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
        %x_29 = OpVariable %_ptr_Function_bool Function %18
@@ -84,18 +83,17 @@
          %35 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %41
-%tint_symbol = OpFunctionParameter %main_out
-         %45 = OpLabel
-         %46 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %46
-               OpReturn
+ %main_inner = OpFunction %main_out None %41
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %main_1
+         %46 = OpLoad %v4float %x_GLF_color
+         %47 = OpCompositeConstruct %main_out %46
+               OpReturnValue %47
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %main_1
-         %51 = OpLoad %v4float %x_GLF_color
-         %52 = OpCompositeConstruct %main_out %51
-         %50 = OpFunctionCall %void %tint_symbol_2 %52
+         %49 = OpLabel
+         %50 = OpFunctionCall %main_out %main_inner
+         %51 = OpCompositeExtract %v4float %50 0
+               OpStore %x_GLF_color_1_1 %51
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.wgsl.expected.spvasm
index 7708f0f..da3ef5d 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_5 "x_5"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_29 "x_29"
                OpName %x_30_phi "x_30_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -51,7 +50,7 @@
          %39 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
          %40 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %41 = OpTypeFunction %void %main_out
+         %41 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
        %x_29 = OpVariable %_ptr_Function_bool Function %18
@@ -84,18 +83,17 @@
          %35 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %41
-%tint_symbol = OpFunctionParameter %main_out
-         %45 = OpLabel
-         %46 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %46
-               OpReturn
+ %main_inner = OpFunction %main_out None %41
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %main_1
+         %46 = OpLoad %v4float %x_GLF_color
+         %47 = OpCompositeConstruct %main_out %46
+               OpReturnValue %47
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %main_1
-         %51 = OpLoad %v4float %x_GLF_color
-         %52 = OpCompositeConstruct %main_out %51
-         %50 = OpFunctionCall %void %tint_symbol_2 %52
+         %49 = OpLabel
+         %50 = OpFunctionCall %main_out %main_inner
+         %51 = OpCompositeExtract %v4float %50 0
+               OpStore %x_GLF_color_1_1 %51
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.spvasm.expected.spvasm
index 5769859..51bbad6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 136
+; Bound: 135
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_36 "x_36"
                OpName %x_74 "x_74"
@@ -29,17 +29,21 @@
                OpName %x_57 "x_57"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_6 ArrayStride 16
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_6 = OpConstant %uint 6
@@ -47,13 +51,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_6
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -74,22 +73,22 @@
      %v4bool = OpTypeVector %bool 4
       %int_5 = OpConstant %int 5
    %main_out = OpTypeStruct %v4float
-        %124 = OpTypeFunction %void %main_out
+        %124 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %x_36 = OpVariable %_ptr_Function_int Function %21
        %x_74 = OpVariable %_ptr_Function_bool Function %25
-   %x_33_phi = OpVariable %_ptr_Function_v4float Function %12
+   %x_33_phi = OpVariable %_ptr_Function_v4float Function %5
    %x_36_phi = OpVariable %_ptr_Function_int Function %21
    %x_38_phi = OpVariable %_ptr_Function_int Function %21
    %x_75_phi = OpVariable %_ptr_Function_bool Function %25
-       %x_53 = OpVariable %_ptr_Function_v4float Function %12
+       %x_53 = OpVariable %_ptr_Function_v4float Function %5
        %x_39 = OpVariable %_ptr_Function_int Function %21
-   %x_34_phi = OpVariable %_ptr_Function_v4float Function %12
+   %x_34_phi = OpVariable %_ptr_Function_v4float Function %5
    %x_62_phi = OpVariable %_ptr_Function_int Function %21
-   %x_53_phi = OpVariable %_ptr_Function_v4float Function %12
+   %x_53_phi = OpVariable %_ptr_Function_v4float Function %5
    %x_56_phi = OpVariable %_ptr_Function_int Function %21
-       %x_54 = OpVariable %_ptr_Function_v4float Function %12
+       %x_54 = OpVariable %_ptr_Function_v4float Function %5
        %x_57 = OpVariable %_ptr_Function_int Function %21
          %34 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0
          %35 = OpLoad %int %34
@@ -223,18 +222,17 @@
         %116 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %124
-%tint_symbol = OpFunctionParameter %main_out
-        %128 = OpLabel
-        %129 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %129
-               OpReturn
+ %main_inner = OpFunction %main_out None %124
+        %127 = OpLabel
+        %128 = OpFunctionCall %void %main_1
+        %129 = OpLoad %v4float %x_GLF_color
+        %130 = OpCompositeConstruct %main_out %129
+               OpReturnValue %130
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %131 = OpLabel
-        %132 = OpFunctionCall %void %main_1
-        %134 = OpLoad %v4float %x_GLF_color
-        %135 = OpCompositeConstruct %main_out %134
-        %133 = OpFunctionCall %void %tint_symbol_2 %135
+        %132 = OpLabel
+        %133 = OpFunctionCall %main_out %main_inner
+        %134 = OpCompositeExtract %v4float %133 0
+               OpStore %x_GLF_color_1_1 %134
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.wgsl.expected.spvasm
index 5769859..51bbad6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 136
+; Bound: 135
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_36 "x_36"
                OpName %x_74 "x_74"
@@ -29,17 +29,21 @@
                OpName %x_57 "x_57"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_6 ArrayStride 16
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_6 = OpConstant %uint 6
@@ -47,13 +51,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_6
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -74,22 +73,22 @@
      %v4bool = OpTypeVector %bool 4
       %int_5 = OpConstant %int 5
    %main_out = OpTypeStruct %v4float
-        %124 = OpTypeFunction %void %main_out
+        %124 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %x_36 = OpVariable %_ptr_Function_int Function %21
        %x_74 = OpVariable %_ptr_Function_bool Function %25
-   %x_33_phi = OpVariable %_ptr_Function_v4float Function %12
+   %x_33_phi = OpVariable %_ptr_Function_v4float Function %5
    %x_36_phi = OpVariable %_ptr_Function_int Function %21
    %x_38_phi = OpVariable %_ptr_Function_int Function %21
    %x_75_phi = OpVariable %_ptr_Function_bool Function %25
-       %x_53 = OpVariable %_ptr_Function_v4float Function %12
+       %x_53 = OpVariable %_ptr_Function_v4float Function %5
        %x_39 = OpVariable %_ptr_Function_int Function %21
-   %x_34_phi = OpVariable %_ptr_Function_v4float Function %12
+   %x_34_phi = OpVariable %_ptr_Function_v4float Function %5
    %x_62_phi = OpVariable %_ptr_Function_int Function %21
-   %x_53_phi = OpVariable %_ptr_Function_v4float Function %12
+   %x_53_phi = OpVariable %_ptr_Function_v4float Function %5
    %x_56_phi = OpVariable %_ptr_Function_int Function %21
-       %x_54 = OpVariable %_ptr_Function_v4float Function %12
+       %x_54 = OpVariable %_ptr_Function_v4float Function %5
        %x_57 = OpVariable %_ptr_Function_int Function %21
          %34 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0
          %35 = OpLoad %int %34
@@ -223,18 +222,17 @@
         %116 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %124
-%tint_symbol = OpFunctionParameter %main_out
-        %128 = OpLabel
-        %129 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %129
-               OpReturn
+ %main_inner = OpFunction %main_out None %124
+        %127 = OpLabel
+        %128 = OpFunctionCall %void %main_1
+        %129 = OpLoad %v4float %x_GLF_color
+        %130 = OpCompositeConstruct %main_out %129
+               OpReturnValue %130
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %131 = OpLabel
-        %132 = OpFunctionCall %void %main_1
-        %134 = OpLoad %v4float %x_GLF_color
-        %135 = OpCompositeConstruct %main_out %134
-        %133 = OpFunctionCall %void %tint_symbol_2 %135
+        %132 = OpLabel
+        %133 = OpFunctionCall %main_out %main_inner
+        %134 = OpCompositeExtract %v4float %133 0
+               OpStore %x_GLF_color_1_1 %134
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.spvasm.expected.spvasm
index f4d0f97..33703b6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %76 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
@@ -24,30 +24,30 @@
                OpName %x_112_phi "x_112_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -89,7 +89,7 @@
         %127 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %128 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %129 = OpTypeFunction %void %main_out
+        %129 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
           %a = OpVariable %_ptr_Function_v2float Function %21
@@ -210,20 +210,20 @@
         %124 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %129
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %129
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %133 = OpLabel
-        %134 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %134
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %134 = OpFunctionCall %void %main_1
+        %135 = OpLoad %v4float %x_GLF_color
+        %136 = OpCompositeConstruct %main_out %135
+               OpReturnValue %136
                OpFunctionEnd
        %main = OpFunction %void None %14
-        %136 = OpLabel
-        %137 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %137
-        %138 = OpFunctionCall %void %main_1
-        %140 = OpLoad %v4float %x_GLF_color
-        %141 = OpCompositeConstruct %main_out %140
-        %139 = OpFunctionCall %void %tint_symbol_3 %141
+        %138 = OpLabel
+        %140 = OpLoad %v4float %gl_FragCoord_param_1
+        %139 = OpFunctionCall %main_out %main_inner %140
+        %141 = OpCompositeExtract %v4float %139 0
+               OpStore %x_GLF_color_1_1 %141
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.wgsl.expected.spvasm
index f4d0f97..33703b6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %76 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
@@ -24,30 +24,30 @@
                OpName %x_112_phi "x_112_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -89,7 +89,7 @@
         %127 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %128 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %129 = OpTypeFunction %void %main_out
+        %129 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
           %a = OpVariable %_ptr_Function_v2float Function %21
@@ -210,20 +210,20 @@
         %124 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %129
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %129
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %133 = OpLabel
-        %134 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %134
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %134 = OpFunctionCall %void %main_1
+        %135 = OpLoad %v4float %x_GLF_color
+        %136 = OpCompositeConstruct %main_out %135
+               OpReturnValue %136
                OpFunctionEnd
        %main = OpFunction %void None %14
-        %136 = OpLabel
-        %137 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %137
-        %138 = OpFunctionCall %void %main_1
-        %140 = OpLoad %v4float %x_GLF_color
-        %141 = OpCompositeConstruct %main_out %140
-        %139 = OpFunctionCall %void %tint_symbol_3 %141
+        %138 = OpLabel
+        %140 = OpLoad %v4float %gl_FragCoord_param_1
+        %139 = OpFunctionCall %main_out %main_inner %140
+        %141 = OpCompositeExtract %v4float %139 0
+               OpStore %x_GLF_color_1_1 %141
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.spvasm.expected.spvasm
index 7b4e7d4..03e981e 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 119
+; Bound: 118
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %S "S"
                OpMemberName %S 0 "arr"
                OpName %func_struct_S_i1_2_1_i1_ "func_struct_S_i1_2_1_i1_"
@@ -26,29 +26,28 @@
                OpName %param_1 "param_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
@@ -74,7 +73,7 @@
         %105 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %106 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %107 = OpTypeFunction %void %main_out
+        %107 = OpTypeFunction %main_out
 %func_struct_S_i1_2_1_i1_ = OpFunction %int None %12
           %s = OpFunctionParameter %_ptr_Function_S
           %x = OpFunctionParameter %_ptr_Function_int
@@ -179,18 +178,17 @@
         %100 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %107
-%tint_symbol = OpFunctionParameter %main_out
-        %111 = OpLabel
-        %112 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %112
-               OpReturn
+ %main_inner = OpFunction %main_out None %107
+        %110 = OpLabel
+        %111 = OpFunctionCall %void %main_1
+        %112 = OpLoad %v4float %x_GLF_color
+        %113 = OpCompositeConstruct %main_out %112
+               OpReturnValue %113
                OpFunctionEnd
        %main = OpFunction %void None %45
-        %114 = OpLabel
-        %115 = OpFunctionCall %void %main_1
-        %117 = OpLoad %v4float %x_GLF_color
-        %118 = OpCompositeConstruct %main_out %117
-        %116 = OpFunctionCall %void %tint_symbol_2 %118
+        %115 = OpLabel
+        %116 = OpFunctionCall %main_out %main_inner
+        %117 = OpCompositeExtract %v4float %116 0
+               OpStore %x_GLF_color_1_1 %117
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.wgsl.expected.spvasm
index 7b4e7d4..03e981e 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 119
+; Bound: 118
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %S "S"
                OpMemberName %S 0 "arr"
                OpName %func_struct_S_i1_2_1_i1_ "func_struct_S_i1_2_1_i1_"
@@ -26,29 +26,28 @@
                OpName %param_1 "param_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
@@ -74,7 +73,7 @@
         %105 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %106 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %107 = OpTypeFunction %void %main_out
+        %107 = OpTypeFunction %main_out
 %func_struct_S_i1_2_1_i1_ = OpFunction %int None %12
           %s = OpFunctionParameter %_ptr_Function_S
           %x = OpFunctionParameter %_ptr_Function_int
@@ -179,18 +178,17 @@
         %100 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %107
-%tint_symbol = OpFunctionParameter %main_out
-        %111 = OpLabel
-        %112 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %112
-               OpReturn
+ %main_inner = OpFunction %main_out None %107
+        %110 = OpLabel
+        %111 = OpFunctionCall %void %main_1
+        %112 = OpLoad %v4float %x_GLF_color
+        %113 = OpCompositeConstruct %main_out %112
+               OpReturnValue %113
                OpFunctionEnd
        %main = OpFunction %void None %45
-        %114 = OpLabel
-        %115 = OpFunctionCall %void %main_1
-        %117 = OpLoad %v4float %x_GLF_color
-        %118 = OpCompositeConstruct %main_out %117
-        %116 = OpFunctionCall %void %tint_symbol_2 %118
+        %115 = OpLabel
+        %116 = OpFunctionCall %main_out %main_inner
+        %117 = OpCompositeExtract %v4float %116 0
+               OpStore %x_GLF_color_1_1 %117
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.spvasm.expected.spvasm
index b390aed..f089588 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 79
+; Bound: 78
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
@@ -14,15 +15,14 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "zero"
                OpName %x_9 "x_9"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
@@ -33,12 +33,13 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
@@ -47,8 +48,6 @@
        %buf1 = OpTypeStruct %int
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -69,7 +68,7 @@
 %_ptr_Function_float = OpTypePointer Function %float
 %_ptr_Private_float = OpTypePointer Private %float
    %main_out = OpTypeStruct %v4float
-         %67 = OpTypeFunction %void %main_out
+         %67 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %21
@@ -128,18 +127,17 @@
                OpStore %66 %64
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %67
-%tint_symbol = OpFunctionParameter %main_out
-         %71 = OpLabel
-         %72 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %72
-               OpReturn
+ %main_inner = OpFunction %main_out None %67
+         %70 = OpLabel
+         %71 = OpFunctionCall %void %main_1
+         %72 = OpLoad %v4float %x_GLF_color
+         %73 = OpCompositeConstruct %main_out %72
+               OpReturnValue %73
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %74 = OpLabel
-         %75 = OpFunctionCall %void %main_1
-         %77 = OpLoad %v4float %x_GLF_color
-         %78 = OpCompositeConstruct %main_out %77
-         %76 = OpFunctionCall %void %tint_symbol_2 %78
+         %75 = OpLabel
+         %76 = OpFunctionCall %main_out %main_inner
+         %77 = OpCompositeExtract %v4float %76 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.wgsl.expected.spvasm
index b390aed..f089588 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 79
+; Bound: 78
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
@@ -14,15 +15,14 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "zero"
                OpName %x_9 "x_9"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
@@ -33,12 +33,13 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
@@ -47,8 +48,6 @@
        %buf1 = OpTypeStruct %int
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -69,7 +68,7 @@
 %_ptr_Function_float = OpTypePointer Function %float
 %_ptr_Private_float = OpTypePointer Private %float
    %main_out = OpTypeStruct %v4float
-         %67 = OpTypeFunction %void %main_out
+         %67 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %21
@@ -128,18 +127,17 @@
                OpStore %66 %64
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %67
-%tint_symbol = OpFunctionParameter %main_out
-         %71 = OpLabel
-         %72 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %72
-               OpReturn
+ %main_inner = OpFunction %main_out None %67
+         %70 = OpLabel
+         %71 = OpFunctionCall %void %main_1
+         %72 = OpLoad %v4float %x_GLF_color
+         %73 = OpCompositeConstruct %main_out %72
+               OpReturnValue %73
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %74 = OpLabel
-         %75 = OpFunctionCall %void %main_1
-         %77 = OpLoad %v4float %x_GLF_color
-         %78 = OpCompositeConstruct %main_out %77
-         %76 = OpFunctionCall %void %tint_symbol_2 %78
+         %75 = OpLabel
+         %76 = OpFunctionCall %main_out %main_inner
+         %77 = OpCompositeExtract %v4float %76 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.spvasm.expected.spvasm
index ff2c207..34db9d1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.spvasm.expected.spvasm
@@ -1,46 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 99
+; Bound: 98
 ; Schema: 0
                OpCapability Shader
          %49 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "sequence"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %sum "sum"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
       %v4int = OpTypeVector %int 4
        %buf0 = OpTypeStruct %v4int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %10 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %10
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %10
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
 %_ptr_Function_v4int = OpTypePointer Function %v4int
@@ -64,7 +63,7 @@
          %85 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %86 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %87 = OpTypeFunction %void %main_out
+         %87 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
           %a = OpVariable %_ptr_Function_v4int Function %19
@@ -143,18 +142,17 @@
          %80 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %87
-%tint_symbol = OpFunctionParameter %main_out
-         %91 = OpLabel
-         %92 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %92
-               OpReturn
+ %main_inner = OpFunction %main_out None %87
+         %90 = OpLabel
+         %91 = OpFunctionCall %void %main_1
+         %92 = OpLoad %v4float %x_GLF_color
+         %93 = OpCompositeConstruct %main_out %92
+               OpReturnValue %93
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %94 = OpLabel
-         %95 = OpFunctionCall %void %main_1
-         %97 = OpLoad %v4float %x_GLF_color
-         %98 = OpCompositeConstruct %main_out %97
-         %96 = OpFunctionCall %void %tint_symbol_2 %98
+         %95 = OpLabel
+         %96 = OpFunctionCall %main_out %main_inner
+         %97 = OpCompositeExtract %v4float %96 0
+               OpStore %x_GLF_color_1_1 %97
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.wgsl.expected.spvasm
index ff2c207..34db9d1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.wgsl.expected.spvasm
@@ -1,46 +1,45 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 99
+; Bound: 98
 ; Schema: 0
                OpCapability Shader
          %49 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "sequence"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %sum "sum"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
       %v4int = OpTypeVector %int 4
        %buf0 = OpTypeStruct %v4int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %10 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %10
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %10
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
 %_ptr_Function_v4int = OpTypePointer Function %v4int
@@ -64,7 +63,7 @@
          %85 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %86 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %87 = OpTypeFunction %void %main_out
+         %87 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
           %a = OpVariable %_ptr_Function_v4int Function %19
@@ -143,18 +142,17 @@
          %80 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %87
-%tint_symbol = OpFunctionParameter %main_out
-         %91 = OpLabel
-         %92 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %92
-               OpReturn
+ %main_inner = OpFunction %main_out None %87
+         %90 = OpLabel
+         %91 = OpFunctionCall %void %main_1
+         %92 = OpLoad %v4float %x_GLF_color
+         %93 = OpCompositeConstruct %main_out %92
+               OpReturnValue %93
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %94 = OpLabel
-         %95 = OpFunctionCall %void %main_1
-         %97 = OpLoad %v4float %x_GLF_color
-         %98 = OpCompositeConstruct %main_out %97
-         %96 = OpFunctionCall %void %tint_symbol_2 %98
+         %95 = OpLabel
+         %96 = OpFunctionCall %main_out %main_inner
+         %97 = OpCompositeExtract %v4float %96 0
+               OpStore %x_GLF_color_1_1 %97
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.spvasm.expected.spvasm
index d91ccbe..72aee85 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.spvasm.expected.spvasm
@@ -1,33 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 67
+; Bound: 66
 ; Schema: 0
                OpCapability Shader
          %30 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -35,13 +39,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -52,7 +51,7 @@
       %int_1 = OpConstant %int 1
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %55 = OpTypeFunction %void %main_out
+         %55 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -92,18 +91,17 @@
          %38 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %55
-%tint_symbol = OpFunctionParameter %main_out
-         %59 = OpLabel
-         %60 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %60
-               OpReturn
+ %main_inner = OpFunction %main_out None %55
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %main_1
+         %60 = OpLoad %v4float %x_GLF_color
+         %61 = OpCompositeConstruct %main_out %60
+               OpReturnValue %61
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %62 = OpLabel
-         %63 = OpFunctionCall %void %main_1
-         %65 = OpLoad %v4float %x_GLF_color
-         %66 = OpCompositeConstruct %main_out %65
-         %64 = OpFunctionCall %void %tint_symbol_2 %66
+         %63 = OpLabel
+         %64 = OpFunctionCall %main_out %main_inner
+         %65 = OpCompositeExtract %v4float %64 0
+               OpStore %x_GLF_color_1_1 %65
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.wgsl.expected.spvasm
index d91ccbe..72aee85 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.wgsl.expected.spvasm
@@ -1,33 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 67
+; Bound: 66
 ; Schema: 0
                OpCapability Shader
          %30 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -35,13 +39,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -52,7 +51,7 @@
       %int_1 = OpConstant %int 1
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %55 = OpTypeFunction %void %main_out
+         %55 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -92,18 +91,17 @@
          %38 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %55
-%tint_symbol = OpFunctionParameter %main_out
-         %59 = OpLabel
-         %60 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %60
-               OpReturn
+ %main_inner = OpFunction %main_out None %55
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %main_1
+         %60 = OpLoad %v4float %x_GLF_color
+         %61 = OpCompositeConstruct %main_out %60
+               OpReturnValue %61
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %62 = OpLabel
-         %63 = OpFunctionCall %void %main_1
-         %65 = OpLoad %v4float %x_GLF_color
-         %66 = OpCompositeConstruct %main_out %65
-         %64 = OpFunctionCall %void %tint_symbol_2 %66
+         %63 = OpLabel
+         %64 = OpFunctionCall %main_out %main_inner
+         %65 = OpCompositeExtract %v4float %64 0
+               OpStore %x_GLF_color_1_1 %65
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.spvasm.expected.spvasm
index e78b606..d4230f8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.spvasm.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 74
+; Bound: 73
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "two"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %r "r"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -59,7 +58,7 @@
          %60 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %61 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %62 = OpTypeFunction %void %main_out
+         %62 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %18
@@ -111,18 +110,17 @@
          %55 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %62
-%tint_symbol = OpFunctionParameter %main_out
-         %66 = OpLabel
-         %67 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %67
-               OpReturn
+ %main_inner = OpFunction %main_out None %62
+         %65 = OpLabel
+         %66 = OpFunctionCall %void %main_1
+         %67 = OpLoad %v4float %x_GLF_color
+         %68 = OpCompositeConstruct %main_out %67
+               OpReturnValue %68
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %69 = OpLabel
-         %70 = OpFunctionCall %void %main_1
-         %72 = OpLoad %v4float %x_GLF_color
-         %73 = OpCompositeConstruct %main_out %72
-         %71 = OpFunctionCall %void %tint_symbol_2 %73
+         %70 = OpLabel
+         %71 = OpFunctionCall %main_out %main_inner
+         %72 = OpCompositeExtract %v4float %71 0
+               OpStore %x_GLF_color_1_1 %72
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.wgsl.expected.spvasm
index e78b606..d4230f8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 74
+; Bound: 73
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "two"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %r "r"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -59,7 +58,7 @@
          %60 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %61 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %62 = OpTypeFunction %void %main_out
+         %62 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %18
@@ -111,18 +110,17 @@
          %55 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %62
-%tint_symbol = OpFunctionParameter %main_out
-         %66 = OpLabel
-         %67 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %67
-               OpReturn
+ %main_inner = OpFunction %main_out None %62
+         %65 = OpLabel
+         %66 = OpFunctionCall %void %main_1
+         %67 = OpLoad %v4float %x_GLF_color
+         %68 = OpCompositeConstruct %main_out %67
+               OpReturnValue %68
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %69 = OpLabel
-         %70 = OpFunctionCall %void %main_1
-         %72 = OpLoad %v4float %x_GLF_color
-         %73 = OpCompositeConstruct %main_out %72
-         %71 = OpFunctionCall %void %tint_symbol_2 %73
+         %70 = OpLabel
+         %71 = OpFunctionCall %main_out %main_inner
+         %72 = OpCompositeExtract %v4float %71 0
+               OpStore %x_GLF_color_1_1 %72
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.spvasm.expected.spvasm
index 68fb1d7..63344c9 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.spvasm.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "two"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
        %buf0 = OpTypeStruct %uint
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -51,7 +50,7 @@
          %34 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %35 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %36 = OpTypeFunction %void %main_out
+         %36 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_uint Function %18
@@ -72,18 +71,17 @@
          %29 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %36
-%tint_symbol = OpFunctionParameter %main_out
-         %40 = OpLabel
-         %41 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %41
-               OpReturn
+ %main_inner = OpFunction %main_out None %36
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %main_1
+         %41 = OpLoad %v4float %x_GLF_color
+         %42 = OpCompositeConstruct %main_out %41
+               OpReturnValue %42
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %main_1
-         %46 = OpLoad %v4float %x_GLF_color
-         %47 = OpCompositeConstruct %main_out %46
-         %45 = OpFunctionCall %void %tint_symbol_2 %47
+         %44 = OpLabel
+         %45 = OpFunctionCall %main_out %main_inner
+         %46 = OpCompositeExtract %v4float %45 0
+               OpStore %x_GLF_color_1_1 %46
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.wgsl.expected.spvasm
index 68fb1d7..63344c9 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 48
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "two"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
        %buf0 = OpTypeStruct %uint
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -51,7 +50,7 @@
          %34 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %35 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %36 = OpTypeFunction %void %main_out
+         %36 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_uint Function %18
@@ -72,18 +71,17 @@
          %29 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %36
-%tint_symbol = OpFunctionParameter %main_out
-         %40 = OpLabel
-         %41 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %41
-               OpReturn
+ %main_inner = OpFunction %main_out None %36
+         %39 = OpLabel
+         %40 = OpFunctionCall %void %main_1
+         %41 = OpLoad %v4float %x_GLF_color
+         %42 = OpCompositeConstruct %main_out %41
+               OpReturnValue %42
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %main_1
-         %46 = OpLoad %v4float %x_GLF_color
-         %47 = OpCompositeConstruct %main_out %46
-         %45 = OpFunctionCall %void %tint_symbol_2 %47
+         %44 = OpLabel
+         %45 = OpFunctionCall %main_out %main_inner
+         %46 = OpCompositeExtract %v4float %45 0
+               OpStore %x_GLF_color_1_1 %46
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.spvasm.expected.spvasm
index fb9d73a..442a5a1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.spvasm.expected.spvasm
@@ -1,33 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 89
+; Bound: 88
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -35,13 +39,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -52,7 +51,7 @@
       %int_0 = OpConstant %int 0
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %77 = OpTypeFunction %void %main_out
+         %77 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -127,18 +126,17 @@
          %58 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %77
-%tint_symbol = OpFunctionParameter %main_out
-         %81 = OpLabel
-         %82 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %82
-               OpReturn
+ %main_inner = OpFunction %main_out None %77
+         %80 = OpLabel
+         %81 = OpFunctionCall %void %main_1
+         %82 = OpLoad %v4float %x_GLF_color
+         %83 = OpCompositeConstruct %main_out %82
+               OpReturnValue %83
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %84 = OpLabel
-         %85 = OpFunctionCall %void %main_1
-         %87 = OpLoad %v4float %x_GLF_color
-         %88 = OpCompositeConstruct %main_out %87
-         %86 = OpFunctionCall %void %tint_symbol_2 %88
+         %85 = OpLabel
+         %86 = OpFunctionCall %main_out %main_inner
+         %87 = OpCompositeExtract %v4float %86 0
+               OpStore %x_GLF_color_1_1 %87
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.wgsl.expected.spvasm
index fb9d73a..442a5a1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.wgsl.expected.spvasm
@@ -1,33 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 89
+; Bound: 88
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -35,13 +39,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -52,7 +51,7 @@
       %int_0 = OpConstant %int 0
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %77 = OpTypeFunction %void %main_out
+         %77 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -127,18 +126,17 @@
          %58 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %77
-%tint_symbol = OpFunctionParameter %main_out
-         %81 = OpLabel
-         %82 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %82
-               OpReturn
+ %main_inner = OpFunction %main_out None %77
+         %80 = OpLabel
+         %81 = OpFunctionCall %void %main_1
+         %82 = OpLoad %v4float %x_GLF_color
+         %83 = OpCompositeConstruct %main_out %82
+               OpReturnValue %83
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %84 = OpLabel
-         %85 = OpFunctionCall %void %main_1
-         %87 = OpLoad %v4float %x_GLF_color
-         %88 = OpCompositeConstruct %main_out %87
-         %86 = OpFunctionCall %void %tint_symbol_2 %88
+         %85 = OpLabel
+         %86 = OpFunctionCall %main_out %main_inner
+         %87 = OpCompositeExtract %v4float %86 0
+               OpStore %x_GLF_color_1_1 %87
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.spvasm.expected.spvasm
index d6a625f..9387060 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.spvasm.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
          %24 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "three"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -53,7 +52,7 @@
          %36 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %37 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %38 = OpTypeFunction %void %main_out
+         %38 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %17
@@ -74,18 +73,17 @@
          %31 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %38
-%tint_symbol = OpFunctionParameter %main_out
-         %42 = OpLabel
-         %43 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %43
-               OpReturn
+ %main_inner = OpFunction %main_out None %38
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %main_1
+         %43 = OpLoad %v4float %x_GLF_color
+         %44 = OpCompositeConstruct %main_out %43
+               OpReturnValue %44
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %main_1
-         %48 = OpLoad %v4float %x_GLF_color
-         %49 = OpCompositeConstruct %main_out %48
-         %47 = OpFunctionCall %void %tint_symbol_2 %49
+         %46 = OpLabel
+         %47 = OpFunctionCall %main_out %main_inner
+         %48 = OpCompositeExtract %v4float %47 0
+               OpStore %x_GLF_color_1_1 %48
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.wgsl.expected.spvasm
index d6a625f..9387060 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
          %24 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "three"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -53,7 +52,7 @@
          %36 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %37 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %38 = OpTypeFunction %void %main_out
+         %38 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %17
@@ -74,18 +73,17 @@
          %31 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %38
-%tint_symbol = OpFunctionParameter %main_out
-         %42 = OpLabel
-         %43 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %43
-               OpReturn
+ %main_inner = OpFunction %main_out None %38
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %main_1
+         %43 = OpLoad %v4float %x_GLF_color
+         %44 = OpCompositeConstruct %main_out %43
+               OpReturnValue %44
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %main_1
-         %48 = OpLoad %v4float %x_GLF_color
-         %49 = OpCompositeConstruct %main_out %48
-         %47 = OpFunctionCall %void %tint_symbol_2 %49
+         %46 = OpLabel
+         %47 = OpFunctionCall %main_out %main_inner
+         %48 = OpCompositeExtract %v4float %47 0
+               OpStore %x_GLF_color_1_1 %48
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.spvasm.expected.spvasm
index a003ea9..545f9e7 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.spvasm.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 146
+; Bound: 145
 ; Schema: 0
                OpCapability Shader
          %65 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %A "A"
@@ -24,18 +24,22 @@
                OpName %x_98_phi "x_98_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_5 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_4 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
@@ -43,13 +47,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -71,7 +70,7 @@
     %float_1 = OpConstant %float 1
         %133 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-        %134 = OpTypeFunction %void %main_out
+        %134 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %21
@@ -212,18 +211,17 @@
         %116 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %134
-%tint_symbol = OpFunctionParameter %main_out
-        %138 = OpLabel
-        %139 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %139
-               OpReturn
+ %main_inner = OpFunction %main_out None %134
+        %137 = OpLabel
+        %138 = OpFunctionCall %void %main_1
+        %139 = OpLoad %v4float %x_GLF_color
+        %140 = OpCompositeConstruct %main_out %139
+               OpReturnValue %140
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %141 = OpLabel
-        %142 = OpFunctionCall %void %main_1
-        %144 = OpLoad %v4float %x_GLF_color
-        %145 = OpCompositeConstruct %main_out %144
-        %143 = OpFunctionCall %void %tint_symbol_2 %145
+        %142 = OpLabel
+        %143 = OpFunctionCall %main_out %main_inner
+        %144 = OpCompositeExtract %v4float %143 0
+               OpStore %x_GLF_color_1_1 %144
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.wgsl.expected.spvasm
index a003ea9..545f9e7 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.wgsl.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 146
+; Bound: 145
 ; Schema: 0
                OpCapability Shader
          %65 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %A "A"
@@ -24,18 +24,22 @@
                OpName %x_98_phi "x_98_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_5 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_4 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
@@ -43,13 +47,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -71,7 +70,7 @@
     %float_1 = OpConstant %float 1
         %133 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-        %134 = OpTypeFunction %void %main_out
+        %134 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %21
@@ -212,18 +211,17 @@
         %116 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %134
-%tint_symbol = OpFunctionParameter %main_out
-        %138 = OpLabel
-        %139 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %139
-               OpReturn
+ %main_inner = OpFunction %main_out None %134
+        %137 = OpLabel
+        %138 = OpFunctionCall %void %main_1
+        %139 = OpLoad %v4float %x_GLF_color
+        %140 = OpCompositeConstruct %main_out %139
+               OpReturnValue %140
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %141 = OpLabel
-        %142 = OpFunctionCall %void %main_1
-        %144 = OpLoad %v4float %x_GLF_color
-        %145 = OpCompositeConstruct %main_out %144
-        %143 = OpFunctionCall %void %tint_symbol_2 %145
+        %142 = OpLabel
+        %143 = OpFunctionCall %main_out %main_inner
+        %144 = OpCompositeExtract %v4float %143 0
+               OpStore %x_GLF_color_1_1 %144
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.spvasm.expected.spvasm
index d891a6e..672cc23 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 70
+; Bound: 69
 ; Schema: 0
                OpCapability Shader
          %34 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,14 +16,13 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -35,27 +35,26 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf0 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
      %uint_1 = OpConstant %uint 1
 %_arr_int_uint_1 = OpTypeArray %int %uint_1
        %buf1 = OpTypeStruct %_arr_int_uint_1
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -67,7 +66,7 @@
        %bool = OpTypeBool
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %58 = OpTypeFunction %void %main_out
+         %58 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %26
@@ -104,18 +103,17 @@
          %43 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %58
-%tint_symbol = OpFunctionParameter %main_out
-         %62 = OpLabel
-         %63 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %63
-               OpReturn
+ %main_inner = OpFunction %main_out None %58
+         %61 = OpLabel
+         %62 = OpFunctionCall %void %main_1
+         %63 = OpLoad %v4float %x_GLF_color
+         %64 = OpCompositeConstruct %main_out %63
+               OpReturnValue %64
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %65 = OpLabel
-         %66 = OpFunctionCall %void %main_1
-         %68 = OpLoad %v4float %x_GLF_color
-         %69 = OpCompositeConstruct %main_out %68
-         %67 = OpFunctionCall %void %tint_symbol_2 %69
+         %66 = OpLabel
+         %67 = OpFunctionCall %main_out %main_inner
+         %68 = OpCompositeExtract %v4float %67 0
+               OpStore %x_GLF_color_1_1 %68
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.wgsl.expected.spvasm
index a904efa..84c77ba 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 66
+; Bound: 65
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -14,14 +15,13 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -34,27 +34,26 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf0 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %11 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %11
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
      %uint_1 = OpConstant %uint 1
 %_arr_int_uint_1 = OpTypeArray %int %uint_1
        %buf1 = OpTypeStruct %_arr_int_uint_1
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %11
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -66,7 +65,7 @@
        %bool = OpTypeBool
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %54 = OpTypeFunction %void %main_out
+         %54 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %26
@@ -100,18 +99,17 @@
          %39 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %54
-%tint_symbol = OpFunctionParameter %main_out
-         %58 = OpLabel
-         %59 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %59
-               OpReturn
+ %main_inner = OpFunction %main_out None %54
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %main_1
+         %59 = OpLoad %v4float %x_GLF_color
+         %60 = OpCompositeConstruct %main_out %59
+               OpReturnValue %60
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %61 = OpLabel
-         %62 = OpFunctionCall %void %main_1
-         %64 = OpLoad %v4float %x_GLF_color
-         %65 = OpCompositeConstruct %main_out %64
-         %63 = OpFunctionCall %void %tint_symbol_2 %65
+         %62 = OpLabel
+         %63 = OpFunctionCall %main_out %main_inner
+         %64 = OpCompositeExtract %v4float %63 0
+               OpStore %x_GLF_color_1_1 %64
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.spvasm.expected.spvasm
index 4cc9182..144e579 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.spvasm.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 61
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
          %40 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %res "res"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -56,11 +55,11 @@
          %47 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %48 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %49 = OpTypeFunction %void %main_out
+         %49 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
-          %v = OpVariable %_ptr_Function_v4float Function %8
-        %res = OpVariable %_ptr_Function_v4float Function %8
+          %v = OpVariable %_ptr_Function_v4float Function %5
+        %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %v %22
          %26 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0
          %27 = OpLoad %float %26
@@ -87,18 +86,17 @@
          %44 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %49
-%tint_symbol = OpFunctionParameter %main_out
-         %53 = OpLabel
-         %54 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %54
-               OpReturn
+ %main_inner = OpFunction %main_out None %49
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %main_1
+         %54 = OpLoad %v4float %x_GLF_color
+         %55 = OpCompositeConstruct %main_out %54
+               OpReturnValue %55
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %main_1
-         %59 = OpLoad %v4float %x_GLF_color
-         %60 = OpCompositeConstruct %main_out %59
-         %58 = OpFunctionCall %void %tint_symbol_2 %60
+         %57 = OpLabel
+         %58 = OpFunctionCall %main_out %main_inner
+         %59 = OpCompositeExtract %v4float %58 0
+               OpStore %x_GLF_color_1_1 %59
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.wgsl.expected.spvasm
index 4cc9182..144e579 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 61
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
          %40 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %res "res"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -56,11 +55,11 @@
          %47 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %48 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %49 = OpTypeFunction %void %main_out
+         %49 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
-          %v = OpVariable %_ptr_Function_v4float Function %8
-        %res = OpVariable %_ptr_Function_v4float Function %8
+          %v = OpVariable %_ptr_Function_v4float Function %5
+        %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %v %22
          %26 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0
          %27 = OpLoad %float %26
@@ -87,18 +86,17 @@
          %44 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %49
-%tint_symbol = OpFunctionParameter %main_out
-         %53 = OpLabel
-         %54 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %54
-               OpReturn
+ %main_inner = OpFunction %main_out None %49
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %main_1
+         %54 = OpLoad %v4float %x_GLF_color
+         %55 = OpCompositeConstruct %main_out %54
+               OpReturnValue %55
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %main_1
-         %59 = OpLoad %v4float %x_GLF_color
-         %60 = OpCompositeConstruct %main_out %59
-         %58 = OpFunctionCall %void %tint_symbol_2 %60
+         %57 = OpLabel
+         %58 = OpFunctionCall %main_out %main_inner
+         %59 = OpCompositeExtract %v4float %58 0
+               OpStore %x_GLF_color_1_1 %59
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.spvasm.expected.spvasm
index 843780c..569ffc6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.spvasm.expected.spvasm
@@ -5,45 +5,45 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "three"
                OpName %x_6 "x_6"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_36 "x_36"
                OpName %x_37_phi "x_37_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -61,7 +61,7 @@
          %47 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %48 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %49 = OpTypeFunction %void %main_out
+         %49 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %x_36 = OpVariable %_ptr_Function_bool Function %22
@@ -94,20 +94,20 @@
          %42 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %49
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %49
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %53 = OpLabel
-         %54 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %54
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %54 = OpFunctionCall %void %main_1
+         %55 = OpLoad %v4float %x_GLF_color
+         %56 = OpCompositeConstruct %main_out %55
+               OpReturnValue %56
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %56 = OpLabel
-         %57 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %57
-         %58 = OpFunctionCall %void %main_1
-         %60 = OpLoad %v4float %x_GLF_color
-         %61 = OpCompositeConstruct %main_out %60
-         %59 = OpFunctionCall %void %tint_symbol_3 %61
+         %58 = OpLabel
+         %60 = OpLoad %v4float %gl_FragCoord_param_1
+         %59 = OpFunctionCall %main_out %main_inner %60
+         %61 = OpCompositeExtract %v4float %59 0
+               OpStore %x_GLF_color_1_1 %61
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.wgsl.expected.spvasm
index 843780c..569ffc6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.wgsl.expected.spvasm
@@ -5,45 +5,45 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "three"
                OpName %x_6 "x_6"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_36 "x_36"
                OpName %x_37_phi "x_37_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -61,7 +61,7 @@
          %47 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %48 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %49 = OpTypeFunction %void %main_out
+         %49 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %x_36 = OpVariable %_ptr_Function_bool Function %22
@@ -94,20 +94,20 @@
          %42 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %49
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %49
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %53 = OpLabel
-         %54 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %54
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %54 = OpFunctionCall %void %main_1
+         %55 = OpLoad %v4float %x_GLF_color
+         %56 = OpCompositeConstruct %main_out %55
+               OpReturnValue %56
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %56 = OpLabel
-         %57 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %57
-         %58 = OpFunctionCall %void %main_1
-         %60 = OpLoad %v4float %x_GLF_color
-         %61 = OpCompositeConstruct %main_out %60
-         %59 = OpFunctionCall %void %tint_symbol_3 %61
+         %58 = OpLabel
+         %60 = OpLoad %v4float %gl_FragCoord_param_1
+         %59 = OpFunctionCall %main_out %main_inner %60
+         %61 = OpCompositeExtract %v4float %59 0
+               OpStore %x_GLF_color_1_1 %61
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.spvasm.expected.spvasm
index 599a2ed..c892aaa 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.spvasm.expected.spvasm
@@ -1,31 +1,35 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 61
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -33,13 +37,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -48,7 +47,7 @@
       %int_1 = OpConstant %int 1
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %49 = OpTypeFunction %void %main_out
+         %49 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
          %22 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0
@@ -84,18 +83,17 @@
          %29 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %49
-%tint_symbol = OpFunctionParameter %main_out
-         %53 = OpLabel
-         %54 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %54
-               OpReturn
+ %main_inner = OpFunction %main_out None %49
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %main_1
+         %54 = OpLoad %v4float %x_GLF_color
+         %55 = OpCompositeConstruct %main_out %54
+               OpReturnValue %55
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %main_1
-         %59 = OpLoad %v4float %x_GLF_color
-         %60 = OpCompositeConstruct %main_out %59
-         %58 = OpFunctionCall %void %tint_symbol_2 %60
+         %57 = OpLabel
+         %58 = OpFunctionCall %main_out %main_inner
+         %59 = OpCompositeExtract %v4float %58 0
+               OpStore %x_GLF_color_1_1 %59
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.wgsl.expected.spvasm
index 599a2ed..c892aaa 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.wgsl.expected.spvasm
@@ -1,31 +1,35 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 61
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -33,13 +37,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -48,7 +47,7 @@
       %int_1 = OpConstant %int 1
        %bool = OpTypeBool
    %main_out = OpTypeStruct %v4float
-         %49 = OpTypeFunction %void %main_out
+         %49 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
          %22 = OpAccessChain %_ptr_Uniform_int %x_5 %uint_0 %int_0
@@ -84,18 +83,17 @@
          %29 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %49
-%tint_symbol = OpFunctionParameter %main_out
-         %53 = OpLabel
-         %54 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %54
-               OpReturn
+ %main_inner = OpFunction %main_out None %49
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %main_1
+         %54 = OpLoad %v4float %x_GLF_color
+         %55 = OpCompositeConstruct %main_out %54
+               OpReturnValue %55
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %main_1
-         %59 = OpLoad %v4float %x_GLF_color
-         %60 = OpCompositeConstruct %main_out %59
-         %58 = OpFunctionCall %void %tint_symbol_2 %60
+         %57 = OpLabel
+         %58 = OpFunctionCall %main_out %main_inner
+         %59 = OpCompositeExtract %v4float %58 0
+               OpStore %x_GLF_color_1_1 %59
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.spvasm.expected.spvasm
index abf3dc1..de4a4bc 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.spvasm.expected.spvasm
@@ -1,44 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
          %22 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_31 "x_31"
                OpName %x_32_phi "x_32_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -54,7 +53,7 @@
          %43 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %44 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-         %45 = OpTypeFunction %void %main_out
+         %45 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
        %x_31 = OpVariable %_ptr_Function_bool Function %19
@@ -87,18 +86,17 @@
          %39 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %45
-%tint_symbol = OpFunctionParameter %main_out
-         %49 = OpLabel
-         %50 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %50
-               OpReturn
+ %main_inner = OpFunction %main_out None %45
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %main_1
+         %50 = OpLoad %v4float %x_GLF_color
+         %51 = OpCompositeConstruct %main_out %50
+               OpReturnValue %51
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %main_1
-         %55 = OpLoad %v4float %x_GLF_color
-         %56 = OpCompositeConstruct %main_out %55
-         %54 = OpFunctionCall %void %tint_symbol_2 %56
+         %53 = OpLabel
+         %54 = OpFunctionCall %main_out %main_inner
+         %55 = OpCompositeExtract %v4float %54 0
+               OpStore %x_GLF_color_1_1 %55
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.wgsl.expected.spvasm
index abf3dc1..de4a4bc 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.wgsl.expected.spvasm
@@ -1,44 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
          %22 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_31 "x_31"
                OpName %x_32_phi "x_32_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -54,7 +53,7 @@
          %43 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %44 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-         %45 = OpTypeFunction %void %main_out
+         %45 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
        %x_31 = OpVariable %_ptr_Function_bool Function %19
@@ -87,18 +86,17 @@
          %39 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %45
-%tint_symbol = OpFunctionParameter %main_out
-         %49 = OpLabel
-         %50 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %50
-               OpReturn
+ %main_inner = OpFunction %main_out None %45
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %main_1
+         %50 = OpLoad %v4float %x_GLF_color
+         %51 = OpCompositeConstruct %main_out %50
+               OpReturnValue %51
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %main_1
-         %55 = OpLoad %v4float %x_GLF_color
-         %56 = OpCompositeConstruct %main_out %55
-         %54 = OpFunctionCall %void %tint_symbol_2 %56
+         %53 = OpLabel
+         %54 = OpFunctionCall %main_out %main_inner
+         %55 = OpCompositeExtract %v4float %54 0
+               OpStore %x_GLF_color_1_1 %55
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-smoothstep-undef/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-smoothstep-undef/0-opt.spvasm.expected.spvasm
index d020f59..225383a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-smoothstep-undef/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-smoothstep-undef/0-opt.spvasm.expected.spvasm
@@ -5,45 +5,45 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %x_49 "x_49"
                OpName %x_50_phi "x_50_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -62,7 +62,7 @@
          %63 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %64 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %65 = OpTypeFunction %void %main_out
+         %65 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %20
@@ -121,20 +121,20 @@
          %60 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %65
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %65
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %69 = OpLabel
-         %70 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %70
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %70 = OpFunctionCall %void %main_1
+         %71 = OpLoad %v4float %x_GLF_color
+         %72 = OpCompositeConstruct %main_out %71
+               OpReturnValue %72
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %72 = OpLabel
-         %73 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %73
-         %74 = OpFunctionCall %void %main_1
-         %76 = OpLoad %v4float %x_GLF_color
-         %77 = OpCompositeConstruct %main_out %76
-         %75 = OpFunctionCall %void %tint_symbol_3 %77
+         %74 = OpLabel
+         %76 = OpLoad %v4float %gl_FragCoord_param_1
+         %75 = OpFunctionCall %main_out %main_inner %76
+         %77 = OpCompositeExtract %v4float %75 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-simplify-smoothstep-undef/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-simplify-smoothstep-undef/0-opt.wgsl.expected.spvasm
index 482cbf2..5e2138f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-simplify-smoothstep-undef/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-simplify-smoothstep-undef/0-opt.wgsl.expected.spvasm
@@ -5,45 +5,45 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %x_49 "x_49"
                OpName %x_50_phi "x_50_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -62,7 +62,7 @@
          %63 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %64 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %65 = OpTypeFunction %void %main_out
+         %65 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %20
@@ -121,20 +121,20 @@
          %60 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %65
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %65
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %69 = OpLabel
-         %70 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %70
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %70 = OpFunctionCall %void %main_1
+         %71 = OpLoad %v4float %x_GLF_color
+         %72 = OpCompositeConstruct %main_out %71
+               OpReturnValue %72
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %72 = OpLabel
-         %73 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %73
-         %74 = OpFunctionCall %void %main_1
-         %76 = OpLoad %v4float %x_GLF_color
-         %77 = OpCompositeConstruct %main_out %76
-         %75 = OpFunctionCall %void %tint_symbol_3 %77
+         %74 = OpLabel
+         %76 = OpLoad %v4float %gl_FragCoord_param_1
+         %75 = OpFunctionCall %main_out %main_inner %76
+         %77 = OpCompositeExtract %v4float %75 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.spvasm.expected.spvasm
index f217e59..5665b3a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 131
+; Bound: 130
 ; Schema: 0
                OpCapability Shader
          %85 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_7 "x_7"
@@ -15,7 +16,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %f1_vf2_ "f1_vf2_"
                OpName %v1 "v1"
                OpName %x_99 "x_99"
@@ -28,9 +28,9 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -43,9 +43,12 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -57,12 +60,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v2float = OpTypeVector %float 2
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %19 = OpTypeFunction %int %_ptr_Function_v2float
@@ -85,7 +84,7 @@
 %_ptr_Function_int = OpTypePointer Function %int
          %72 = OpConstantNull %int
    %main_out = OpTypeStruct %v4float
-        %119 = OpTypeFunction %void %main_out
+        %119 = OpTypeFunction %main_out
     %f1_vf2_ = OpFunction %int None %19
          %v1 = OpFunctionParameter %_ptr_Function_v2float
          %24 = OpLabel
@@ -185,18 +184,17 @@
         %103 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %119
-%tint_symbol = OpFunctionParameter %main_out
-        %123 = OpLabel
-        %124 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %124
-               OpReturn
+ %main_inner = OpFunction %main_out None %119
+        %122 = OpLabel
+        %123 = OpFunctionCall %void %main_1
+        %124 = OpLoad %v4float %x_GLF_color
+        %125 = OpCompositeConstruct %main_out %124
+               OpReturnValue %125
                OpFunctionEnd
        %main = OpFunction %void None %59
-        %126 = OpLabel
-        %127 = OpFunctionCall %void %main_1
-        %129 = OpLoad %v4float %x_GLF_color
-        %130 = OpCompositeConstruct %main_out %129
-        %128 = OpFunctionCall %void %tint_symbol_2 %130
+        %127 = OpLabel
+        %128 = OpFunctionCall %main_out %main_inner
+        %129 = OpCompositeExtract %v4float %128 0
+               OpStore %x_GLF_color_1_1 %129
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.wgsl.expected.spvasm
index f217e59..5665b3a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 131
+; Bound: 130
 ; Schema: 0
                OpCapability Shader
          %85 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_7 "x_7"
@@ -15,7 +16,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %f1_vf2_ "f1_vf2_"
                OpName %v1 "v1"
                OpName %x_99 "x_99"
@@ -28,9 +28,9 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -43,9 +43,12 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -57,12 +60,8 @@
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v2float = OpTypeVector %float 2
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %19 = OpTypeFunction %int %_ptr_Function_v2float
@@ -85,7 +84,7 @@
 %_ptr_Function_int = OpTypePointer Function %int
          %72 = OpConstantNull %int
    %main_out = OpTypeStruct %v4float
-        %119 = OpTypeFunction %void %main_out
+        %119 = OpTypeFunction %main_out
     %f1_vf2_ = OpFunction %int None %19
          %v1 = OpFunctionParameter %_ptr_Function_v2float
          %24 = OpLabel
@@ -185,18 +184,17 @@
         %103 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %119
-%tint_symbol = OpFunctionParameter %main_out
-        %123 = OpLabel
-        %124 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %124
-               OpReturn
+ %main_inner = OpFunction %main_out None %119
+        %122 = OpLabel
+        %123 = OpFunctionCall %void %main_1
+        %124 = OpLoad %v4float %x_GLF_color
+        %125 = OpCompositeConstruct %main_out %124
+               OpReturnValue %125
                OpFunctionEnd
        %main = OpFunction %void None %59
-        %126 = OpLabel
-        %127 = OpFunctionCall %void %main_1
-        %129 = OpLoad %v4float %x_GLF_color
-        %130 = OpCompositeConstruct %main_out %129
-        %128 = OpFunctionCall %void %tint_symbol_2 %130
+        %127 = OpLabel
+        %128 = OpFunctionCall %main_out %main_inner
+        %129 = OpCompositeExtract %v4float %128 0
+               OpStore %x_GLF_color_1_1 %129
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.spvasm.expected.spvasm
index e43ed3b..b68b113 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.spvasm.expected.spvasm
@@ -1,47 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 83
+; Bound: 82
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %g "g"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
 %_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-          %g = OpVariable %_ptr_Private_int Private %4
-      %float = OpTypeFloat 32
+          %9 = OpConstantNull %int
+          %g = OpVariable %_ptr_Private_int Private %9
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %13 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %13
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %13
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -59,10 +58,10 @@
          %69 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %70 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %71 = OpTypeFunction %void %main_out
+         %71 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %16
          %19 = OpLabel
-          %a = OpVariable %_ptr_Function_int Function %4
+          %a = OpVariable %_ptr_Function_int Function %9
                OpStore %g %int_0
                OpBranch %23
          %23 = OpLabel
@@ -130,18 +129,17 @@
          %64 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %71
-%tint_symbol = OpFunctionParameter %main_out
-         %75 = OpLabel
-         %76 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %76
-               OpReturn
+ %main_inner = OpFunction %main_out None %71
+         %74 = OpLabel
+         %75 = OpFunctionCall %void %main_1
+         %76 = OpLoad %v4float %x_GLF_color
+         %77 = OpCompositeConstruct %main_out %76
+               OpReturnValue %77
                OpFunctionEnd
        %main = OpFunction %void None %16
-         %78 = OpLabel
-         %79 = OpFunctionCall %void %main_1
-         %81 = OpLoad %v4float %x_GLF_color
-         %82 = OpCompositeConstruct %main_out %81
-         %80 = OpFunctionCall %void %tint_symbol_2 %82
+         %79 = OpLabel
+         %80 = OpFunctionCall %main_out %main_inner
+         %81 = OpCompositeExtract %v4float %80 0
+               OpStore %x_GLF_color_1_1 %81
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.wgsl.expected.spvasm
index e43ed3b..b68b113 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.wgsl.expected.spvasm
@@ -1,47 +1,46 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 83
+; Bound: 82
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %g "g"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
 %_ptr_Private_int = OpTypePointer Private %int
-          %4 = OpConstantNull %int
-          %g = OpVariable %_ptr_Private_int Private %4
-      %float = OpTypeFloat 32
+          %9 = OpConstantNull %int
+          %g = OpVariable %_ptr_Private_int Private %9
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %13 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %13
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %13
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -59,10 +58,10 @@
          %69 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %70 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %71 = OpTypeFunction %void %main_out
+         %71 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %16
          %19 = OpLabel
-          %a = OpVariable %_ptr_Function_int Function %4
+          %a = OpVariable %_ptr_Function_int Function %9
                OpStore %g %int_0
                OpBranch %23
          %23 = OpLabel
@@ -130,18 +129,17 @@
          %64 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %71
-%tint_symbol = OpFunctionParameter %main_out
-         %75 = OpLabel
-         %76 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %76
-               OpReturn
+ %main_inner = OpFunction %main_out None %71
+         %74 = OpLabel
+         %75 = OpFunctionCall %void %main_1
+         %76 = OpLoad %v4float %x_GLF_color
+         %77 = OpCompositeConstruct %main_out %76
+               OpReturnValue %77
                OpFunctionEnd
        %main = OpFunction %void None %16
-         %78 = OpLabel
-         %79 = OpFunctionCall %void %main_1
-         %81 = OpLoad %v4float %x_GLF_color
-         %82 = OpCompositeConstruct %main_out %81
-         %80 = OpFunctionCall %void %tint_symbol_2 %82
+         %79 = OpLabel
+         %80 = OpFunctionCall %main_out %main_inner
+         %81 = OpCompositeExtract %v4float %80 0
+               OpStore %x_GLF_color_1_1 %81
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.spvasm.expected.spvasm
index 7cba6b7..0bb051b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 110
+; Bound: 109
 ; Schema: 0
                OpCapability Shader
          %47 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v1 "v1"
                OpName %v2 "v2"
@@ -24,9 +24,9 @@
                OpName %x_67_phi "x_67_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_4 ArrayStride 16
@@ -39,9 +39,12 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
 %_arr_float_uint_4 = OpTypeArray %float %uint_4
@@ -54,12 +57,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -82,7 +81,7 @@
 %_ptr_Function_float = OpTypePointer Function %float
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %98 = OpTypeFunction %void %main_out
+         %98 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
          %v1 = OpVariable %_ptr_Function_v2float Function %27
@@ -157,18 +156,17 @@
          %78 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %98
-%tint_symbol = OpFunctionParameter %main_out
-        %102 = OpLabel
-        %103 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %103
-               OpReturn
+ %main_inner = OpFunction %main_out None %98
+        %101 = OpLabel
+        %102 = OpFunctionCall %void %main_1
+        %103 = OpLoad %v4float %x_GLF_color
+        %104 = OpCompositeConstruct %main_out %103
+               OpReturnValue %104
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %105 = OpLabel
-        %106 = OpFunctionCall %void %main_1
-        %108 = OpLoad %v4float %x_GLF_color
-        %109 = OpCompositeConstruct %main_out %108
-        %107 = OpFunctionCall %void %tint_symbol_2 %109
+        %106 = OpLabel
+        %107 = OpFunctionCall %main_out %main_inner
+        %108 = OpCompositeExtract %v4float %107 0
+               OpStore %x_GLF_color_1_1 %108
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.wgsl.expected.spvasm
index 7cba6b7..0bb051b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 110
+; Bound: 109
 ; Schema: 0
                OpCapability Shader
          %47 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v1 "v1"
                OpName %v2 "v2"
@@ -24,9 +24,9 @@
                OpName %x_67_phi "x_67_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_4 ArrayStride 16
@@ -39,9 +39,12 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
 %_arr_float_uint_4 = OpTypeArray %float %uint_4
@@ -54,12 +57,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -82,7 +81,7 @@
 %_ptr_Function_float = OpTypePointer Function %float
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %98 = OpTypeFunction %void %main_out
+         %98 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
          %v1 = OpVariable %_ptr_Function_v2float Function %27
@@ -157,18 +156,17 @@
          %78 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %98
-%tint_symbol = OpFunctionParameter %main_out
-        %102 = OpLabel
-        %103 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %103
-               OpReturn
+ %main_inner = OpFunction %main_out None %98
+        %101 = OpLabel
+        %102 = OpFunctionCall %void %main_1
+        %103 = OpLoad %v4float %x_GLF_color
+        %104 = OpCompositeConstruct %main_out %103
+               OpReturnValue %104
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %105 = OpLabel
-        %106 = OpFunctionCall %void %main_1
-        %108 = OpLoad %v4float %x_GLF_color
-        %109 = OpCompositeConstruct %main_out %108
-        %107 = OpFunctionCall %void %tint_symbol_2 %109
+        %106 = OpLabel
+        %107 = OpFunctionCall %main_out %main_inner
+        %108 = OpCompositeExtract %v4float %107 0
+               OpStore %x_GLF_color_1_1 %108
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-ssa-rewrite-case-with-default/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-ssa-rewrite-case-with-default/0-opt.spvasm.expected.spvasm
index c8ef50f..16c3575 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-ssa-rewrite-case-with-default/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-ssa-rewrite-case-with-default/0-opt.spvasm.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 72
+; Bound: 71
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
          %12 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_0 = OpConstant %uint 0
@@ -56,7 +55,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Private_float = OpTypePointer Private %float
    %main_out = OpTypeStruct %v4float
-         %60 = OpTypeFunction %void %main_out
+         %60 = OpTypeFunction %main_out
       %func_ = OpFunction %v4float None %12
          %14 = OpLabel
          %18 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0
@@ -115,18 +114,17 @@
          %39 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %60
-%tint_symbol = OpFunctionParameter %main_out
-         %64 = OpLabel
-         %65 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %65
-               OpReturn
+ %main_inner = OpFunction %main_out None %60
+         %63 = OpLabel
+         %64 = OpFunctionCall %void %main_1
+         %65 = OpLoad %v4float %x_GLF_color
+         %66 = OpCompositeConstruct %main_out %65
+               OpReturnValue %66
                OpFunctionEnd
        %main = OpFunction %void None %30
-         %67 = OpLabel
-         %68 = OpFunctionCall %void %main_1
-         %70 = OpLoad %v4float %x_GLF_color
-         %71 = OpCompositeConstruct %main_out %70
-         %69 = OpFunctionCall %void %tint_symbol_2 %71
+         %68 = OpLabel
+         %69 = OpFunctionCall %main_out %main_inner
+         %70 = OpCompositeExtract %v4float %69 0
+               OpStore %x_GLF_color_1_1 %70
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-ssa-rewrite-case-with-default/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-ssa-rewrite-case-with-default/0-opt.wgsl.expected.spvasm
index c8ef50f..16c3575 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-ssa-rewrite-case-with-default/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-ssa-rewrite-case-with-default/0-opt.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 72
+; Bound: 71
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
          %12 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_0 = OpConstant %uint 0
@@ -56,7 +55,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Private_float = OpTypePointer Private %float
    %main_out = OpTypeStruct %v4float
-         %60 = OpTypeFunction %void %main_out
+         %60 = OpTypeFunction %main_out
       %func_ = OpFunction %v4float None %12
          %14 = OpLabel
          %18 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0
@@ -115,18 +114,17 @@
          %39 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %60
-%tint_symbol = OpFunctionParameter %main_out
-         %64 = OpLabel
-         %65 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %65
-               OpReturn
+ %main_inner = OpFunction %main_out None %60
+         %63 = OpLabel
+         %64 = OpFunctionCall %void %main_1
+         %65 = OpLoad %v4float %x_GLF_color
+         %66 = OpCompositeConstruct %main_out %65
+               OpReturnValue %66
                OpFunctionEnd
        %main = OpFunction %void None %30
-         %67 = OpLabel
-         %68 = OpFunctionCall %void %main_1
-         %70 = OpLoad %v4float %x_GLF_color
-         %71 = OpCompositeConstruct %main_out %70
-         %69 = OpFunctionCall %void %tint_symbol_2 %71
+         %68 = OpLabel
+         %69 = OpFunctionCall %main_out %main_inner
+         %70 = OpCompositeExtract %v4float %69 0
+               OpStore %x_GLF_color_1_1 %70
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.spvasm.expected.spvasm
index 5661e19..99576b6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.spvasm.expected.spvasm
@@ -1,32 +1,31 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 51
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
          %22 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v1 "v1"
                OpName %v2 "v2"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -42,7 +41,7 @@
 %_ptr_Function_float = OpTypePointer Function %float
      %uint_1 = OpConstant %uint 1
    %main_out = OpTypeStruct %v4float
-         %39 = OpTypeFunction %void %main_out
+         %39 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
          %v1 = OpVariable %_ptr_Function_v2float Function %15
@@ -64,18 +63,17 @@
                OpStore %x_GLF_color %38
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %39
-%tint_symbol = OpFunctionParameter %main_out
-         %43 = OpLabel
-         %44 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %44
-               OpReturn
+ %main_inner = OpFunction %main_out None %39
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %main_1
+         %44 = OpLoad %v4float %x_GLF_color
+         %45 = OpCompositeConstruct %main_out %44
+               OpReturnValue %45
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %main_1
-         %49 = OpLoad %v4float %x_GLF_color
-         %50 = OpCompositeConstruct %main_out %49
-         %48 = OpFunctionCall %void %tint_symbol_2 %50
+         %47 = OpLabel
+         %48 = OpFunctionCall %main_out %main_inner
+         %49 = OpCompositeExtract %v4float %48 0
+               OpStore %x_GLF_color_1_1 %49
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.wgsl.expected.spvasm
index 5661e19..99576b6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.wgsl.expected.spvasm
@@ -1,32 +1,31 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 51
+; Bound: 50
 ; Schema: 0
                OpCapability Shader
          %22 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v1 "v1"
                OpName %v2 "v2"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -42,7 +41,7 @@
 %_ptr_Function_float = OpTypePointer Function %float
      %uint_1 = OpConstant %uint 1
    %main_out = OpTypeStruct %v4float
-         %39 = OpTypeFunction %void %main_out
+         %39 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
          %v1 = OpVariable %_ptr_Function_v2float Function %15
@@ -64,18 +63,17 @@
                OpStore %x_GLF_color %38
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %39
-%tint_symbol = OpFunctionParameter %main_out
-         %43 = OpLabel
-         %44 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %44
-               OpReturn
+ %main_inner = OpFunction %main_out None %39
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %main_1
+         %44 = OpLoad %v4float %x_GLF_color
+         %45 = OpCompositeConstruct %main_out %44
+               OpReturnValue %45
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %46 = OpLabel
-         %47 = OpFunctionCall %void %main_1
-         %49 = OpLoad %v4float %x_GLF_color
-         %50 = OpCompositeConstruct %main_out %49
-         %48 = OpFunctionCall %void %tint_symbol_2 %50
+         %47 = OpLabel
+         %48 = OpFunctionCall %main_out %main_inner
+         %49 = OpCompositeExtract %v4float %48 0
+               OpStore %x_GLF_color_1_1 %49
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.spvasm.expected.spvasm
index 2af192c..db5b36e 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 131
+; Bound: 130
 ; Schema: 0
                OpCapability Shader
          %90 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_7 "x_7"
@@ -21,7 +22,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_15 "x_15"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %S "S"
                OpMemberName %S 0 "numbers"
@@ -31,9 +31,9 @@
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_5 ArrayStride 16
@@ -56,11 +56,14 @@
                OpDecorate %x_15 NonWritable
                OpDecorate %x_15 DescriptorSet 0
                OpDecorate %x_15 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
 %_arr_float_uint_5 = OpTypeArray %float %uint_5
@@ -80,12 +83,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_15 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %24 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %24
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %24
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %27 = OpTypeFunction %void
      %uint_3 = OpConstant %uint 3
@@ -109,7 +108,7 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-        %119 = OpTypeFunction %void %main_out
+        %119 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %27
          %30 = OpLabel
         %obj = OpVariable %_ptr_Function_S Function %36
@@ -197,18 +196,17 @@
          %99 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %119
-%tint_symbol = OpFunctionParameter %main_out
-        %123 = OpLabel
-        %124 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %124
-               OpReturn
+ %main_inner = OpFunction %main_out None %119
+        %122 = OpLabel
+        %123 = OpFunctionCall %void %main_1
+        %124 = OpLoad %v4float %x_GLF_color
+        %125 = OpCompositeConstruct %main_out %124
+               OpReturnValue %125
                OpFunctionEnd
        %main = OpFunction %void None %27
-        %126 = OpLabel
-        %127 = OpFunctionCall %void %main_1
-        %129 = OpLoad %v4float %x_GLF_color
-        %130 = OpCompositeConstruct %main_out %129
-        %128 = OpFunctionCall %void %tint_symbol_2 %130
+        %127 = OpLabel
+        %128 = OpFunctionCall %main_out %main_inner
+        %129 = OpCompositeExtract %v4float %128 0
+               OpStore %x_GLF_color_1_1 %129
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.wgsl.expected.spvasm
index 2af192c..db5b36e 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 131
+; Bound: 130
 ; Schema: 0
                OpCapability Shader
          %90 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_7 "x_7"
@@ -21,7 +22,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_15 "x_15"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %S "S"
                OpMemberName %S 0 "numbers"
@@ -31,9 +31,9 @@
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_5 ArrayStride 16
@@ -56,11 +56,14 @@
                OpDecorate %x_15 NonWritable
                OpDecorate %x_15 DescriptorSet 0
                OpDecorate %x_15 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_5 = OpConstant %uint 5
 %_arr_float_uint_5 = OpTypeArray %float %uint_5
@@ -80,12 +83,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_15 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %24 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %24
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %24
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %27 = OpTypeFunction %void
      %uint_3 = OpConstant %uint 3
@@ -109,7 +108,7 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-        %119 = OpTypeFunction %void %main_out
+        %119 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %27
          %30 = OpLabel
         %obj = OpVariable %_ptr_Function_S Function %36
@@ -197,18 +196,17 @@
          %99 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %119
-%tint_symbol = OpFunctionParameter %main_out
-        %123 = OpLabel
-        %124 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %124
-               OpReturn
+ %main_inner = OpFunction %main_out None %119
+        %122 = OpLabel
+        %123 = OpFunctionCall %void %main_1
+        %124 = OpLoad %v4float %x_GLF_color
+        %125 = OpCompositeConstruct %main_out %124
+               OpReturnValue %125
                OpFunctionEnd
        %main = OpFunction %void None %27
-        %126 = OpLabel
-        %127 = OpFunctionCall %void %main_1
-        %129 = OpLoad %v4float %x_GLF_color
-        %130 = OpCompositeConstruct %main_out %129
-        %128 = OpFunctionCall %void %tint_symbol_2 %130
+        %127 = OpLabel
+        %128 = OpFunctionCall %main_out %main_inner
+        %129 = OpCompositeExtract %v4float %128 0
+               OpStore %x_GLF_color_1_1 %129
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.spvasm.expected.spvasm
index c5cc68e..ba2f7a8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 91
+; Bound: 90
 ; Schema: 0
                OpCapability Shader
          %48 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -18,14 +19,13 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
@@ -43,9 +43,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
@@ -56,18 +59,14 @@
        %buf2 = OpTypeStruct %v2float
 %_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2
         %x_8 = OpVariable %_ptr_Uniform_buf2 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %15 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %15
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %15
        %void = OpTypeVoid
          %24 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -81,7 +80,7 @@
        %bool = OpTypeBool
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %79 = OpTypeFunction %void %main_out
+         %79 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %24
          %27 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %30
@@ -133,18 +132,17 @@
          %58 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %79
-%tint_symbol = OpFunctionParameter %main_out
-         %83 = OpLabel
-         %84 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %84
-               OpReturn
+ %main_inner = OpFunction %main_out None %79
+         %82 = OpLabel
+         %83 = OpFunctionCall %void %main_1
+         %84 = OpLoad %v4float %x_GLF_color
+         %85 = OpCompositeConstruct %main_out %84
+               OpReturnValue %85
                OpFunctionEnd
        %main = OpFunction %void None %24
-         %86 = OpLabel
-         %87 = OpFunctionCall %void %main_1
-         %89 = OpLoad %v4float %x_GLF_color
-         %90 = OpCompositeConstruct %main_out %89
-         %88 = OpFunctionCall %void %tint_symbol_2 %90
+         %87 = OpLabel
+         %88 = OpFunctionCall %main_out %main_inner
+         %89 = OpCompositeExtract %v4float %88 0
+               OpStore %x_GLF_color_1_1 %89
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.wgsl.expected.spvasm
index c5cc68e..ba2f7a8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 91
+; Bound: 90
 ; Schema: 0
                OpCapability Shader
          %48 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -18,14 +19,13 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
@@ -43,9 +43,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
@@ -56,18 +59,14 @@
        %buf2 = OpTypeStruct %v2float
 %_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2
         %x_8 = OpVariable %_ptr_Uniform_buf2 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %15 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %15
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %15
        %void = OpTypeVoid
          %24 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -81,7 +80,7 @@
        %bool = OpTypeBool
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %79 = OpTypeFunction %void %main_out
+         %79 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %24
          %27 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %30
@@ -133,18 +132,17 @@
          %58 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %79
-%tint_symbol = OpFunctionParameter %main_out
-         %83 = OpLabel
-         %84 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %84
-               OpReturn
+ %main_inner = OpFunction %main_out None %79
+         %82 = OpLabel
+         %83 = OpFunctionCall %void %main_1
+         %84 = OpLoad %v4float %x_GLF_color
+         %85 = OpCompositeConstruct %main_out %84
+               OpReturnValue %85
                OpFunctionEnd
        %main = OpFunction %void None %24
-         %86 = OpLabel
-         %87 = OpFunctionCall %void %main_1
-         %89 = OpLoad %v4float %x_GLF_color
-         %90 = OpCompositeConstruct %main_out %89
-         %88 = OpFunctionCall %void %tint_symbol_2 %90
+         %87 = OpLabel
+         %88 = OpFunctionCall %main_out %main_inner
+         %89 = OpCompositeExtract %v4float %88 0
+               OpStore %x_GLF_color_1_1 %89
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.spvasm.expected.spvasm
index 3cdb9a4..b267fc8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 113
+; Bound: 112
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
@@ -14,7 +15,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_11 "x_11"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %color "color"
                OpName %i "i"
@@ -22,9 +22,9 @@
                OpName %k "k"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -37,8 +37,12 @@
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -46,18 +50,13 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf1 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_11 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -73,10 +72,10 @@
 %_ptr_Uniform_float = OpTypePointer Uniform %float
 %_ptr_Function_float = OpTypePointer Function %float
    %main_out = OpTypeStruct %v4float
-        %101 = OpTypeFunction %void %main_out
+        %101 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
-      %color = OpVariable %_ptr_Function_v4float Function %17
+      %color = OpVariable %_ptr_Function_v4float Function %5
           %i = OpVariable %_ptr_Function_int Function %28
           %j = OpVariable %_ptr_Function_int Function %28
           %k = OpVariable %_ptr_Function_int Function %28
@@ -186,18 +185,17 @@
                OpStore %x_GLF_color %100
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %101
-%tint_symbol = OpFunctionParameter %main_out
-        %105 = OpLabel
-        %106 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %106
-               OpReturn
+ %main_inner = OpFunction %main_out None %101
+        %104 = OpLabel
+        %105 = OpFunctionCall %void %main_1
+        %106 = OpLoad %v4float %x_GLF_color
+        %107 = OpCompositeConstruct %main_out %106
+               OpReturnValue %107
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %108 = OpLabel
-        %109 = OpFunctionCall %void %main_1
-        %111 = OpLoad %v4float %x_GLF_color
-        %112 = OpCompositeConstruct %main_out %111
-        %110 = OpFunctionCall %void %tint_symbol_2 %112
+        %109 = OpLabel
+        %110 = OpFunctionCall %main_out %main_inner
+        %111 = OpCompositeExtract %v4float %110 0
+               OpStore %x_GLF_color_1_1 %111
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.wgsl.expected.spvasm
index 3cdb9a4..b267fc8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 113
+; Bound: 112
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
@@ -14,7 +15,6 @@
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_11 "x_11"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %color "color"
                OpName %i "i"
@@ -22,9 +22,9 @@
                OpName %k "k"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -37,8 +37,12 @@
                OpDecorate %x_11 NonWritable
                OpDecorate %x_11 DescriptorSet 0
                OpDecorate %x_11 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -46,18 +50,13 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf1 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_11 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -73,10 +72,10 @@
 %_ptr_Uniform_float = OpTypePointer Uniform %float
 %_ptr_Function_float = OpTypePointer Function %float
    %main_out = OpTypeStruct %v4float
-        %101 = OpTypeFunction %void %main_out
+        %101 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
-      %color = OpVariable %_ptr_Function_v4float Function %17
+      %color = OpVariable %_ptr_Function_v4float Function %5
           %i = OpVariable %_ptr_Function_int Function %28
           %j = OpVariable %_ptr_Function_int Function %28
           %k = OpVariable %_ptr_Function_int Function %28
@@ -186,18 +185,17 @@
                OpStore %x_GLF_color %100
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %101
-%tint_symbol = OpFunctionParameter %main_out
-        %105 = OpLabel
-        %106 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %106
-               OpReturn
+ %main_inner = OpFunction %main_out None %101
+        %104 = OpLabel
+        %105 = OpFunctionCall %void %main_1
+        %106 = OpLoad %v4float %x_GLF_color
+        %107 = OpCompositeConstruct %main_out %106
+               OpReturnValue %107
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %108 = OpLabel
-        %109 = OpFunctionCall %void %main_1
-        %111 = OpLoad %v4float %x_GLF_color
-        %112 = OpCompositeConstruct %main_out %111
-        %110 = OpFunctionCall %void %tint_symbol_2 %112
+        %109 = OpLabel
+        %110 = OpFunctionCall %main_out %main_inner
+        %111 = OpCompositeExtract %v4float %110 0
+               OpStore %x_GLF_color_1_1 %111
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.spvasm
index aa46334..6834d27 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 106
+; Bound: 105
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
@@ -17,14 +18,13 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -42,12 +42,13 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -63,8 +64,6 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -77,7 +76,7 @@
        %true = OpConstantTrue %bool
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %94 = OpTypeFunction %void %main_out
+         %94 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %22
          %25 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %28
@@ -178,18 +177,17 @@
          %41 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %94
-%tint_symbol = OpFunctionParameter %main_out
-         %98 = OpLabel
-         %99 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %99
-               OpReturn
+ %main_inner = OpFunction %main_out None %94
+         %97 = OpLabel
+         %98 = OpFunctionCall %void %main_1
+         %99 = OpLoad %v4float %x_GLF_color
+        %100 = OpCompositeConstruct %main_out %99
+               OpReturnValue %100
                OpFunctionEnd
        %main = OpFunction %void None %22
-        %101 = OpLabel
-        %102 = OpFunctionCall %void %main_1
-        %104 = OpLoad %v4float %x_GLF_color
-        %105 = OpCompositeConstruct %main_out %104
-        %103 = OpFunctionCall %void %tint_symbol_2 %105
+        %102 = OpLabel
+        %103 = OpFunctionCall %main_out %main_inner
+        %104 = OpCompositeExtract %v4float %103 0
+               OpStore %x_GLF_color_1_1 %104
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.spvasm
index aa46334..6834d27 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 106
+; Bound: 105
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
@@ -17,14 +18,13 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -42,12 +42,13 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -63,8 +64,6 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -77,7 +76,7 @@
        %true = OpConstantTrue %bool
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %94 = OpTypeFunction %void %main_out
+         %94 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %22
          %25 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %28
@@ -178,18 +177,17 @@
          %41 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %94
-%tint_symbol = OpFunctionParameter %main_out
-         %98 = OpLabel
-         %99 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %99
-               OpReturn
+ %main_inner = OpFunction %main_out None %94
+         %97 = OpLabel
+         %98 = OpFunctionCall %void %main_1
+         %99 = OpLoad %v4float %x_GLF_color
+        %100 = OpCompositeConstruct %main_out %99
+               OpReturnValue %100
                OpFunctionEnd
        %main = OpFunction %void None %22
-        %101 = OpLabel
-        %102 = OpFunctionCall %void %main_1
-        %104 = OpLoad %v4float %x_GLF_color
-        %105 = OpCompositeConstruct %main_out %104
-        %103 = OpFunctionCall %void %tint_symbol_2 %105
+        %102 = OpLabel
+        %103 = OpFunctionCall %main_out %main_inner
+        %104 = OpCompositeExtract %v4float %103 0
+               OpStore %x_GLF_color_1_1 %104
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.spvasm
index 3b09286..00edf7a 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.spvasm
@@ -6,44 +6,44 @@
                OpCapability Shader
          %29 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "two"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -61,7 +61,7 @@
          %49 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %50 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %51 = OpTypeFunction %void %main_out
+         %51 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %20
@@ -92,20 +92,20 @@
          %44 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %51
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %51
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %55 = OpLabel
-         %56 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %56
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %56 = OpFunctionCall %void %main_1
+         %57 = OpLoad %v4float %x_GLF_color
+         %58 = OpCompositeConstruct %main_out %57
+               OpReturnValue %58
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %58 = OpLabel
-         %59 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %59
-         %60 = OpFunctionCall %void %main_1
-         %62 = OpLoad %v4float %x_GLF_color
-         %63 = OpCompositeConstruct %main_out %62
-         %61 = OpFunctionCall %void %tint_symbol_3 %63
+         %60 = OpLabel
+         %62 = OpLoad %v4float %gl_FragCoord_param_1
+         %61 = OpFunctionCall %main_out %main_inner %62
+         %63 = OpCompositeExtract %v4float %61 0
+               OpStore %x_GLF_color_1_1 %63
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.wgsl.expected.spvasm
index 7858785..d4fe2c7 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.wgsl.expected.spvasm
@@ -6,44 +6,44 @@
                OpCapability Shader
          %29 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "two"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -61,7 +61,7 @@
          %51 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %52 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %53 = OpTypeFunction %void %main_out
+         %53 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
           %a = OpVariable %_ptr_Function_float Function %20
@@ -97,20 +97,20 @@
          %46 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %53
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %53
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %57 = OpLabel
-         %58 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %58
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %58 = OpFunctionCall %void %main_1
+         %59 = OpLoad %v4float %x_GLF_color
+         %60 = OpCompositeConstruct %main_out %59
+               OpReturnValue %60
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %60 = OpLabel
-         %61 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %61
-         %62 = OpFunctionCall %void %main_1
-         %64 = OpLoad %v4float %x_GLF_color
-         %65 = OpCompositeConstruct %main_out %64
-         %63 = OpFunctionCall %void %tint_symbol_3 %65
+         %62 = OpLabel
+         %64 = OpLoad %v4float %gl_FragCoord_param_1
+         %63 = OpFunctionCall %main_out %main_inner %64
+         %65 = OpCompositeExtract %v4float %63 0
+               OpStore %x_GLF_color_1_1 %65
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.spvasm.expected.spvasm
index f707389..80137c9 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 218
+; Bound: 217
 ; Schema: 0
                OpCapability Shader
         %123 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "v1"
                OpName %x_8 "x_8"
@@ -15,7 +16,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %S "S"
                OpMemberName %S 0 "data"
                OpName %func_struct_S_i11_ "func_struct_S_i11_"
@@ -32,9 +32,9 @@
                OpName %x_147_phi "x_147_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_8 NonWritable
@@ -46,11 +46,14 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_arr_S_uint_3 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
@@ -62,12 +65,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %S = OpTypeStruct %int
 %_ptr_Function_S = OpTypePointer Function %S
@@ -93,7 +92,7 @@
       %int_3 = OpConstant %int 3
       %int_4 = OpConstant %int 4
    %main_out = OpTypeStruct %v4float
-        %206 = OpTypeFunction %void %main_out
+        %206 = OpTypeFunction %main_out
 %func_struct_S_i11_ = OpFunction %void None %19
           %s = OpFunctionParameter %_ptr_Function_S
          %25 = OpLabel
@@ -333,18 +332,17 @@
         %186 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %206
-%tint_symbol = OpFunctionParameter %main_out
-        %210 = OpLabel
-        %211 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %211
-               OpReturn
+ %main_inner = OpFunction %main_out None %206
+        %209 = OpLabel
+        %210 = OpFunctionCall %void %main_1
+        %211 = OpLoad %v4float %x_GLF_color
+        %212 = OpCompositeConstruct %main_out %211
+               OpReturnValue %212
                OpFunctionEnd
        %main = OpFunction %void None %49
-        %213 = OpLabel
-        %214 = OpFunctionCall %void %main_1
-        %216 = OpLoad %v4float %x_GLF_color
-        %217 = OpCompositeConstruct %main_out %216
-        %215 = OpFunctionCall %void %tint_symbol_2 %217
+        %214 = OpLabel
+        %215 = OpFunctionCall %main_out %main_inner
+        %216 = OpCompositeExtract %v4float %215 0
+               OpStore %x_GLF_color_1_1 %216
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.wgsl.expected.spvasm
index f707389..80137c9 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 218
+; Bound: 217
 ; Schema: 0
                OpCapability Shader
         %123 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "v1"
                OpName %x_8 "x_8"
@@ -15,7 +16,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %S "S"
                OpMemberName %S 0 "data"
                OpName %func_struct_S_i11_ "func_struct_S_i11_"
@@ -32,9 +32,9 @@
                OpName %x_147_phi "x_147_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_8 NonWritable
@@ -46,11 +46,14 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_arr_S_uint_3 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
@@ -62,12 +65,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_5
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %S = OpTypeStruct %int
 %_ptr_Function_S = OpTypePointer Function %S
@@ -93,7 +92,7 @@
       %int_3 = OpConstant %int 3
       %int_4 = OpConstant %int 4
    %main_out = OpTypeStruct %v4float
-        %206 = OpTypeFunction %void %main_out
+        %206 = OpTypeFunction %main_out
 %func_struct_S_i11_ = OpFunction %void None %19
           %s = OpFunctionParameter %_ptr_Function_S
          %25 = OpLabel
@@ -333,18 +332,17 @@
         %186 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %206
-%tint_symbol = OpFunctionParameter %main_out
-        %210 = OpLabel
-        %211 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %211
-               OpReturn
+ %main_inner = OpFunction %main_out None %206
+        %209 = OpLabel
+        %210 = OpFunctionCall %void %main_1
+        %211 = OpLoad %v4float %x_GLF_color
+        %212 = OpCompositeConstruct %main_out %211
+               OpReturnValue %212
                OpFunctionEnd
        %main = OpFunction %void None %49
-        %213 = OpLabel
-        %214 = OpFunctionCall %void %main_1
-        %216 = OpLoad %v4float %x_GLF_color
-        %217 = OpCompositeConstruct %main_out %216
-        %215 = OpFunctionCall %void %tint_symbol_2 %217
+        %214 = OpLabel
+        %215 = OpFunctionCall %main_out %main_inner
+        %216 = OpCompositeExtract %v4float %215 0
+               OpStore %x_GLF_color_1_1 %216
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.spvasm
index 69eb7bd..46574b6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.spvasm
@@ -1,30 +1,29 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 65
+; Bound: 64
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m "m"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -47,7 +46,7 @@
          %51 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %52 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %53 = OpTypeFunction %void %main_out
+         %53 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %m = OpVariable %_ptr_Function_mat2v2float Function %16
@@ -81,18 +80,17 @@
          %47 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %53
-%tint_symbol = OpFunctionParameter %main_out
-         %57 = OpLabel
-         %58 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %58
-               OpReturn
+ %main_inner = OpFunction %main_out None %53
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %main_1
+         %58 = OpLoad %v4float %x_GLF_color
+         %59 = OpCompositeConstruct %main_out %58
+               OpReturnValue %59
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %60 = OpLabel
-         %61 = OpFunctionCall %void %main_1
-         %63 = OpLoad %v4float %x_GLF_color
-         %64 = OpCompositeConstruct %main_out %63
-         %62 = OpFunctionCall %void %tint_symbol_2 %64
+         %61 = OpLabel
+         %62 = OpFunctionCall %main_out %main_inner
+         %63 = OpCompositeExtract %v4float %62 0
+               OpStore %x_GLF_color_1_1 %63
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.wgsl.expected.spvasm
index b135837..fed0db5 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.wgsl.expected.spvasm
@@ -1,30 +1,29 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 67
+; Bound: 66
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m "m"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -47,7 +46,7 @@
          %53 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %54 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %55 = OpTypeFunction %void %main_out
+         %55 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %m = OpVariable %_ptr_Function_mat2v2float Function %16
@@ -86,18 +85,17 @@
          %49 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %55
-%tint_symbol = OpFunctionParameter %main_out
-         %59 = OpLabel
-         %60 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %60
-               OpReturn
+ %main_inner = OpFunction %main_out None %55
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %main_1
+         %60 = OpLoad %v4float %x_GLF_color
+         %61 = OpCompositeConstruct %main_out %60
+               OpReturnValue %61
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %62 = OpLabel
-         %63 = OpFunctionCall %void %main_1
-         %65 = OpLoad %v4float %x_GLF_color
-         %66 = OpCompositeConstruct %main_out %65
-         %64 = OpFunctionCall %void %tint_symbol_2 %66
+         %63 = OpLabel
+         %64 = OpFunctionCall %main_out %main_inner
+         %65 = OpCompositeExtract %v4float %64 0
+               OpStore %x_GLF_color_1_1 %65
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.spvasm.expected.spvasm
index 872fb57..8a68020 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %39 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
@@ -16,15 +18,15 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -37,30 +39,28 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf1 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_7 = OpVariable %_ptr_Uniform_buf1 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -76,7 +76,7 @@
       %int_0 = OpConstant %int 0
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %72 = OpTypeFunction %void %main_out
+         %72 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %22
          %25 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %28
@@ -121,20 +121,20 @@
          %51 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %72
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %72
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %76 = OpLabel
-         %77 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %77
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %77 = OpFunctionCall %void %main_1
+         %78 = OpLoad %v4float %x_GLF_color
+         %79 = OpCompositeConstruct %main_out %78
+               OpReturnValue %79
                OpFunctionEnd
        %main = OpFunction %void None %22
-         %79 = OpLabel
-         %80 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %80
-         %81 = OpFunctionCall %void %main_1
-         %83 = OpLoad %v4float %x_GLF_color
-         %84 = OpCompositeConstruct %main_out %83
-         %82 = OpFunctionCall %void %tint_symbol_3 %84
+         %81 = OpLabel
+         %83 = OpLoad %v4float %gl_FragCoord_param_1
+         %82 = OpFunctionCall %main_out %main_inner %83
+         %84 = OpCompositeExtract %v4float %82 0
+               OpStore %x_GLF_color_1_1 %84
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.wgsl.expected.spvasm
index 872fb57..8a68020 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %39 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
@@ -16,15 +18,15 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -37,30 +39,28 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf1 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_7 = OpVariable %_ptr_Uniform_buf1 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -76,7 +76,7 @@
       %int_0 = OpConstant %int 0
 %_ptr_Uniform_int = OpTypePointer Uniform %int
    %main_out = OpTypeStruct %v4float
-         %72 = OpTypeFunction %void %main_out
+         %72 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %22
          %25 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %28
@@ -121,20 +121,20 @@
          %51 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %72
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %72
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %76 = OpLabel
-         %77 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %77
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %77 = OpFunctionCall %void %main_1
+         %78 = OpLoad %v4float %x_GLF_color
+         %79 = OpCompositeConstruct %main_out %78
+               OpReturnValue %79
                OpFunctionEnd
        %main = OpFunction %void None %22
-         %79 = OpLabel
-         %80 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %80
-         %81 = OpFunctionCall %void %main_1
-         %83 = OpLoad %v4float %x_GLF_color
-         %84 = OpCompositeConstruct %main_out %83
-         %82 = OpFunctionCall %void %tint_symbol_3 %84
+         %81 = OpLabel
+         %83 = OpLoad %v4float %gl_FragCoord_param_1
+         %82 = OpFunctionCall %main_out %main_inner %83
+         %84 = OpCompositeExtract %v4float %82 0
+               OpStore %x_GLF_color_1_1 %84
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.spvasm.expected.spvasm
index 92c0d33..4003fa1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.spvasm.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_24 "x_24"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
                OpName %func_ "func_"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -51,8 +50,8 @@
     %float_1 = OpConstant %float 1
          %31 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %32 = OpTypeFunction %void %main_out
-         %44 = OpTypeFunction %v4float
+         %32 = OpTypeFunction %main_out
+         %43 = OpTypeFunction %v4float
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
        %x_24 = OpVariable %_ptr_Function_v4float Function %5
@@ -69,22 +68,21 @@
                OpStore %x_GLF_color %31
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %32
-%tint_symbol = OpFunctionParameter %main_out
-         %36 = OpLabel
-         %37 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %37
-               OpReturn
+ %main_inner = OpFunction %main_out None %32
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %main_1
+         %37 = OpLoad %v4float %x_GLF_color
+         %38 = OpCompositeConstruct %main_out %37
+               OpReturnValue %38
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %main_1
-         %42 = OpLoad %v4float %x_GLF_color
-         %43 = OpCompositeConstruct %main_out %42
-         %41 = OpFunctionCall %void %tint_symbol_2 %43
+         %40 = OpLabel
+         %41 = OpFunctionCall %main_out %main_inner
+         %42 = OpCompositeExtract %v4float %41 0
+               OpStore %x_GLF_color_1_1 %42
                OpReturn
                OpFunctionEnd
-      %func_ = OpFunction %v4float None %44
-         %46 = OpLabel
+      %func_ = OpFunction %v4float None %43
+         %45 = OpLabel
                OpReturnValue %31
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.wgsl.expected.spvasm
index 92c0d33..4003fa1 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 47
+; Bound: 46
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_24 "x_24"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
                OpName %func_ "func_"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -51,8 +50,8 @@
     %float_1 = OpConstant %float 1
          %31 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %32 = OpTypeFunction %void %main_out
-         %44 = OpTypeFunction %v4float
+         %32 = OpTypeFunction %main_out
+         %43 = OpTypeFunction %v4float
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
        %x_24 = OpVariable %_ptr_Function_v4float Function %5
@@ -69,22 +68,21 @@
                OpStore %x_GLF_color %31
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %32
-%tint_symbol = OpFunctionParameter %main_out
-         %36 = OpLabel
-         %37 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %37
-               OpReturn
+ %main_inner = OpFunction %main_out None %32
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %main_1
+         %37 = OpLoad %v4float %x_GLF_color
+         %38 = OpCompositeConstruct %main_out %37
+               OpReturnValue %38
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %39 = OpLabel
-         %40 = OpFunctionCall %void %main_1
-         %42 = OpLoad %v4float %x_GLF_color
-         %43 = OpCompositeConstruct %main_out %42
-         %41 = OpFunctionCall %void %tint_symbol_2 %43
+         %40 = OpLabel
+         %41 = OpFunctionCall %main_out %main_inner
+         %42 = OpCompositeExtract %v4float %41 0
+               OpStore %x_GLF_color_1_1 %42
                OpReturn
                OpFunctionEnd
-      %func_ = OpFunction %v4float None %44
-         %46 = OpLabel
+      %func_ = OpFunction %v4float None %43
+         %45 = OpLabel
                OpReturnValue %31
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.spvasm.expected.spvasm
index 6061eec..156c44ec 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 98
+; Bound: 97
 ; Schema: 0
                OpCapability Shader
          %59 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf1 0 "v1"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m24 "m24"
                OpName %a "a"
@@ -23,9 +23,9 @@
                OpName %v3 "v3"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_1 ArrayStride 16
@@ -37,9 +37,12 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
@@ -50,12 +53,8 @@
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %15 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %15
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %15
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
 %mat2v2float = OpTypeMatrix %v2float 2
@@ -77,7 +76,7 @@
          %80 = OpConstantComposite %v2float %float_0 %float_0
          %85 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %86 = OpTypeFunction %void %main_out
+         %86 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
         %m24 = OpVariable %_ptr_Function_mat2v2float Function %25
@@ -138,18 +137,17 @@
          %74 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %86
-%tint_symbol = OpFunctionParameter %main_out
-         %90 = OpLabel
-         %91 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %91
-               OpReturn
+ %main_inner = OpFunction %main_out None %86
+         %89 = OpLabel
+         %90 = OpFunctionCall %void %main_1
+         %91 = OpLoad %v4float %x_GLF_color
+         %92 = OpCompositeConstruct %main_out %91
+               OpReturnValue %92
                OpFunctionEnd
        %main = OpFunction %void None %18
-         %93 = OpLabel
-         %94 = OpFunctionCall %void %main_1
-         %96 = OpLoad %v4float %x_GLF_color
-         %97 = OpCompositeConstruct %main_out %96
-         %95 = OpFunctionCall %void %tint_symbol_2 %97
+         %94 = OpLabel
+         %95 = OpFunctionCall %main_out %main_inner
+         %96 = OpCompositeExtract %v4float %95 0
+               OpStore %x_GLF_color_1_1 %96
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.wgsl.expected.spvasm
index 0925219..e5eebfd 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 98
+; Bound: 97
 ; Schema: 0
                OpCapability Shader
          %58 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -15,7 +16,6 @@
                OpMemberName %buf1 0 "v1"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m24 "m24"
                OpName %a "a"
@@ -23,9 +23,9 @@
                OpName %v3 "v3"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_float_uint_1 ArrayStride 16
@@ -37,9 +37,12 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
@@ -50,12 +53,8 @@
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %15 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %15
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %15
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
 %mat2v2float = OpTypeMatrix %v2float 2
@@ -77,7 +76,7 @@
          %80 = OpConstantComposite %v2float %float_0 %float_0
          %85 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %86 = OpTypeFunction %void %main_out
+         %86 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
         %m24 = OpVariable %_ptr_Function_mat2v2float Function %25
@@ -138,18 +137,17 @@
          %74 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %86
-%tint_symbol = OpFunctionParameter %main_out
-         %90 = OpLabel
-         %91 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %91
-               OpReturn
+ %main_inner = OpFunction %main_out None %86
+         %89 = OpLabel
+         %90 = OpFunctionCall %void %main_1
+         %91 = OpLoad %v4float %x_GLF_color
+         %92 = OpCompositeConstruct %main_out %91
+               OpReturnValue %92
                OpFunctionEnd
        %main = OpFunction %void None %18
-         %93 = OpLabel
-         %94 = OpFunctionCall %void %main_1
-         %96 = OpLoad %v4float %x_GLF_color
-         %97 = OpCompositeConstruct %main_out %96
-         %95 = OpFunctionCall %void %tint_symbol_2 %97
+         %94 = OpLabel
+         %95 = OpFunctionCall %main_out %main_inner
+         %96 = OpCompositeExtract %v4float %95 0
+               OpStore %x_GLF_color_1_1 %96
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.spvasm.expected.spvasm
index 85eaf66..bfb6c97 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 137
+; Bound: 136
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %S "S"
                OpMemberName %S 0 "data"
                OpName %func_struct_S_i11_i1_ "func_struct_S_i11_i1_"
@@ -27,19 +27,23 @@
                OpName %param_3 "param_3"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_arr_S_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -47,13 +51,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %S = OpTypeStruct %int
 %_ptr_Function_S = OpTypePointer Function %S
@@ -73,7 +72,7 @@
          %52 = OpConstantNull %S
      %int_10 = OpConstant %int 10
    %main_out = OpTypeStruct %v4float
-        %125 = OpTypeFunction %void %main_out
+        %125 = OpTypeFunction %main_out
 %func_struct_S_i11_i1_ = OpFunction %void None %15
           %s = OpFunctionParameter %_ptr_Function_S
           %x = OpFunctionParameter %_ptr_Function_int
@@ -196,18 +195,17 @@
         %105 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %125
-%tint_symbol = OpFunctionParameter %main_out
-        %129 = OpLabel
-        %130 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %130
-               OpReturn
+ %main_inner = OpFunction %main_out None %125
+        %128 = OpLabel
+        %129 = OpFunctionCall %void %main_1
+        %130 = OpLoad %v4float %x_GLF_color
+        %131 = OpCompositeConstruct %main_out %130
+               OpReturnValue %131
                OpFunctionEnd
        %main = OpFunction %void None %40
-        %132 = OpLabel
-        %133 = OpFunctionCall %void %main_1
-        %135 = OpLoad %v4float %x_GLF_color
-        %136 = OpCompositeConstruct %main_out %135
-        %134 = OpFunctionCall %void %tint_symbol_2 %136
+        %133 = OpLabel
+        %134 = OpFunctionCall %main_out %main_inner
+        %135 = OpCompositeExtract %v4float %134 0
+               OpStore %x_GLF_color_1_1 %135
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.wgsl.expected.spvasm
index 85eaf66..bfb6c97 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 137
+; Bound: 136
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %S "S"
                OpMemberName %S 0 "data"
                OpName %func_struct_S_i11_i1_ "func_struct_S_i11_i1_"
@@ -27,19 +27,23 @@
                OpName %param_3 "param_3"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_arr_S_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -47,13 +51,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %S = OpTypeStruct %int
 %_ptr_Function_S = OpTypePointer Function %S
@@ -73,7 +72,7 @@
          %52 = OpConstantNull %S
      %int_10 = OpConstant %int 10
    %main_out = OpTypeStruct %v4float
-        %125 = OpTypeFunction %void %main_out
+        %125 = OpTypeFunction %main_out
 %func_struct_S_i11_i1_ = OpFunction %void None %15
           %s = OpFunctionParameter %_ptr_Function_S
           %x = OpFunctionParameter %_ptr_Function_int
@@ -196,18 +195,17 @@
         %105 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %125
-%tint_symbol = OpFunctionParameter %main_out
-        %129 = OpLabel
-        %130 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %130
-               OpReturn
+ %main_inner = OpFunction %main_out None %125
+        %128 = OpLabel
+        %129 = OpFunctionCall %void %main_1
+        %130 = OpLoad %v4float %x_GLF_color
+        %131 = OpCompositeConstruct %main_out %130
+               OpReturnValue %131
                OpFunctionEnd
        %main = OpFunction %void None %40
-        %132 = OpLabel
-        %133 = OpFunctionCall %void %main_1
-        %135 = OpLoad %v4float %x_GLF_color
-        %136 = OpCompositeConstruct %main_out %135
-        %134 = OpFunctionCall %void %tint_symbol_2 %136
+        %133 = OpLabel
+        %134 = OpFunctionCall %main_out %main_inner
+        %135 = OpCompositeExtract %v4float %134 0
+               OpStore %x_GLF_color_1_1 %135
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.spvasm.expected.spvasm
index 0727549..f242ed0 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 101
+; Bound: 100
 ; Schema: 0
                OpCapability Shader
          %39 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_uint_values"
                OpName %x_6 "x_6"
@@ -18,14 +19,13 @@
                OpMemberName %buf2 0 "x_GLF_uniform_float_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_uint_uint_1 ArrayStride 16
@@ -44,8 +44,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 2
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
@@ -58,18 +62,13 @@
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
        %buf2 = OpTypeStruct %_arr_float_uint_3
 %_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2
        %x_10 = OpVariable %_ptr_Uniform_buf2 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %22 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %22
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %22
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %25 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -84,10 +83,10 @@
 %_ptr_Uniform_float = OpTypePointer Uniform %float
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %89 = OpTypeFunction %void %main_out
+         %89 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %25
          %28 = OpLabel
-          %v = OpVariable %_ptr_Function_v4float Function %22
+          %v = OpVariable %_ptr_Function_v4float Function %5
          %34 = OpAccessChain %_ptr_Uniform_uint %x_6 %uint_0 %int_0
          %35 = OpLoad %uint %34
          %36 = OpAccessChain %_ptr_Uniform_uint %x_6 %uint_0 %int_0
@@ -144,18 +143,17 @@
          %69 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %89
-%tint_symbol = OpFunctionParameter %main_out
-         %93 = OpLabel
-         %94 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %94
-               OpReturn
+ %main_inner = OpFunction %main_out None %89
+         %92 = OpLabel
+         %93 = OpFunctionCall %void %main_1
+         %94 = OpLoad %v4float %x_GLF_color
+         %95 = OpCompositeConstruct %main_out %94
+               OpReturnValue %95
                OpFunctionEnd
        %main = OpFunction %void None %25
-         %96 = OpLabel
-         %97 = OpFunctionCall %void %main_1
-         %99 = OpLoad %v4float %x_GLF_color
-        %100 = OpCompositeConstruct %main_out %99
-         %98 = OpFunctionCall %void %tint_symbol_2 %100
+         %97 = OpLabel
+         %98 = OpFunctionCall %main_out %main_inner
+         %99 = OpCompositeExtract %v4float %98 0
+               OpStore %x_GLF_color_1_1 %99
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.wgsl.expected.spvasm
index 0727549..f242ed0 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 101
+; Bound: 100
 ; Schema: 0
                OpCapability Shader
          %39 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_uint_values"
                OpName %x_6 "x_6"
@@ -18,14 +19,13 @@
                OpMemberName %buf2 0 "x_GLF_uniform_float_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_uint_uint_1 ArrayStride 16
@@ -44,8 +44,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 2
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
@@ -58,18 +62,13 @@
        %buf1 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
        %buf2 = OpTypeStruct %_arr_float_uint_3
 %_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2
        %x_10 = OpVariable %_ptr_Uniform_buf2 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %22 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %22
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %22
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %25 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -84,10 +83,10 @@
 %_ptr_Uniform_float = OpTypePointer Uniform %float
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %89 = OpTypeFunction %void %main_out
+         %89 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %25
          %28 = OpLabel
-          %v = OpVariable %_ptr_Function_v4float Function %22
+          %v = OpVariable %_ptr_Function_v4float Function %5
          %34 = OpAccessChain %_ptr_Uniform_uint %x_6 %uint_0 %int_0
          %35 = OpLoad %uint %34
          %36 = OpAccessChain %_ptr_Uniform_uint %x_6 %uint_0 %int_0
@@ -144,18 +143,17 @@
          %69 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %89
-%tint_symbol = OpFunctionParameter %main_out
-         %93 = OpLabel
-         %94 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %94
-               OpReturn
+ %main_inner = OpFunction %main_out None %89
+         %92 = OpLabel
+         %93 = OpFunctionCall %void %main_1
+         %94 = OpLoad %v4float %x_GLF_color
+         %95 = OpCompositeConstruct %main_out %94
+               OpReturnValue %95
                OpFunctionEnd
        %main = OpFunction %void None %25
-         %96 = OpLabel
-         %97 = OpFunctionCall %void %main_1
-         %99 = OpLoad %v4float %x_GLF_color
-        %100 = OpCompositeConstruct %main_out %99
-         %98 = OpFunctionCall %void %tint_symbol_2 %100
+         %97 = OpLabel
+         %98 = OpFunctionCall %main_out %main_inner
+         %99 = OpCompositeExtract %v4float %98 0
+               OpStore %x_GLF_color_1_1 %99
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.spvasm.expected.spvasm
index c63ce32..d3f89ac 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 152
+; Bound: 151
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -14,7 +15,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m43 "m43"
                OpName %sums "sums"
@@ -23,9 +23,9 @@
                OpName %x_67_phi "x_67_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
@@ -38,9 +38,12 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
@@ -53,12 +56,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -82,7 +81,7 @@
       %int_4 = OpConstant %int 4
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-        %140 = OpTypeFunction %void %main_out
+        %140 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
         %m43 = OpVariable %_ptr_Function_mat4v3float Function %28
@@ -211,18 +210,17 @@
         %120 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %140
-%tint_symbol = OpFunctionParameter %main_out
-        %144 = OpLabel
-        %145 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %145
-               OpReturn
+ %main_inner = OpFunction %main_out None %140
+        %143 = OpLabel
+        %144 = OpFunctionCall %void %main_1
+        %145 = OpLoad %v4float %x_GLF_color
+        %146 = OpCompositeConstruct %main_out %145
+               OpReturnValue %146
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %147 = OpLabel
-        %148 = OpFunctionCall %void %main_1
-        %150 = OpLoad %v4float %x_GLF_color
-        %151 = OpCompositeConstruct %main_out %150
-        %149 = OpFunctionCall %void %tint_symbol_2 %151
+        %148 = OpLabel
+        %149 = OpFunctionCall %main_out %main_inner
+        %150 = OpCompositeExtract %v4float %149 0
+               OpStore %x_GLF_color_1_1 %150
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.wgsl.expected.spvasm
index c63ce32..d3f89ac 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 152
+; Bound: 151
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -14,7 +15,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m43 "m43"
                OpName %sums "sums"
@@ -23,9 +23,9 @@
                OpName %x_67_phi "x_67_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
@@ -38,9 +38,12 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
@@ -53,12 +56,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -82,7 +81,7 @@
       %int_4 = OpConstant %int 4
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-        %140 = OpTypeFunction %void %main_out
+        %140 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
         %m43 = OpVariable %_ptr_Function_mat4v3float Function %28
@@ -211,18 +210,17 @@
         %120 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %140
-%tint_symbol = OpFunctionParameter %main_out
-        %144 = OpLabel
-        %145 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %145
-               OpReturn
+ %main_inner = OpFunction %main_out None %140
+        %143 = OpLabel
+        %144 = OpFunctionCall %void %main_1
+        %145 = OpLoad %v4float %x_GLF_color
+        %146 = OpCompositeConstruct %main_out %145
+               OpReturnValue %146
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %147 = OpLabel
-        %148 = OpFunctionCall %void %main_1
-        %150 = OpLoad %v4float %x_GLF_color
-        %151 = OpCompositeConstruct %main_out %150
-        %149 = OpFunctionCall %void %tint_symbol_2 %151
+        %148 = OpLabel
+        %149 = OpFunctionCall %main_out %main_inner
+        %150 = OpCompositeExtract %v4float %149 0
+               OpStore %x_GLF_color_1_1 %150
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.spvasm
index 61df56b..2b90d5b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 192
+; Bound: 191
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -14,16 +15,15 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m0 "m0"
                OpName %c "c"
                OpName %m1 "m1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
@@ -36,8 +36,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -45,18 +49,13 @@
        %buf1 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %mat4v4float = OpTypeMatrix %v4float 4
@@ -78,7 +77,7 @@
      %uint_2 = OpConstant %uint 2
      %uint_3 = OpConstant %uint 3
    %main_out = OpTypeStruct %v4float
-        %180 = OpTypeFunction %void %main_out
+        %180 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
          %m0 = OpVariable %_ptr_Function_mat4v4float Function %27
@@ -242,18 +241,17 @@
         %160 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %180
-%tint_symbol = OpFunctionParameter %main_out
-        %184 = OpLabel
-        %185 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %185
-               OpReturn
+ %main_inner = OpFunction %main_out None %180
+        %183 = OpLabel
+        %184 = OpFunctionCall %void %main_1
+        %185 = OpLoad %v4float %x_GLF_color
+        %186 = OpCompositeConstruct %main_out %185
+               OpReturnValue %186
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %187 = OpLabel
-        %188 = OpFunctionCall %void %main_1
-        %190 = OpLoad %v4float %x_GLF_color
-        %191 = OpCompositeConstruct %main_out %190
-        %189 = OpFunctionCall %void %tint_symbol_2 %191
+        %188 = OpLabel
+        %189 = OpFunctionCall %main_out %main_inner
+        %190 = OpCompositeExtract %v4float %189 0
+               OpStore %x_GLF_color_1_1 %190
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.wgsl.expected.spvasm
index 1bf7a3d..9e07478 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 198
+; Bound: 197
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -14,16 +15,15 @@
                OpMemberName %buf0 0 "x_GLF_uniform_float_values"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m0 "m0"
                OpName %c "c"
                OpName %m1 "m1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
@@ -36,8 +36,12 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -45,18 +49,13 @@
        %buf1 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf0 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %mat4v4float = OpTypeMatrix %v4float 4
@@ -78,7 +77,7 @@
      %uint_2 = OpConstant %uint 2
      %uint_3 = OpConstant %uint 3
    %main_out = OpTypeStruct %v4float
-        %186 = OpTypeFunction %void %main_out
+        %186 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
          %m0 = OpVariable %_ptr_Function_mat4v4float Function %27
@@ -257,18 +256,17 @@
         %166 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %186
-%tint_symbol = OpFunctionParameter %main_out
-        %190 = OpLabel
-        %191 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %191
-               OpReturn
+ %main_inner = OpFunction %main_out None %186
+        %189 = OpLabel
+        %190 = OpFunctionCall %void %main_1
+        %191 = OpLoad %v4float %x_GLF_color
+        %192 = OpCompositeConstruct %main_out %191
+               OpReturnValue %192
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %193 = OpLabel
-        %194 = OpFunctionCall %void %main_1
-        %196 = OpLoad %v4float %x_GLF_color
-        %197 = OpCompositeConstruct %main_out %196
-        %195 = OpFunctionCall %void %tint_symbol_2 %197
+        %194 = OpLabel
+        %195 = OpFunctionCall %main_out %main_inner
+        %196 = OpCompositeExtract %v4float %195 0
+               OpStore %x_GLF_color_1_1 %196
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-val-cfg-case-fallthrough/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-val-cfg-case-fallthrough/0-opt.spvasm.expected.spvasm
index b35e4cc..21a787f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-val-cfg-case-fallthrough/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-val-cfg-case-fallthrough/0-opt.spvasm.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -53,7 +52,7 @@
          %39 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %40 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %41 = OpTypeFunction %void %main_out
+         %41 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %18
@@ -84,18 +83,17 @@
          %34 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %41
-%tint_symbol = OpFunctionParameter %main_out
-         %45 = OpLabel
-         %46 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %46
-               OpReturn
+ %main_inner = OpFunction %main_out None %41
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %main_1
+         %46 = OpLoad %v4float %x_GLF_color
+         %47 = OpCompositeConstruct %main_out %46
+               OpReturnValue %47
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %main_1
-         %51 = OpLoad %v4float %x_GLF_color
-         %52 = OpCompositeConstruct %main_out %51
-         %50 = OpFunctionCall %void %tint_symbol_2 %52
+         %49 = OpLabel
+         %50 = OpFunctionCall %main_out %main_inner
+         %51 = OpCompositeExtract %v4float %50 0
+               OpStore %x_GLF_color_1_1 %51
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-val-cfg-case-fallthrough/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-val-cfg-case-fallthrough/0-opt.wgsl.expected.spvasm
index b35e4cc..21a787f 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-val-cfg-case-fallthrough/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-val-cfg-case-fallthrough/0-opt.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -53,7 +52,7 @@
          %39 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %40 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %41 = OpTypeFunction %void %main_out
+         %41 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %18
@@ -84,18 +83,17 @@
          %34 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %41
-%tint_symbol = OpFunctionParameter %main_out
-         %45 = OpLabel
-         %46 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %46
-               OpReturn
+ %main_inner = OpFunction %main_out None %41
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %main_1
+         %46 = OpLoad %v4float %x_GLF_color
+         %47 = OpCompositeConstruct %main_out %46
+               OpReturnValue %47
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %main_1
-         %51 = OpLoad %v4float %x_GLF_color
-         %52 = OpCompositeConstruct %main_out %51
-         %50 = OpFunctionCall %void %tint_symbol_2 %52
+         %49 = OpLabel
+         %50 = OpFunctionCall %main_out %main_inner
+         %51 = OpCompositeExtract %v4float %50 0
+               OpStore %x_GLF_color_1_1 %51
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.spvasm.expected.spvasm
index 35b828d..6212659 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.spvasm.expected.spvasm
@@ -1,36 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 100
+; Bound: 99
 ; Schema: 0
                OpCapability Shader
          %61 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %A "A"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -38,13 +42,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -60,7 +59,7 @@
        %bool = OpTypeBool
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %88 = OpTypeFunction %void %main_out
+         %88 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %21
@@ -139,18 +138,17 @@
          %73 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %88
-%tint_symbol = OpFunctionParameter %main_out
-         %92 = OpLabel
-         %93 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %93
-               OpReturn
+ %main_inner = OpFunction %main_out None %88
+         %91 = OpLabel
+         %92 = OpFunctionCall %void %main_1
+         %93 = OpLoad %v4float %x_GLF_color
+         %94 = OpCompositeConstruct %main_out %93
+               OpReturnValue %94
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %95 = OpLabel
-         %96 = OpFunctionCall %void %main_1
-         %98 = OpLoad %v4float %x_GLF_color
-         %99 = OpCompositeConstruct %main_out %98
-         %97 = OpFunctionCall %void %tint_symbol_2 %99
+         %96 = OpLabel
+         %97 = OpFunctionCall %main_out %main_inner
+         %98 = OpCompositeExtract %v4float %97 0
+               OpStore %x_GLF_color_1_1 %98
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.wgsl.expected.spvasm
index 35b828d..6212659 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.wgsl.expected.spvasm
@@ -1,36 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 100
+; Bound: 99
 ; Schema: 0
                OpCapability Shader
          %61 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %A "A"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_3 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
@@ -38,13 +42,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -60,7 +59,7 @@
        %bool = OpTypeBool
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %88 = OpTypeFunction %void %main_out
+         %88 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %21
@@ -139,18 +138,17 @@
          %73 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %88
-%tint_symbol = OpFunctionParameter %main_out
-         %92 = OpLabel
-         %93 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %93
-               OpReturn
+ %main_inner = OpFunction %main_out None %88
+         %91 = OpLabel
+         %92 = OpFunctionCall %void %main_1
+         %93 = OpLoad %v4float %x_GLF_color
+         %94 = OpCompositeConstruct %main_out %93
+               OpReturnValue %94
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %95 = OpLabel
-         %96 = OpFunctionCall %void %main_1
-         %98 = OpLoad %v4float %x_GLF_color
-         %99 = OpCompositeConstruct %main_out %98
-         %97 = OpFunctionCall %void %tint_symbol_2 %99
+         %96 = OpLabel
+         %97 = OpFunctionCall %main_out %main_inner
+         %98 = OpCompositeExtract %v4float %97 0
+               OpStore %x_GLF_color_1_1 %98
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.spvasm.expected.spvasm
index 815ee58..a0b252c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.spvasm.expected.spvasm
@@ -1,33 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 92
+; Bound: 91
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -35,13 +39,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -54,7 +53,7 @@
        %bool = OpTypeBool
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %80 = OpTypeFunction %void %main_out
+         %80 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -133,18 +132,17 @@
          %60 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %80
-%tint_symbol = OpFunctionParameter %main_out
-         %84 = OpLabel
-         %85 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %85
-               OpReturn
+ %main_inner = OpFunction %main_out None %80
+         %83 = OpLabel
+         %84 = OpFunctionCall %void %main_1
+         %85 = OpLoad %v4float %x_GLF_color
+         %86 = OpCompositeConstruct %main_out %85
+               OpReturnValue %86
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %87 = OpLabel
-         %88 = OpFunctionCall %void %main_1
-         %90 = OpLoad %v4float %x_GLF_color
-         %91 = OpCompositeConstruct %main_out %90
-         %89 = OpFunctionCall %void %tint_symbol_2 %91
+         %88 = OpLabel
+         %89 = OpFunctionCall %main_out %main_inner
+         %90 = OpCompositeExtract %v4float %89 0
+               OpStore %x_GLF_color_1_1 %90
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.wgsl.expected.spvasm
index 815ee58..a0b252c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.wgsl.expected.spvasm
@@ -1,33 +1,37 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 92
+; Bound: 91
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -35,13 +39,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -54,7 +53,7 @@
        %bool = OpTypeBool
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %80 = OpTypeFunction %void %main_out
+         %80 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -133,18 +132,17 @@
          %60 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %80
-%tint_symbol = OpFunctionParameter %main_out
-         %84 = OpLabel
-         %85 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %85
-               OpReturn
+ %main_inner = OpFunction %main_out None %80
+         %83 = OpLabel
+         %84 = OpFunctionCall %void %main_1
+         %85 = OpLoad %v4float %x_GLF_color
+         %86 = OpCompositeConstruct %main_out %85
+               OpReturnValue %86
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %87 = OpLabel
-         %88 = OpFunctionCall %void %main_1
-         %90 = OpLoad %v4float %x_GLF_color
-         %91 = OpCompositeConstruct %main_out %90
-         %89 = OpFunctionCall %void %tint_symbol_2 %91
+         %88 = OpLabel
+         %89 = OpFunctionCall %main_out %main_inner
+         %90 = OpCompositeExtract %v4float %89 0
+               OpStore %x_GLF_color_1_1 %90
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.spvasm.expected.spvasm
index 04cf099..4b63e0c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.spvasm.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 60
+; Bound: 59
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "two"
                OpName %x_7 "x_7"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -52,7 +51,7 @@
          %46 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %47 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %48 = OpTypeFunction %void %main_out
+         %48 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %18
@@ -97,18 +96,17 @@
          %41 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %48
-%tint_symbol = OpFunctionParameter %main_out
-         %52 = OpLabel
-         %53 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %53
-               OpReturn
+ %main_inner = OpFunction %main_out None %48
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %main_1
+         %53 = OpLoad %v4float %x_GLF_color
+         %54 = OpCompositeConstruct %main_out %53
+               OpReturnValue %54
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %main_1
-         %58 = OpLoad %v4float %x_GLF_color
-         %59 = OpCompositeConstruct %main_out %58
-         %57 = OpFunctionCall %void %tint_symbol_2 %59
+         %56 = OpLabel
+         %57 = OpFunctionCall %main_out %main_inner
+         %58 = OpCompositeExtract %v4float %57 0
+               OpStore %x_GLF_color_1_1 %58
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.wgsl.expected.spvasm
index 04cf099..4b63e0c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 60
+; Bound: 59
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "two"
                OpName %x_7 "x_7"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -52,7 +51,7 @@
          %46 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %47 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %48 = OpTypeFunction %void %main_out
+         %48 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %18
@@ -97,18 +96,17 @@
          %41 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %48
-%tint_symbol = OpFunctionParameter %main_out
-         %52 = OpLabel
-         %53 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %53
-               OpReturn
+ %main_inner = OpFunction %main_out None %48
+         %51 = OpLabel
+         %52 = OpFunctionCall %void %main_1
+         %53 = OpLoad %v4float %x_GLF_color
+         %54 = OpCompositeConstruct %main_out %53
+               OpReturnValue %54
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %55 = OpLabel
-         %56 = OpFunctionCall %void %main_1
-         %58 = OpLoad %v4float %x_GLF_color
-         %59 = OpCompositeConstruct %main_out %58
-         %57 = OpFunctionCall %void %tint_symbol_2 %59
+         %56 = OpLabel
+         %57 = OpFunctionCall %main_out %main_inner
+         %58 = OpCompositeExtract %v4float %57 0
+               OpStore %x_GLF_color_1_1 %58
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.spvasm.expected.spvasm
index 0d08156..1f8dc72 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.spvasm.expected.spvasm
@@ -1,34 +1,38 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 94
+; Bound: 93
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %sum "sum"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -36,13 +40,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -56,7 +55,7 @@
       %int_2 = OpConstant %int 2
       %int_3 = OpConstant %int 3
    %main_out = OpTypeStruct %v4float
-         %82 = OpTypeFunction %void %main_out
+         %82 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -138,18 +137,17 @@
          %62 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %82
-%tint_symbol = OpFunctionParameter %main_out
-         %86 = OpLabel
-         %87 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %87
-               OpReturn
+ %main_inner = OpFunction %main_out None %82
+         %85 = OpLabel
+         %86 = OpFunctionCall %void %main_1
+         %87 = OpLoad %v4float %x_GLF_color
+         %88 = OpCompositeConstruct %main_out %87
+               OpReturnValue %88
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %89 = OpLabel
-         %90 = OpFunctionCall %void %main_1
-         %92 = OpLoad %v4float %x_GLF_color
-         %93 = OpCompositeConstruct %main_out %92
-         %91 = OpFunctionCall %void %tint_symbol_2 %93
+         %90 = OpLabel
+         %91 = OpFunctionCall %main_out %main_inner
+         %92 = OpCompositeExtract %v4float %91 0
+               OpStore %x_GLF_color_1_1 %92
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.wgsl.expected.spvasm
index 0d08156..1f8dc72 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.wgsl.expected.spvasm
@@ -1,34 +1,38 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 94
+; Bound: 93
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %sum "sum"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_4 ArrayStride 16
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_4 = OpConstant %uint 4
@@ -36,13 +40,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -56,7 +55,7 @@
       %int_2 = OpConstant %int 2
       %int_3 = OpConstant %int 3
    %main_out = OpTypeStruct %v4float
-         %82 = OpTypeFunction %void %main_out
+         %82 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %a = OpVariable %_ptr_Function_int Function %21
@@ -138,18 +137,17 @@
          %62 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %82
-%tint_symbol = OpFunctionParameter %main_out
-         %86 = OpLabel
-         %87 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %87
-               OpReturn
+ %main_inner = OpFunction %main_out None %82
+         %85 = OpLabel
+         %86 = OpFunctionCall %void %main_1
+         %87 = OpLoad %v4float %x_GLF_color
+         %88 = OpCompositeConstruct %main_out %87
+               OpReturnValue %88
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %89 = OpLabel
-         %90 = OpFunctionCall %void %main_1
-         %92 = OpLoad %v4float %x_GLF_color
-         %93 = OpCompositeConstruct %main_out %92
-         %91 = OpFunctionCall %void %tint_symbol_2 %93
+         %90 = OpLabel
+         %91 = OpFunctionCall %main_out %main_inner
+         %92 = OpCompositeExtract %v4float %91 0
+               OpStore %x_GLF_color_1_1 %92
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.spvasm.expected.spvasm
index 1b834bb..947f831 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 80
+; Bound: 79
 ; Schema: 0
                OpCapability Shader
          %38 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf2 "buf2"
                OpMemberName %buf2 0 "x_GLF_uniform_uint_values"
                OpName %x_6 "x_6"
@@ -18,14 +19,13 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf2 Block
                OpMemberDecorate %buf2 0 Offset 0
                OpDecorate %_arr_uint_uint_1 ArrayStride 16
@@ -44,31 +44,30 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
        %buf2 = OpTypeStruct %_arr_uint_uint_1
 %_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2
         %x_6 = OpVariable %_ptr_Uniform_buf2 Uniform
-      %float = OpTypeFloat 32
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf1 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %15 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %15
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %15
        %void = OpTypeVoid
          %24 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -82,7 +81,7 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %68 = OpTypeFunction %void %main_out
+         %68 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %24
          %27 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %30
@@ -123,18 +122,17 @@
          %46 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %68
-%tint_symbol = OpFunctionParameter %main_out
-         %72 = OpLabel
-         %73 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %73
-               OpReturn
+ %main_inner = OpFunction %main_out None %68
+         %71 = OpLabel
+         %72 = OpFunctionCall %void %main_1
+         %73 = OpLoad %v4float %x_GLF_color
+         %74 = OpCompositeConstruct %main_out %73
+               OpReturnValue %74
                OpFunctionEnd
        %main = OpFunction %void None %24
-         %75 = OpLabel
-         %76 = OpFunctionCall %void %main_1
-         %78 = OpLoad %v4float %x_GLF_color
-         %79 = OpCompositeConstruct %main_out %78
-         %77 = OpFunctionCall %void %tint_symbol_2 %79
+         %76 = OpLabel
+         %77 = OpFunctionCall %main_out %main_inner
+         %78 = OpCompositeExtract %v4float %77 0
+               OpStore %x_GLF_color_1_1 %78
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.wgsl.expected.spvasm
index 1b834bb..947f831 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 80
+; Bound: 79
 ; Schema: 0
                OpCapability Shader
          %38 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf2 "buf2"
                OpMemberName %buf2 0 "x_GLF_uniform_uint_values"
                OpName %x_6 "x_6"
@@ -18,14 +19,13 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_10 "x_10"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %f "f"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf2 Block
                OpMemberDecorate %buf2 0 Offset 0
                OpDecorate %_arr_uint_uint_1 ArrayStride 16
@@ -44,31 +44,30 @@
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_arr_uint_uint_1 = OpTypeArray %uint %uint_1
        %buf2 = OpTypeStruct %_arr_uint_uint_1
 %_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2
         %x_6 = OpVariable %_ptr_Uniform_buf2 Uniform
-      %float = OpTypeFloat 32
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf1 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %15 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %15
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
      %uint_2 = OpConstant %uint 2
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %15
        %void = OpTypeVoid
          %24 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -82,7 +81,7 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %68 = OpTypeFunction %void %main_out
+         %68 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %24
          %27 = OpLabel
           %f = OpVariable %_ptr_Function_float Function %30
@@ -123,18 +122,17 @@
          %46 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %68
-%tint_symbol = OpFunctionParameter %main_out
-         %72 = OpLabel
-         %73 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %73
-               OpReturn
+ %main_inner = OpFunction %main_out None %68
+         %71 = OpLabel
+         %72 = OpFunctionCall %void %main_1
+         %73 = OpLoad %v4float %x_GLF_color
+         %74 = OpCompositeConstruct %main_out %73
+               OpReturnValue %74
                OpFunctionEnd
        %main = OpFunction %void None %24
-         %75 = OpLabel
-         %76 = OpFunctionCall %void %main_1
-         %78 = OpLoad %v4float %x_GLF_color
-         %79 = OpCompositeConstruct %main_out %78
-         %77 = OpFunctionCall %void %tint_symbol_2 %79
+         %76 = OpLabel
+         %77 = OpFunctionCall %main_out %main_inner
+         %78 = OpCompositeExtract %v4float %77 0
+               OpStore %x_GLF_color_1_1 %78
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.spvasm.expected.spvasm
index 0879b72..86dae79 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.spvasm.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 253
+; Bound: 252
 ; Schema: 0
                OpCapability Shader
         %153 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %ref "ref"
                OpName %i "i"
@@ -22,18 +22,22 @@
                OpName %i_3 "i_3"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_16 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_15 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_16 = OpConstant %uint 16
@@ -41,13 +45,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_16
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %uint_15 = OpConstant %uint 15
@@ -76,7 +75,7 @@
        %bool = OpTypeBool
       %int_7 = OpConstant %int 7
    %main_out = OpTypeStruct %v4float
-        %241 = OpTypeFunction %void %main_out
+        %241 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
         %ref = OpVariable %_ptr_Function__arr_int_uint_15 Function %23
@@ -344,18 +343,17 @@
                OpStore %x_GLF_color %240
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %241
-%tint_symbol = OpFunctionParameter %main_out
-        %245 = OpLabel
-        %246 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %246
-               OpReturn
+ %main_inner = OpFunction %main_out None %241
+        %244 = OpLabel
+        %245 = OpFunctionCall %void %main_1
+        %246 = OpLoad %v4float %x_GLF_color
+        %247 = OpCompositeConstruct %main_out %246
+               OpReturnValue %247
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %248 = OpLabel
-        %249 = OpFunctionCall %void %main_1
-        %251 = OpLoad %v4float %x_GLF_color
-        %252 = OpCompositeConstruct %main_out %251
-        %250 = OpFunctionCall %void %tint_symbol_2 %252
+        %249 = OpLabel
+        %250 = OpFunctionCall %main_out %main_inner
+        %251 = OpCompositeExtract %v4float %250 0
+               OpStore %x_GLF_color_1_1 %251
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.wgsl.expected.spvasm
index 0879b72..86dae79 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.wgsl.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 253
+; Bound: 252
 ; Schema: 0
                OpCapability Shader
         %153 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %ref "ref"
                OpName %i "i"
@@ -22,18 +22,22 @@
                OpName %i_3 "i_3"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_16 ArrayStride 16
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_15 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_16 = OpConstant %uint 16
@@ -41,13 +45,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_16
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %uint_15 = OpConstant %uint 15
@@ -76,7 +75,7 @@
        %bool = OpTypeBool
       %int_7 = OpConstant %int 7
    %main_out = OpTypeStruct %v4float
-        %241 = OpTypeFunction %void %main_out
+        %241 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
         %ref = OpVariable %_ptr_Function__arr_int_uint_15 Function %23
@@ -344,18 +343,17 @@
                OpStore %x_GLF_color %240
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %241
-%tint_symbol = OpFunctionParameter %main_out
-        %245 = OpLabel
-        %246 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %246
-               OpReturn
+ %main_inner = OpFunction %main_out None %241
+        %244 = OpLabel
+        %245 = OpFunctionCall %void %main_1
+        %246 = OpLoad %v4float %x_GLF_color
+        %247 = OpCompositeConstruct %main_out %246
+               OpReturnValue %247
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %248 = OpLabel
-        %249 = OpFunctionCall %void %main_1
-        %251 = OpLoad %v4float %x_GLF_color
-        %252 = OpCompositeConstruct %main_out %251
-        %250 = OpFunctionCall %void %tint_symbol_2 %252
+        %249 = OpLabel
+        %250 = OpFunctionCall %main_out %main_inner
+        %251 = OpCompositeExtract %v4float %250 0
+               OpStore %x_GLF_color_1_1 %251
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.spvasm.expected.spvasm
index bba0bd0..4baf220 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.spvasm.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 71
+; Bound: 70
 ; Schema: 0
                OpCapability Shader
          %42 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "quarter"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %N "N"
                OpName %I "I"
@@ -20,26 +20,25 @@
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -69,13 +68,13 @@
          %57 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %58 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %59 = OpTypeFunction %void %main_out
+         %59 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
-          %N = OpVariable %_ptr_Function_v4float Function %8
-          %I = OpVariable %_ptr_Function_v4float Function %8
-       %Nref = OpVariable %_ptr_Function_v4float Function %8
-          %v = OpVariable %_ptr_Function_v4float Function %8
+          %N = OpVariable %_ptr_Function_v4float Function %5
+          %I = OpVariable %_ptr_Function_v4float Function %5
+       %Nref = OpVariable %_ptr_Function_v4float Function %5
+          %v = OpVariable %_ptr_Function_v4float Function %5
                OpStore %N %24
          %28 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0
          %29 = OpLoad %float %28
@@ -101,18 +100,17 @@
          %53 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %59
-%tint_symbol = OpFunctionParameter %main_out
-         %63 = OpLabel
-         %64 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %64
-               OpReturn
+ %main_inner = OpFunction %main_out None %59
+         %62 = OpLabel
+         %63 = OpFunctionCall %void %main_1
+         %64 = OpLoad %v4float %x_GLF_color
+         %65 = OpCompositeConstruct %main_out %64
+               OpReturnValue %65
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %66 = OpLabel
-         %67 = OpFunctionCall %void %main_1
-         %69 = OpLoad %v4float %x_GLF_color
-         %70 = OpCompositeConstruct %main_out %69
-         %68 = OpFunctionCall %void %tint_symbol_2 %70
+         %67 = OpLabel
+         %68 = OpFunctionCall %main_out %main_inner
+         %69 = OpCompositeExtract %v4float %68 0
+               OpStore %x_GLF_color_1_1 %69
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.wgsl.expected.spvasm
index bba0bd0..4baf220 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.wgsl.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 71
+; Bound: 70
 ; Schema: 0
                OpCapability Shader
          %42 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "quarter"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %N "N"
                OpName %I "I"
@@ -20,26 +20,25 @@
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -69,13 +68,13 @@
          %57 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %58 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %59 = OpTypeFunction %void %main_out
+         %59 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
-          %N = OpVariable %_ptr_Function_v4float Function %8
-          %I = OpVariable %_ptr_Function_v4float Function %8
-       %Nref = OpVariable %_ptr_Function_v4float Function %8
-          %v = OpVariable %_ptr_Function_v4float Function %8
+          %N = OpVariable %_ptr_Function_v4float Function %5
+          %I = OpVariable %_ptr_Function_v4float Function %5
+       %Nref = OpVariable %_ptr_Function_v4float Function %5
+          %v = OpVariable %_ptr_Function_v4float Function %5
                OpStore %N %24
          %28 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0
          %29 = OpLoad %float %28
@@ -101,18 +100,17 @@
          %53 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %59
-%tint_symbol = OpFunctionParameter %main_out
-         %63 = OpLabel
-         %64 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %64
-               OpReturn
+ %main_inner = OpFunction %main_out None %59
+         %62 = OpLabel
+         %63 = OpFunctionCall %void %main_1
+         %64 = OpLoad %v4float %x_GLF_color
+         %65 = OpCompositeConstruct %main_out %64
+               OpReturnValue %65
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %66 = OpLabel
-         %67 = OpFunctionCall %void %main_1
-         %69 = OpLoad %v4float %x_GLF_color
-         %70 = OpCompositeConstruct %main_out %69
-         %68 = OpFunctionCall %void %tint_symbol_2 %70
+         %67 = OpLabel
+         %68 = OpFunctionCall %main_out %main_inner
+         %69 = OpCompositeExtract %v4float %68 0
+               OpStore %x_GLF_color_1_1 %69
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.spvasm.expected.spvasm
index a8b0d8c..b42cb47 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.spvasm.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 70
+; Bound: 69
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -62,7 +61,7 @@
          %56 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %57 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %58 = OpTypeFunction %void %main_out
+         %58 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_v2float Function %19
@@ -100,18 +99,17 @@
          %52 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %58
-%tint_symbol = OpFunctionParameter %main_out
-         %62 = OpLabel
-         %63 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %63
-               OpReturn
+ %main_inner = OpFunction %main_out None %58
+         %61 = OpLabel
+         %62 = OpFunctionCall %void %main_1
+         %63 = OpLoad %v4float %x_GLF_color
+         %64 = OpCompositeConstruct %main_out %63
+               OpReturnValue %64
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %65 = OpLabel
-         %66 = OpFunctionCall %void %main_1
-         %68 = OpLoad %v4float %x_GLF_color
-         %69 = OpCompositeConstruct %main_out %68
-         %67 = OpFunctionCall %void %tint_symbol_2 %69
+         %66 = OpLabel
+         %67 = OpFunctionCall %main_out %main_inner
+         %68 = OpCompositeExtract %v4float %67 0
+               OpStore %x_GLF_color_1_1 %68
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.wgsl.expected.spvasm
index a8b0d8c..b42cb47 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 70
+; Bound: 69
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -62,7 +61,7 @@
          %56 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %57 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %58 = OpTypeFunction %void %main_out
+         %58 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %a = OpVariable %_ptr_Function_v2float Function %19
@@ -100,18 +99,17 @@
          %52 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %58
-%tint_symbol = OpFunctionParameter %main_out
-         %62 = OpLabel
-         %63 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %63
-               OpReturn
+ %main_inner = OpFunction %main_out None %58
+         %61 = OpLabel
+         %62 = OpFunctionCall %void %main_1
+         %63 = OpLoad %v4float %x_GLF_color
+         %64 = OpCompositeConstruct %main_out %63
+               OpReturnValue %64
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %65 = OpLabel
-         %66 = OpFunctionCall %void %main_1
-         %68 = OpLoad %v4float %x_GLF_color
-         %69 = OpCompositeConstruct %main_out %68
-         %67 = OpFunctionCall %void %tint_symbol_2 %69
+         %66 = OpLabel
+         %67 = OpFunctionCall %main_out %main_inner
+         %68 = OpCompositeExtract %v4float %67 0
+               OpStore %x_GLF_color_1_1 %68
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.spvasm.expected.spvasm
index 0722d66..50e32c8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.spvasm.expected.spvasm
@@ -1,32 +1,31 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
          %29 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -43,7 +42,7 @@
          %38 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %39 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %40 = OpTypeFunction %void %main_out
+         %40 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %a = OpVariable %_ptr_Function_v2float Function %15
@@ -71,18 +70,17 @@
          %34 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %40
-%tint_symbol = OpFunctionParameter %main_out
-         %44 = OpLabel
-         %45 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %45
-               OpReturn
+ %main_inner = OpFunction %main_out None %40
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %main_1
+         %45 = OpLoad %v4float %x_GLF_color
+         %46 = OpCompositeConstruct %main_out %45
+               OpReturnValue %46
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %main_1
-         %50 = OpLoad %v4float %x_GLF_color
-         %51 = OpCompositeConstruct %main_out %50
-         %49 = OpFunctionCall %void %tint_symbol_2 %51
+         %48 = OpLabel
+         %49 = OpFunctionCall %main_out %main_inner
+         %50 = OpCompositeExtract %v4float %49 0
+               OpStore %x_GLF_color_1_1 %50
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.wgsl.expected.spvasm
index 0722d66..50e32c8 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.wgsl.expected.spvasm
@@ -1,32 +1,31 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 51
 ; Schema: 0
                OpCapability Shader
          %29 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -43,7 +42,7 @@
          %38 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %39 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %40 = OpTypeFunction %void %main_out
+         %40 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %a = OpVariable %_ptr_Function_v2float Function %15
@@ -71,18 +70,17 @@
          %34 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %40
-%tint_symbol = OpFunctionParameter %main_out
-         %44 = OpLabel
-         %45 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %45
-               OpReturn
+ %main_inner = OpFunction %main_out None %40
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %main_1
+         %45 = OpLoad %v4float %x_GLF_color
+         %46 = OpCompositeConstruct %main_out %45
+               OpReturnValue %46
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %47 = OpLabel
-         %48 = OpFunctionCall %void %main_1
-         %50 = OpLoad %v4float %x_GLF_color
-         %51 = OpCompositeConstruct %main_out %50
-         %49 = OpFunctionCall %void %tint_symbol_2 %51
+         %48 = OpLabel
+         %49 = OpFunctionCall %main_out %main_inner
+         %50 = OpCompositeExtract %v4float %49 0
+               OpStore %x_GLF_color_1_1 %50
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.spvasm.expected.spvasm
index 77d6182..458ecf2 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.spvasm.expected.spvasm
@@ -1,31 +1,30 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
          %17 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -43,7 +42,7 @@
          %36 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %37 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %38 = OpTypeFunction %void %main_out
+         %38 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %v = OpVariable %_ptr_Function_v2float Function %15
@@ -66,18 +65,17 @@
          %32 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %38
-%tint_symbol = OpFunctionParameter %main_out
-         %42 = OpLabel
-         %43 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %43
-               OpReturn
+ %main_inner = OpFunction %main_out None %38
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %main_1
+         %43 = OpLoad %v4float %x_GLF_color
+         %44 = OpCompositeConstruct %main_out %43
+               OpReturnValue %44
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %main_1
-         %48 = OpLoad %v4float %x_GLF_color
-         %49 = OpCompositeConstruct %main_out %48
-         %47 = OpFunctionCall %void %tint_symbol_2 %49
+         %46 = OpLabel
+         %47 = OpFunctionCall %main_out %main_inner
+         %48 = OpCompositeExtract %v4float %47 0
+               OpStore %x_GLF_color_1_1 %48
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.wgsl.expected.spvasm
index 77d6182..458ecf2 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.wgsl.expected.spvasm
@@ -1,31 +1,30 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
          %17 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -43,7 +42,7 @@
          %36 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %37 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %38 = OpTypeFunction %void %main_out
+         %38 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %v = OpVariable %_ptr_Function_v2float Function %15
@@ -66,18 +65,17 @@
          %32 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %38
-%tint_symbol = OpFunctionParameter %main_out
-         %42 = OpLabel
-         %43 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %43
-               OpReturn
+ %main_inner = OpFunction %main_out None %38
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %main_1
+         %43 = OpLoad %v4float %x_GLF_color
+         %44 = OpCompositeConstruct %main_out %43
+               OpReturnValue %44
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %main_1
-         %48 = OpLoad %v4float %x_GLF_color
-         %49 = OpCompositeConstruct %main_out %48
-         %47 = OpFunctionCall %void %tint_symbol_2 %49
+         %46 = OpLabel
+         %47 = OpFunctionCall %main_out %main_inner
+         %48 = OpCompositeExtract %v4float %47 0
+               OpStore %x_GLF_color_1_1 %48
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-wrap-op-kill-for-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-wrap-op-kill-for-loop/0-opt.spvasm.expected.spvasm
index faecfdf..f94406c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-wrap-op-kill-for-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-wrap-op-kill-for-loop/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 77
+; Bound: 76
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_i1_ "func_i1_"
                OpName %x "x"
                OpName %main_1 "main_1"
@@ -20,27 +20,26 @@
                OpName %x_31_phi "x_31_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %12 = OpTypeFunction %void %_ptr_Function_int
@@ -59,7 +58,7 @@
      %int_10 = OpConstant %int 10
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %65 = OpTypeFunction %void %main_out
+         %65 = OpTypeFunction %main_out
    %func_i1_ = OpFunction %void None %12
           %x = OpFunctionParameter %_ptr_Function_int
          %17 = OpLabel
@@ -121,18 +120,17 @@
          %49 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %65
-%tint_symbol = OpFunctionParameter %main_out
-         %69 = OpLabel
-         %70 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %70
-               OpReturn
+ %main_inner = OpFunction %main_out None %65
+         %68 = OpLabel
+         %69 = OpFunctionCall %void %main_1
+         %70 = OpLoad %v4float %x_GLF_color
+         %71 = OpCompositeConstruct %main_out %70
+               OpReturnValue %71
                OpFunctionEnd
        %main = OpFunction %void None %40
-         %72 = OpLabel
-         %73 = OpFunctionCall %void %main_1
-         %75 = OpLoad %v4float %x_GLF_color
-         %76 = OpCompositeConstruct %main_out %75
-         %74 = OpFunctionCall %void %tint_symbol_2 %76
+         %73 = OpLabel
+         %74 = OpFunctionCall %main_out %main_inner
+         %75 = OpCompositeExtract %v4float %74 0
+               OpStore %x_GLF_color_1_1 %75
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-wrap-op-kill-for-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-wrap-op-kill-for-loop/0-opt.wgsl.expected.spvasm
index faecfdf..f94406c 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-wrap-op-kill-for-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-wrap-op-kill-for-loop/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 77
+; Bound: 76
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_i1_ "func_i1_"
                OpName %x "x"
                OpName %main_1 "main_1"
@@ -20,27 +20,26 @@
                OpName %x_31_phi "x_31_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %12 = OpTypeFunction %void %_ptr_Function_int
@@ -59,7 +58,7 @@
      %int_10 = OpConstant %int 10
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %65 = OpTypeFunction %void %main_out
+         %65 = OpTypeFunction %main_out
    %func_i1_ = OpFunction %void None %12
           %x = OpFunctionParameter %_ptr_Function_int
          %17 = OpLabel
@@ -121,18 +120,17 @@
          %49 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %65
-%tint_symbol = OpFunctionParameter %main_out
-         %69 = OpLabel
-         %70 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %70
-               OpReturn
+ %main_inner = OpFunction %main_out None %65
+         %68 = OpLabel
+         %69 = OpFunctionCall %void %main_1
+         %70 = OpLoad %v4float %x_GLF_color
+         %71 = OpCompositeConstruct %main_out %70
+               OpReturnValue %71
                OpFunctionEnd
        %main = OpFunction %void None %40
-         %72 = OpLabel
-         %73 = OpFunctionCall %void %main_1
-         %75 = OpLoad %v4float %x_GLF_color
-         %76 = OpCompositeConstruct %main_out %75
-         %74 = OpFunctionCall %void %tint_symbol_2 %76
+         %73 = OpLabel
+         %74 = OpFunctionCall %main_out %main_inner
+         %75 = OpCompositeExtract %v4float %74 0
+               OpStore %x_GLF_color_1_1 %75
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-wrap-op-kill-two-branches/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-wrap-op-kill-two-branches/0-opt.spvasm.expected.spvasm
index b497a16..f1c0d30 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-wrap-op-kill-two-branches/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-wrap-op-kill-two-branches/0-opt.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "five"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %func_f1_ "func_f1_"
                OpName %x "x"
                OpName %main_1 "main_1"
@@ -22,31 +22,31 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_float = OpTypePointer Function %float
          %15 = OpTypeFunction %float %_ptr_Function_float
     %float_5 = OpConstant %float 5
@@ -69,7 +69,7 @@
          %83 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %84 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %85 = OpTypeFunction %void %main_out
+         %85 = OpTypeFunction %main_out %v4float
    %func_f1_ = OpFunction %float None %15
           %x = OpFunctionParameter %_ptr_Function_float
          %19 = OpLabel
@@ -150,20 +150,20 @@
          %80 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %85
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %85
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %89 = OpLabel
-         %90 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %90
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %90 = OpFunctionCall %void %main_1
+         %91 = OpLoad %v4float %x_GLF_color
+         %92 = OpCompositeConstruct %main_out %91
+               OpReturnValue %92
                OpFunctionEnd
        %main = OpFunction %void None %47
-         %92 = OpLabel
-         %93 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %93
-         %94 = OpFunctionCall %void %main_1
-         %96 = OpLoad %v4float %x_GLF_color
-         %97 = OpCompositeConstruct %main_out %96
-         %95 = OpFunctionCall %void %tint_symbol_3 %97
+         %94 = OpLabel
+         %96 = OpLoad %v4float %gl_FragCoord_param_1
+         %95 = OpFunctionCall %main_out %main_inner %96
+         %97 = OpCompositeExtract %v4float %95 0
+               OpStore %x_GLF_color_1_1 %97
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-wrap-op-kill-two-branches/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-wrap-op-kill-two-branches/0-opt.wgsl.expected.spvasm
index b497a16..f1c0d30 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-wrap-op-kill-two-branches/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-wrap-op-kill-two-branches/0-opt.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "five"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %func_f1_ "func_f1_"
                OpName %x "x"
                OpName %main_1 "main_1"
@@ -22,31 +22,31 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_float = OpTypePointer Function %float
          %15 = OpTypeFunction %float %_ptr_Function_float
     %float_5 = OpConstant %float 5
@@ -69,7 +69,7 @@
          %83 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %84 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %85 = OpTypeFunction %void %main_out
+         %85 = OpTypeFunction %main_out %v4float
    %func_f1_ = OpFunction %float None %15
           %x = OpFunctionParameter %_ptr_Function_float
          %19 = OpLabel
@@ -150,20 +150,20 @@
          %80 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %85
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %85
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %89 = OpLabel
-         %90 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %90
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %90 = OpFunctionCall %void %main_1
+         %91 = OpLoad %v4float %x_GLF_color
+         %92 = OpCompositeConstruct %main_out %91
+               OpReturnValue %92
                OpFunctionEnd
        %main = OpFunction %void None %47
-         %92 = OpLabel
-         %93 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %93
-         %94 = OpFunctionCall %void %main_1
-         %96 = OpLoad %v4float %x_GLF_color
-         %97 = OpCompositeConstruct %main_out %96
-         %95 = OpFunctionCall %void %tint_symbol_3 %97
+         %94 = OpLabel
+         %96 = OpLoad %v4float %gl_FragCoord_param_1
+         %95 = OpFunctionCall %main_out %main_inner %96
+         %97 = OpCompositeExtract %v4float %95 0
+               OpStore %x_GLF_color_1_1 %97
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.spvasm.expected.spvasm
index 47ebb6d..62fe687 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 100
+; Bound: 99
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -14,7 +15,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m32 "m32"
                OpName %sums "sums"
@@ -22,9 +22,9 @@
                OpName %x_53 "x_53"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -37,10 +37,13 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_3 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -53,12 +56,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -82,7 +81,7 @@
 %_ptr_Function_float = OpTypePointer Function %float
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %88 = OpTypeFunction %void %main_out
+         %88 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
         %m32 = OpVariable %_ptr_Function_mat3v2float Function %28
@@ -151,18 +150,17 @@
                OpStore %x_GLF_color %87
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %88
-%tint_symbol = OpFunctionParameter %main_out
-         %92 = OpLabel
-         %93 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %93
-               OpReturn
+ %main_inner = OpFunction %main_out None %88
+         %91 = OpLabel
+         %92 = OpFunctionCall %void %main_1
+         %93 = OpLoad %v4float %x_GLF_color
+         %94 = OpCompositeConstruct %main_out %93
+               OpReturnValue %94
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %95 = OpLabel
-         %96 = OpFunctionCall %void %main_1
-         %98 = OpLoad %v4float %x_GLF_color
-         %99 = OpCompositeConstruct %main_out %98
-         %97 = OpFunctionCall %void %tint_symbol_2 %99
+         %96 = OpLabel
+         %97 = OpFunctionCall %main_out %main_inner
+         %98 = OpCompositeExtract %v4float %97 0
+               OpStore %x_GLF_color_1_1 %98
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.wgsl.expected.spvasm
index 47ebb6d..62fe687 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 100
+; Bound: 99
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -14,7 +15,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m32 "m32"
                OpName %sums "sums"
@@ -22,9 +22,9 @@
                OpName %x_53 "x_53"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_2 ArrayStride 16
@@ -37,10 +37,13 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_3 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
@@ -53,12 +56,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_3
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -82,7 +81,7 @@
 %_ptr_Function_float = OpTypePointer Function %float
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %88 = OpTypeFunction %void %main_out
+         %88 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
         %m32 = OpVariable %_ptr_Function_mat3v2float Function %28
@@ -151,18 +150,17 @@
                OpStore %x_GLF_color %87
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %88
-%tint_symbol = OpFunctionParameter %main_out
-         %92 = OpLabel
-         %93 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %93
-               OpReturn
+ %main_inner = OpFunction %main_out None %88
+         %91 = OpLabel
+         %92 = OpFunctionCall %void %main_1
+         %93 = OpLoad %v4float %x_GLF_color
+         %94 = OpCompositeConstruct %main_out %93
+               OpReturnValue %94
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %95 = OpLabel
-         %96 = OpFunctionCall %void %main_1
-         %98 = OpLoad %v4float %x_GLF_color
-         %99 = OpCompositeConstruct %main_out %98
-         %97 = OpFunctionCall %void %tint_symbol_2 %99
+         %96 = OpLabel
+         %97 = OpFunctionCall %main_out %main_inner
+         %98 = OpCompositeExtract %v4float %97 0
+               OpStore %x_GLF_color_1_1 %98
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.spvasm.expected.spvasm
index 43172e9..09748fb 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 97
+; Bound: 96
 ; Schema: 0
                OpCapability Shader
          %38 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -15,16 +16,15 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v1 "v1"
                OpName %x_54 "x_54"
                OpName %x_55_phi "x_55_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -37,8 +37,12 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -46,17 +50,12 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf1 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -75,7 +74,7 @@
 %_ptr_Uniform_float = OpTypePointer Uniform %float
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %85 = OpTypeFunction %void %main_out
+         %85 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
          %v1 = OpVariable %_ptr_Function_v2float Function %26
@@ -140,18 +139,17 @@
          %65 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %85
-%tint_symbol = OpFunctionParameter %main_out
-         %89 = OpLabel
-         %90 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %90
-               OpReturn
+ %main_inner = OpFunction %main_out None %85
+         %88 = OpLabel
+         %89 = OpFunctionCall %void %main_1
+         %90 = OpLoad %v4float %x_GLF_color
+         %91 = OpCompositeConstruct %main_out %90
+               OpReturnValue %91
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %92 = OpLabel
-         %93 = OpFunctionCall %void %main_1
-         %95 = OpLoad %v4float %x_GLF_color
-         %96 = OpCompositeConstruct %main_out %95
-         %94 = OpFunctionCall %void %tint_symbol_2 %96
+         %93 = OpLabel
+         %94 = OpFunctionCall %main_out %main_inner
+         %95 = OpCompositeExtract %v4float %94 0
+               OpStore %x_GLF_color_1_1 %95
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.wgsl.expected.spvasm
index 43172e9..09748fb 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 97
+; Bound: 96
 ; Schema: 0
                OpCapability Shader
          %38 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_6 "x_6"
@@ -15,16 +16,15 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_8 "x_8"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %v1 "v1"
                OpName %x_54 "x_54"
                OpName %x_55_phi "x_55_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
@@ -37,8 +37,12 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 1
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -46,17 +50,12 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_arr_float_uint_2 = OpTypeArray %float %uint_2
        %buf1 = OpTypeStruct %_arr_float_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_8 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
        %void = OpTypeVoid
          %19 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -75,7 +74,7 @@
 %_ptr_Uniform_float = OpTypePointer Uniform %float
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %85 = OpTypeFunction %void %main_out
+         %85 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %19
          %22 = OpLabel
          %v1 = OpVariable %_ptr_Function_v2float Function %26
@@ -140,18 +139,17 @@
          %65 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %85
-%tint_symbol = OpFunctionParameter %main_out
-         %89 = OpLabel
-         %90 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %90
-               OpReturn
+ %main_inner = OpFunction %main_out None %85
+         %88 = OpLabel
+         %89 = OpFunctionCall %void %main_1
+         %90 = OpLoad %v4float %x_GLF_color
+         %91 = OpCompositeConstruct %main_out %90
+               OpReturnValue %91
                OpFunctionEnd
        %main = OpFunction %void None %19
-         %92 = OpLabel
-         %93 = OpFunctionCall %void %main_1
-         %95 = OpLoad %v4float %x_GLF_color
-         %96 = OpCompositeConstruct %main_out %95
-         %94 = OpFunctionCall %void %tint_symbol_2 %96
+         %93 = OpLabel
+         %94 = OpFunctionCall %main_out %main_inner
+         %95 = OpCompositeExtract %v4float %94 0
+               OpStore %x_GLF_color_1_1 %95
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.spvasm.expected.spvasm
index 8b2693b..e73d4a6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 86
+; Bound: 85
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_uint_values"
                OpName %x_6 "x_6"
@@ -17,16 +18,15 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_12 "x_12"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
                OpName %c "c"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_uint_uint_2 ArrayStride 16
@@ -45,31 +45,30 @@
                OpDecorate %x_12 NonWritable
                OpDecorate %x_12 DescriptorSet 0
                OpDecorate %x_12 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_uint_uint_2 = OpTypeArray %uint %uint_2
        %buf1 = OpTypeStruct %_arr_uint_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf2 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2
         %x_8 = OpVariable %_ptr_Uniform_buf2 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_12 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
        %void = OpTypeVoid
          %24 = OpTypeFunction %void
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -84,7 +83,7 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %74 = OpTypeFunction %void %main_out
+         %74 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %24
          %27 = OpLabel
           %a = OpVariable %_ptr_Function_uint Function %30
@@ -133,18 +132,17 @@
          %54 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %74
-%tint_symbol = OpFunctionParameter %main_out
-         %78 = OpLabel
-         %79 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %79
-               OpReturn
+ %main_inner = OpFunction %main_out None %74
+         %77 = OpLabel
+         %78 = OpFunctionCall %void %main_1
+         %79 = OpLoad %v4float %x_GLF_color
+         %80 = OpCompositeConstruct %main_out %79
+               OpReturnValue %80
                OpFunctionEnd
        %main = OpFunction %void None %24
-         %81 = OpLabel
-         %82 = OpFunctionCall %void %main_1
-         %84 = OpLoad %v4float %x_GLF_color
-         %85 = OpCompositeConstruct %main_out %84
-         %83 = OpFunctionCall %void %tint_symbol_2 %85
+         %82 = OpLabel
+         %83 = OpFunctionCall %main_out %main_inner
+         %84 = OpCompositeExtract %v4float %83 0
+               OpStore %x_GLF_color_1_1 %84
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.wgsl.expected.spvasm
index 8b2693b..e73d4a6 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 86
+; Bound: 85
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_uint_values"
                OpName %x_6 "x_6"
@@ -17,16 +18,15 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_12 "x_12"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %a "a"
                OpName %b "b"
                OpName %c "c"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_uint_uint_2 ArrayStride 16
@@ -45,31 +45,30 @@
                OpDecorate %x_12 NonWritable
                OpDecorate %x_12 DescriptorSet 0
                OpDecorate %x_12 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
 %_arr_uint_uint_2 = OpTypeArray %uint %uint_2
        %buf1 = OpTypeStruct %_arr_uint_uint_2
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
         %x_6 = OpVariable %_ptr_Uniform_buf1 Uniform
-      %float = OpTypeFloat 32
      %uint_1 = OpConstant %uint 1
 %_arr_float_uint_1 = OpTypeArray %float %uint_1
        %buf2 = OpTypeStruct %_arr_float_uint_1
 %_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2
         %x_8 = OpVariable %_ptr_Uniform_buf2 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %16
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
 %_arr_int_uint_2 = OpTypeArray %int %uint_2
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_12 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %16
        %void = OpTypeVoid
          %24 = OpTypeFunction %void
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -84,7 +83,7 @@
 %_ptr_Uniform_int = OpTypePointer Uniform %int
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %74 = OpTypeFunction %void %main_out
+         %74 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %24
          %27 = OpLabel
           %a = OpVariable %_ptr_Function_uint Function %30
@@ -133,18 +132,17 @@
          %54 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %74
-%tint_symbol = OpFunctionParameter %main_out
-         %78 = OpLabel
-         %79 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %79
-               OpReturn
+ %main_inner = OpFunction %main_out None %74
+         %77 = OpLabel
+         %78 = OpFunctionCall %void %main_1
+         %79 = OpLoad %v4float %x_GLF_color
+         %80 = OpCompositeConstruct %main_out %79
+               OpReturnValue %80
                OpFunctionEnd
        %main = OpFunction %void None %24
-         %81 = OpLabel
-         %82 = OpFunctionCall %void %main_1
-         %84 = OpLoad %v4float %x_GLF_color
-         %85 = OpCompositeConstruct %main_out %84
-         %83 = OpFunctionCall %void %tint_symbol_2 %85
+         %82 = OpLabel
+         %83 = OpFunctionCall %main_out %main_inner
+         %84 = OpCompositeExtract %v4float %83 0
+               OpStore %x_GLF_color_1_1 %84
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.spvasm.expected.spvasm
index 9acf823..37e6c5b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 150
+; Bound: 149
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -14,7 +15,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %A "A"
                OpName %i "i"
@@ -23,9 +23,9 @@
                OpName %x_102_phi "x_102_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
@@ -38,10 +38,13 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
@@ -54,12 +57,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
@@ -81,7 +80,7 @@
       %int_2 = OpConstant %int 2
 %int_n2147483648 = OpConstant %int -2147483648
    %main_out = OpTypeStruct %v4float
-        %138 = OpTypeFunction %void %main_out
+        %138 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %A = OpVariable %_ptr_Function__arr_float_uint_2 Function %28
@@ -228,18 +227,17 @@
         %118 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %138
-%tint_symbol = OpFunctionParameter %main_out
-        %142 = OpLabel
-        %143 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %143
-               OpReturn
+ %main_inner = OpFunction %main_out None %138
+        %141 = OpLabel
+        %142 = OpFunctionCall %void %main_1
+        %143 = OpLoad %v4float %x_GLF_color
+        %144 = OpCompositeConstruct %main_out %143
+               OpReturnValue %144
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %145 = OpLabel
-        %146 = OpFunctionCall %void %main_1
-        %148 = OpLoad %v4float %x_GLF_color
-        %149 = OpCompositeConstruct %main_out %148
-        %147 = OpFunctionCall %void %tint_symbol_2 %149
+        %146 = OpLabel
+        %147 = OpFunctionCall %main_out %main_inner
+        %148 = OpCompositeExtract %v4float %147 0
+               OpStore %x_GLF_color_1_1 %148
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.wgsl.expected.spvasm
index 9acf823..37e6c5b 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 150
+; Bound: 149
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "x_GLF_uniform_float_values"
                OpName %x_6 "x_6"
@@ -14,7 +15,6 @@
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %A "A"
                OpName %i "i"
@@ -23,9 +23,9 @@
                OpName %x_102_phi "x_102_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %_arr_float_uint_3 ArrayStride 16
@@ -38,10 +38,13 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_float_uint_3 = OpTypeArray %float %uint_3
@@ -54,12 +57,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_4
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
      %uint_2 = OpConstant %uint 2
@@ -81,7 +80,7 @@
       %int_2 = OpConstant %int 2
 %int_n2147483648 = OpConstant %int -2147483648
    %main_out = OpTypeStruct %v4float
-        %138 = OpTypeFunction %void %main_out
+        %138 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
           %A = OpVariable %_ptr_Function__arr_float_uint_2 Function %28
@@ -228,18 +227,17 @@
         %118 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %138
-%tint_symbol = OpFunctionParameter %main_out
-        %142 = OpLabel
-        %143 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %143
-               OpReturn
+ %main_inner = OpFunction %main_out None %138
+        %141 = OpLabel
+        %142 = OpFunctionCall %void %main_1
+        %143 = OpLoad %v4float %x_GLF_color
+        %144 = OpCompositeConstruct %main_out %143
+               OpReturnValue %144
                OpFunctionEnd
        %main = OpFunction %void None %20
-        %145 = OpLabel
-        %146 = OpFunctionCall %void %main_1
-        %148 = OpLoad %v4float %x_GLF_color
-        %149 = OpCompositeConstruct %main_out %148
-        %147 = OpFunctionCall %void %tint_symbol_2 %149
+        %146 = OpLabel
+        %147 = OpFunctionCall %main_out %main_inner
+        %148 = OpCompositeExtract %v4float %147 0
+               OpStore %x_GLF_color_1_1 %148
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.spvasm.expected.spvasm
index d53643b..f542eb9 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.spvasm.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 108
+; Bound: 107
 ; Schema: 0
                OpCapability Shader
          %66 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %S "S"
                OpMemberName %S 0 "a"
@@ -21,21 +21,25 @@
                OpName %A "A"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %S 0 Offset 0
                OpMemberDecorate %S 1 Offset 4
                OpMemberDecorate %S 2 Offset 8
                OpDecorate %_arr_S_uint_2 ArrayStride 12
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -43,13 +47,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
           %S = OpTypeStruct %int %int %int
@@ -66,7 +65,7 @@
        %bool = OpTypeBool
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %96 = OpTypeFunction %void %main_out
+         %96 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %A = OpVariable %_ptr_Function__arr_S_uint_2 Function %23
@@ -146,18 +145,17 @@
          %76 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %96
-%tint_symbol = OpFunctionParameter %main_out
-        %100 = OpLabel
-        %101 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %101
-               OpReturn
+ %main_inner = OpFunction %main_out None %96
+         %99 = OpLabel
+        %100 = OpFunctionCall %void %main_1
+        %101 = OpLoad %v4float %x_GLF_color
+        %102 = OpCompositeConstruct %main_out %101
+               OpReturnValue %102
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %103 = OpLabel
-        %104 = OpFunctionCall %void %main_1
-        %106 = OpLoad %v4float %x_GLF_color
-        %107 = OpCompositeConstruct %main_out %106
-        %105 = OpFunctionCall %void %tint_symbol_2 %107
+        %104 = OpLabel
+        %105 = OpFunctionCall %main_out %main_inner
+        %106 = OpCompositeExtract %v4float %105 0
+               OpStore %x_GLF_color_1_1 %106
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.wgsl.expected.spvasm
index d53643b..f542eb9 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.wgsl.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 108
+; Bound: 107
 ; Schema: 0
                OpCapability Shader
          %66 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "x_GLF_uniform_int_values"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %S "S"
                OpMemberName %S 0 "a"
@@ -21,21 +21,25 @@
                OpName %A "A"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %_arr_int_uint_2 ArrayStride 16
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %S 0 Offset 0
                OpMemberDecorate %S 1 Offset 4
                OpMemberDecorate %S 2 Offset 8
                OpDecorate %_arr_S_uint_2 ArrayStride 12
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
@@ -43,13 +47,8 @@
        %buf0 = OpTypeStruct %_arr_int_uint_2
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
           %S = OpTypeStruct %int %int %int
@@ -66,7 +65,7 @@
        %bool = OpTypeBool
       %int_2 = OpConstant %int 2
    %main_out = OpTypeStruct %v4float
-         %96 = OpTypeFunction %void %main_out
+         %96 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %A = OpVariable %_ptr_Function__arr_S_uint_2 Function %23
@@ -146,18 +145,17 @@
          %76 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %96
-%tint_symbol = OpFunctionParameter %main_out
-        %100 = OpLabel
-        %101 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %101
-               OpReturn
+ %main_inner = OpFunction %main_out None %96
+         %99 = OpLabel
+        %100 = OpFunctionCall %void %main_1
+        %101 = OpLoad %v4float %x_GLF_color
+        %102 = OpCompositeConstruct %main_out %101
+               OpReturnValue %102
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %103 = OpLabel
-        %104 = OpFunctionCall %void %main_1
-        %106 = OpLoad %v4float %x_GLF_color
-        %107 = OpCompositeConstruct %main_out %106
-        %105 = OpFunctionCall %void %tint_symbol_2 %107
+        %104 = OpLabel
+        %105 = OpFunctionCall %main_out %main_inner
+        %106 = OpCompositeExtract %v4float %105 0
+               OpStore %x_GLF_color_1_1 %106
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.spvasm.expected.spvasm
index b6030fb..7e05fdd 100644
--- a/test/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %floats "floats"
@@ -24,32 +24,32 @@
                OpName %x_103_phi "x_103_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_float_uint_9 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_v2float = OpTypePointer Function %v2float
@@ -80,7 +80,7 @@
         %116 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %117 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %118 = OpTypeFunction %void %main_out
+        %118 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %v = OpVariable %_ptr_Function_v2float Function %21
@@ -208,20 +208,20 @@
         %101 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %118
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %118
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %122 = OpLabel
-        %123 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %123
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %123 = OpFunctionCall %void %main_1
+        %124 = OpLoad %v4float %x_GLF_color
+        %125 = OpCompositeConstruct %main_out %124
+               OpReturnValue %125
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %125 = OpLabel
-        %126 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %126
-        %127 = OpFunctionCall %void %main_1
-        %129 = OpLoad %v4float %x_GLF_color
-        %130 = OpCompositeConstruct %main_out %129
-        %128 = OpFunctionCall %void %tint_symbol_3 %130
+        %127 = OpLabel
+        %129 = OpLoad %v4float %gl_FragCoord_param_1
+        %128 = OpFunctionCall %main_out %main_inner %129
+        %130 = OpCompositeExtract %v4float %128 0
+               OpStore %x_GLF_color_1_1 %130
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.wgsl.expected.spvasm
index b6030fb..7e05fdd 100644
--- a/test/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %v "v"
                OpName %floats "floats"
@@ -24,32 +24,32 @@
                OpName %x_103_phi "x_103_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_float_uint_9 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_v2float = OpTypePointer Function %v2float
@@ -80,7 +80,7 @@
         %116 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %117 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %118 = OpTypeFunction %void %main_out
+        %118 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %v = OpVariable %_ptr_Function_v2float Function %21
@@ -208,20 +208,20 @@
         %101 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %118
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %118
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %122 = OpLabel
-        %123 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %123
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %123 = OpFunctionCall %void %main_1
+        %124 = OpLoad %v4float %x_GLF_color
+        %125 = OpCompositeConstruct %main_out %124
+               OpReturnValue %125
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %125 = OpLabel
-        %126 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %126
-        %127 = OpFunctionCall %void %main_1
-        %129 = OpLoad %v4float %x_GLF_color
-        %130 = OpCompositeConstruct %main_out %129
-        %128 = OpFunctionCall %void %tint_symbol_3 %130
+        %127 = OpLabel
+        %129 = OpLoad %v4float %gl_FragCoord_param_1
+        %128 = OpFunctionCall %main_out %main_inner %129
+        %130 = OpCompositeExtract %v4float %128 0
+               OpStore %x_GLF_color_1_1 %130
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.spvasm.expected.spvasm
index 6e67011..e7152d6 100644
--- a/test/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 93
+; Bound: 92
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %x_51 "x_51"
                OpName %main_1 "main_1"
                OpName %x_31 "x_31"
@@ -22,27 +22,26 @@
                OpName %x_55_phi "x_55_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -60,7 +59,7 @@
          %66 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
        %true = OpConstantTrue %bool
    %main_out = OpTypeStruct %v4float
-         %81 = OpTypeFunction %void %main_out
+         %81 = OpTypeFunction %main_out
        %x_51 = OpFunction %void None %12
          %15 = OpLabel
                OpKill
@@ -70,9 +69,9 @@
        %x_31 = OpVariable %_ptr_Function_bool Function %25
    %x_30_phi = OpVariable %_ptr_Function_bool Function %25
    %x_31_phi = OpVariable %_ptr_Function_bool Function %25
-       %x_52 = OpVariable %_ptr_Function_v4float Function %9
-       %x_54 = OpVariable %_ptr_Function_v4float Function %9
-   %x_55_phi = OpVariable %_ptr_Function_v4float Function %9
+       %x_52 = OpVariable %_ptr_Function_v4float Function %5
+       %x_54 = OpVariable %_ptr_Function_v4float Function %5
+   %x_55_phi = OpVariable %_ptr_Function_v4float Function %5
                OpBranch %18
          %18 = OpLabel
                OpLoopMerge %19 %20 None
@@ -162,18 +161,17 @@
          %19 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %81
-%tint_symbol = OpFunctionParameter %main_out
-         %85 = OpLabel
-         %86 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %86
-               OpReturn
+ %main_inner = OpFunction %main_out None %81
+         %84 = OpLabel
+         %85 = OpFunctionCall %void %main_1
+         %86 = OpLoad %v4float %x_GLF_color
+         %87 = OpCompositeConstruct %main_out %86
+               OpReturnValue %87
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %88 = OpLabel
-         %89 = OpFunctionCall %void %main_1
-         %91 = OpLoad %v4float %x_GLF_color
-         %92 = OpCompositeConstruct %main_out %91
-         %90 = OpFunctionCall %void %tint_symbol_2 %92
+         %89 = OpLabel
+         %90 = OpFunctionCall %main_out %main_inner
+         %91 = OpCompositeExtract %v4float %90 0
+               OpStore %x_GLF_color_1_1 %91
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.wgsl.expected.spvasm
index 6e67011..e7152d6 100644
--- a/test/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 93
+; Bound: 92
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %x_51 "x_51"
                OpName %main_1 "main_1"
                OpName %x_31 "x_31"
@@ -22,27 +22,26 @@
                OpName %x_55_phi "x_55_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -60,7 +59,7 @@
          %66 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
        %true = OpConstantTrue %bool
    %main_out = OpTypeStruct %v4float
-         %81 = OpTypeFunction %void %main_out
+         %81 = OpTypeFunction %main_out
        %x_51 = OpFunction %void None %12
          %15 = OpLabel
                OpKill
@@ -70,9 +69,9 @@
        %x_31 = OpVariable %_ptr_Function_bool Function %25
    %x_30_phi = OpVariable %_ptr_Function_bool Function %25
    %x_31_phi = OpVariable %_ptr_Function_bool Function %25
-       %x_52 = OpVariable %_ptr_Function_v4float Function %9
-       %x_54 = OpVariable %_ptr_Function_v4float Function %9
-   %x_55_phi = OpVariable %_ptr_Function_v4float Function %9
+       %x_52 = OpVariable %_ptr_Function_v4float Function %5
+       %x_54 = OpVariable %_ptr_Function_v4float Function %5
+   %x_55_phi = OpVariable %_ptr_Function_v4float Function %5
                OpBranch %18
          %18 = OpLabel
                OpLoopMerge %19 %20 None
@@ -162,18 +161,17 @@
          %19 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %81
-%tint_symbol = OpFunctionParameter %main_out
-         %85 = OpLabel
-         %86 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %86
-               OpReturn
+ %main_inner = OpFunction %main_out None %81
+         %84 = OpLabel
+         %85 = OpFunctionCall %void %main_1
+         %86 = OpLoad %v4float %x_GLF_color
+         %87 = OpCompositeConstruct %main_out %86
+               OpReturnValue %87
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %88 = OpLabel
-         %89 = OpFunctionCall %void %main_1
-         %91 = OpLoad %v4float %x_GLF_color
-         %92 = OpCompositeConstruct %main_out %91
-         %90 = OpFunctionCall %void %tint_symbol_2 %92
+         %89 = OpLabel
+         %90 = OpFunctionCall %main_out %main_inner
+         %91 = OpCompositeExtract %v4float %90 0
+               OpStore %x_GLF_color_1_1 %91
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.spvasm.expected.spvasm
index 75a7f74..ef78faf 100644
--- a/test/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.spvasm.expected.spvasm
@@ -5,44 +5,44 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_46_phi "x_46_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -59,7 +59,7 @@
       %false = OpConstantFalse %bool
          %54 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %55 = OpTypeFunction %void %main_out
+         %55 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
    %x_46_phi = OpVariable %_ptr_Function_bool Function %26
@@ -110,20 +110,20 @@
                OpStore %x_GLF_color %54
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %55
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %55
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %59 = OpLabel
-         %60 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %60
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %60 = OpFunctionCall %void %main_1
+         %61 = OpLoad %v4float %x_GLF_color
+         %62 = OpCompositeConstruct %main_out %61
+               OpReturnValue %62
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %62 = OpLabel
-         %63 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %63
-         %64 = OpFunctionCall %void %main_1
-         %66 = OpLoad %v4float %x_GLF_color
-         %67 = OpCompositeConstruct %main_out %66
-         %65 = OpFunctionCall %void %tint_symbol_3 %67
+         %64 = OpLabel
+         %66 = OpLoad %v4float %gl_FragCoord_param_1
+         %65 = OpFunctionCall %main_out %main_inner %66
+         %67 = OpCompositeExtract %v4float %65 0
+               OpStore %x_GLF_color_1_1 %67
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.wgsl.expected.spvasm
index 75a7f74..ef78faf 100644
--- a/test/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.wgsl.expected.spvasm
@@ -5,44 +5,44 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_46_phi "x_46_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -59,7 +59,7 @@
       %false = OpConstantFalse %bool
          %54 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %55 = OpTypeFunction %void %main_out
+         %55 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
    %x_46_phi = OpVariable %_ptr_Function_bool Function %26
@@ -110,20 +110,20 @@
                OpStore %x_GLF_color %54
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %55
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %55
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %59 = OpLabel
-         %60 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %60
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %60 = OpFunctionCall %void %main_1
+         %61 = OpLoad %v4float %x_GLF_color
+         %62 = OpCompositeConstruct %main_out %61
+               OpReturnValue %62
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %62 = OpLabel
-         %63 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %63
-         %64 = OpFunctionCall %void %main_1
-         %66 = OpLoad %v4float %x_GLF_color
-         %67 = OpCompositeConstruct %main_out %66
-         %65 = OpFunctionCall %void %tint_symbol_3 %67
+         %64 = OpLabel
+         %66 = OpLoad %v4float %gl_FragCoord_param_1
+         %65 = OpFunctionCall %main_out %main_inner %66
+         %67 = OpCompositeExtract %v4float %65 0
+               OpStore %x_GLF_color_1_1 %67
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.spvasm.expected.spvasm
index ca3016a..0094e72 100644
--- a/test/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.spvasm.expected.spvasm
@@ -5,34 +5,34 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %data "data"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_float_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -63,7 +63,7 @@
 %_ptr_Function_float = OpTypePointer Function %float
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %67 = OpTypeFunction %void %main_out
+         %67 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
        %data = OpVariable %_ptr_Function__arr_float_uint_10 Function %20
@@ -110,20 +110,20 @@
                OpStore %x_GLF_color %66
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %67
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %67
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %71 = OpLabel
-         %72 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %72
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %72 = OpFunctionCall %void %main_1
+         %73 = OpLoad %v4float %x_GLF_color
+         %74 = OpCompositeConstruct %main_out %73
+               OpReturnValue %74
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %74 = OpLabel
-         %75 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %75
-         %76 = OpFunctionCall %void %main_1
-         %78 = OpLoad %v4float %x_GLF_color
-         %79 = OpCompositeConstruct %main_out %78
-         %77 = OpFunctionCall %void %tint_symbol_3 %79
+         %76 = OpLabel
+         %78 = OpLoad %v4float %gl_FragCoord_param_1
+         %77 = OpFunctionCall %main_out %main_inner %78
+         %79 = OpCompositeExtract %v4float %77 0
+               OpStore %x_GLF_color_1_1 %79
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.wgsl.expected.spvasm
index ca3016a..0094e72 100644
--- a/test/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.wgsl.expected.spvasm
@@ -5,34 +5,34 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %data "data"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_float_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -63,7 +63,7 @@
 %_ptr_Function_float = OpTypePointer Function %float
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %67 = OpTypeFunction %void %main_out
+         %67 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
        %data = OpVariable %_ptr_Function__arr_float_uint_10 Function %20
@@ -110,20 +110,20 @@
                OpStore %x_GLF_color %66
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %67
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %67
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %71 = OpLabel
-         %72 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %72
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %72 = OpFunctionCall %void %main_1
+         %73 = OpLoad %v4float %x_GLF_color
+         %74 = OpCompositeConstruct %main_out %73
+               OpReturnValue %74
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %74 = OpLabel
-         %75 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %75
-         %76 = OpFunctionCall %void %main_1
-         %78 = OpLoad %v4float %x_GLF_color
-         %79 = OpCompositeConstruct %main_out %78
-         %77 = OpFunctionCall %void %tint_symbol_3 %79
+         %76 = OpLabel
+         %78 = OpLoad %v4float %gl_FragCoord_param_1
+         %77 = OpFunctionCall %main_out %main_inner %78
+         %79 = OpCompositeExtract %v4float %77 0
+               OpStore %x_GLF_color_1_1 %79
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.spvasm.expected.spvasm
index 95c10d6..e9214d4 100644
--- a/test/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.spvasm.expected.spvasm
@@ -5,44 +5,44 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_7 "x_7"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %f_ "f_"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -56,7 +56,7 @@
       %false = OpConstantFalse %bool
          %46 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %47 = OpTypeFunction %void %main_out
+         %47 = OpTypeFunction %main_out %v4float
          %f_ = OpFunction %void None %15
          %18 = OpLabel
                OpBranch %19
@@ -94,20 +94,20 @@
                OpStore %x_GLF_color %46
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %47
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %47
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %51 = OpLabel
-         %52 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %52
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %52 = OpFunctionCall %void %main_1
+         %53 = OpLoad %v4float %x_GLF_color
+         %54 = OpCompositeConstruct %main_out %53
+               OpReturnValue %54
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %55
-         %56 = OpFunctionCall %void %main_1
-         %58 = OpLoad %v4float %x_GLF_color
-         %59 = OpCompositeConstruct %main_out %58
-         %57 = OpFunctionCall %void %tint_symbol_3 %59
+         %56 = OpLabel
+         %58 = OpLoad %v4float %gl_FragCoord_param_1
+         %57 = OpFunctionCall %main_out %main_inner %58
+         %59 = OpCompositeExtract %v4float %57 0
+               OpStore %x_GLF_color_1_1 %59
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.wgsl.expected.spvasm
index 95c10d6..e9214d4 100644
--- a/test/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.wgsl.expected.spvasm
@@ -5,44 +5,44 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_7 "x_7"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %f_ "f_"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -56,7 +56,7 @@
       %false = OpConstantFalse %bool
          %46 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %47 = OpTypeFunction %void %main_out
+         %47 = OpTypeFunction %main_out %v4float
          %f_ = OpFunction %void None %15
          %18 = OpLabel
                OpBranch %19
@@ -94,20 +94,20 @@
                OpStore %x_GLF_color %46
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %47
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %47
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %51 = OpLabel
-         %52 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %52
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %52 = OpFunctionCall %void %main_1
+         %53 = OpLoad %v4float %x_GLF_color
+         %54 = OpCompositeConstruct %main_out %53
+               OpReturnValue %54
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %54 = OpLabel
-         %55 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %55
-         %56 = OpFunctionCall %void %main_1
-         %58 = OpLoad %v4float %x_GLF_color
-         %59 = OpCompositeConstruct %main_out %58
-         %57 = OpFunctionCall %void %tint_symbol_3 %59
+         %56 = OpLabel
+         %58 = OpLoad %v4float %gl_FragCoord_param_1
+         %57 = OpFunctionCall %main_out %main_inner %58
+         %59 = OpCompositeExtract %v4float %57 0
+               OpStore %x_GLF_color_1_1 %59
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.spvasm.expected.spvasm
index fb9fd81..f839726 100644
--- a/test/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.spvasm.expected.spvasm
@@ -5,12 +5,12 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %x_47 "x_47"
                OpName %main_1 "main_1"
                OpName %x_30_phi "x_30_phi"
@@ -18,22 +18,22 @@
                OpName %x_31 "x_31"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -55,7 +55,7 @@
     %float_1 = OpConstant %float 1
          %67 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %68 = OpTypeFunction %void %main_out
+         %68 = OpTypeFunction %main_out %v4float
        %x_47 = OpFunction %void None %11
          %14 = OpLabel
                OpKill
@@ -128,20 +128,20 @@
          %18 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %68
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %68
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %72 = OpLabel
-         %73 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %73
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %73 = OpFunctionCall %void %main_1
+         %74 = OpLoad %v4float %x_GLF_color
+         %75 = OpCompositeConstruct %main_out %74
+               OpReturnValue %75
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %75 = OpLabel
-         %76 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %76
-         %77 = OpFunctionCall %void %main_1
-         %79 = OpLoad %v4float %x_GLF_color
-         %80 = OpCompositeConstruct %main_out %79
-         %78 = OpFunctionCall %void %tint_symbol_3 %80
+         %77 = OpLabel
+         %79 = OpLoad %v4float %gl_FragCoord_param_1
+         %78 = OpFunctionCall %main_out %main_inner %79
+         %80 = OpCompositeExtract %v4float %78 0
+               OpStore %x_GLF_color_1_1 %80
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.wgsl.expected.spvasm
index fb9fd81..f839726 100644
--- a/test/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.wgsl.expected.spvasm
@@ -5,12 +5,12 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %x_47 "x_47"
                OpName %main_1 "main_1"
                OpName %x_30_phi "x_30_phi"
@@ -18,22 +18,22 @@
                OpName %x_31 "x_31"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -55,7 +55,7 @@
     %float_1 = OpConstant %float 1
          %67 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %68 = OpTypeFunction %void %main_out
+         %68 = OpTypeFunction %main_out %v4float
        %x_47 = OpFunction %void None %11
          %14 = OpLabel
                OpKill
@@ -128,20 +128,20 @@
          %18 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %68
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %68
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %72 = OpLabel
-         %73 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %73
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %73 = OpFunctionCall %void %main_1
+         %74 = OpLoad %v4float %x_GLF_color
+         %75 = OpCompositeConstruct %main_out %74
+               OpReturnValue %75
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %75 = OpLabel
-         %76 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %76
-         %77 = OpFunctionCall %void %main_1
-         %79 = OpLoad %v4float %x_GLF_color
-         %80 = OpCompositeConstruct %main_out %79
-         %78 = OpFunctionCall %void %tint_symbol_3 %80
+         %77 = OpLabel
+         %79 = OpLoad %v4float %gl_FragCoord_param_1
+         %78 = OpFunctionCall %main_out %main_inner %79
+         %80 = OpCompositeExtract %v4float %78 0
+               OpStore %x_GLF_color_1_1 %80
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.spvasm.expected.spvasm
index 1a87cf4..ff81c93 100644
--- a/test/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.spvasm.expected.spvasm
@@ -5,32 +5,32 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %ll "ll"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -48,7 +48,7 @@
       %int_5 = OpConstant %int 5
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %58 = OpTypeFunction %void %main_out
+         %58 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
          %ll = OpVariable %_ptr_Function_int Function %18
@@ -103,20 +103,20 @@
          %31 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %58
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %58
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %62 = OpLabel
-         %63 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %63
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %63 = OpFunctionCall %void %main_1
+         %64 = OpLoad %v4float %x_GLF_color
+         %65 = OpCompositeConstruct %main_out %64
+               OpReturnValue %65
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %65 = OpLabel
-         %66 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %66
-         %67 = OpFunctionCall %void %main_1
-         %69 = OpLoad %v4float %x_GLF_color
-         %70 = OpCompositeConstruct %main_out %69
-         %68 = OpFunctionCall %void %tint_symbol_3 %70
+         %67 = OpLabel
+         %69 = OpLoad %v4float %gl_FragCoord_param_1
+         %68 = OpFunctionCall %main_out %main_inner %69
+         %70 = OpCompositeExtract %v4float %68 0
+               OpStore %x_GLF_color_1_1 %70
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.wgsl.expected.spvasm
index 1a87cf4..ff81c93 100644
--- a/test/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.wgsl.expected.spvasm
@@ -5,32 +5,32 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %ll "ll"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -48,7 +48,7 @@
       %int_5 = OpConstant %int 5
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %58 = OpTypeFunction %void %main_out
+         %58 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
          %ll = OpVariable %_ptr_Function_int Function %18
@@ -103,20 +103,20 @@
          %31 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %58
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %58
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %62 = OpLabel
-         %63 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %63
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %63 = OpFunctionCall %void %main_1
+         %64 = OpLoad %v4float %x_GLF_color
+         %65 = OpCompositeConstruct %main_out %64
+               OpReturnValue %65
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %65 = OpLabel
-         %66 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %66
-         %67 = OpFunctionCall %void %main_1
-         %69 = OpLoad %v4float %x_GLF_color
-         %70 = OpCompositeConstruct %main_out %69
-         %68 = OpFunctionCall %void %tint_symbol_3 %70
+         %67 = OpLabel
+         %69 = OpLoad %v4float %gl_FragCoord_param_1
+         %68 = OpFunctionCall %main_out %main_inner %69
+         %70 = OpCompositeExtract %v4float %68 0
+               OpStore %x_GLF_color_1_1 %70
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.spvasm.expected.spvasm
index 2c77aec..fae65db 100644
--- a/test/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.spvasm.expected.spvasm
@@ -1,32 +1,31 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 79
+; Bound: 78
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %f_ "f_"
                OpName %iteration "iteration"
                OpName %k "k"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v3float = OpTypeVector %float 3
           %8 = OpTypeFunction %v3float
         %int = OpTypeInt 32 1
@@ -43,7 +42,7 @@
        %void = OpTypeVoid
          %58 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %67 = OpTypeFunction %void %main_out
+         %67 = OpTypeFunction %main_out
          %f_ = OpFunction %v3float None %8
          %11 = OpLabel
   %iteration = OpVariable %_ptr_Function_int Function %15
@@ -120,18 +119,17 @@
                OpStore %x_GLF_color %66
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %67
-%tint_symbol = OpFunctionParameter %main_out
-         %71 = OpLabel
-         %72 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %72
-               OpReturn
+ %main_inner = OpFunction %main_out None %67
+         %70 = OpLabel
+         %71 = OpFunctionCall %void %main_1
+         %72 = OpLoad %v4float %x_GLF_color
+         %73 = OpCompositeConstruct %main_out %72
+               OpReturnValue %73
                OpFunctionEnd
        %main = OpFunction %void None %58
-         %74 = OpLabel
-         %75 = OpFunctionCall %void %main_1
-         %77 = OpLoad %v4float %x_GLF_color
-         %78 = OpCompositeConstruct %main_out %77
-         %76 = OpFunctionCall %void %tint_symbol_2 %78
+         %75 = OpLabel
+         %76 = OpFunctionCall %main_out %main_inner
+         %77 = OpCompositeExtract %v4float %76 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.wgsl.expected.spvasm
index 2c77aec..fae65db 100644
--- a/test/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.wgsl.expected.spvasm
@@ -1,32 +1,31 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 79
+; Bound: 78
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %f_ "f_"
                OpName %iteration "iteration"
                OpName %k "k"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v3float = OpTypeVector %float 3
           %8 = OpTypeFunction %v3float
         %int = OpTypeInt 32 1
@@ -43,7 +42,7 @@
        %void = OpTypeVoid
          %58 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %67 = OpTypeFunction %void %main_out
+         %67 = OpTypeFunction %main_out
          %f_ = OpFunction %v3float None %8
          %11 = OpLabel
   %iteration = OpVariable %_ptr_Function_int Function %15
@@ -120,18 +119,17 @@
                OpStore %x_GLF_color %66
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %67
-%tint_symbol = OpFunctionParameter %main_out
-         %71 = OpLabel
-         %72 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %72
-               OpReturn
+ %main_inner = OpFunction %main_out None %67
+         %70 = OpLabel
+         %71 = OpFunctionCall %void %main_1
+         %72 = OpLoad %v4float %x_GLF_color
+         %73 = OpCompositeConstruct %main_out %72
+               OpReturnValue %73
                OpFunctionEnd
        %main = OpFunction %void None %58
-         %74 = OpLabel
-         %75 = OpFunctionCall %void %main_1
-         %77 = OpLoad %v4float %x_GLF_color
-         %78 = OpCompositeConstruct %main_out %77
-         %76 = OpFunctionCall %void %tint_symbol_2 %78
+         %75 = OpLabel
+         %76 = OpFunctionCall %main_out %main_inner
+         %77 = OpCompositeExtract %v4float %76 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.spvasm.expected.spvasm
index 8b3fe7b..85a1114 100644
--- a/test/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 88
+; Bound: 87
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %loop_count "loop_count"
                OpName %x_38_phi "x_38_phi"
@@ -20,27 +20,26 @@
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
          %12 = OpTypeFunction %int
 %_ptr_Function_int = OpTypePointer Function %int
@@ -60,7 +59,7 @@
          %74 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %75 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-         %76 = OpTypeFunction %void %main_out
+         %76 = OpTypeFunction %main_out
       %func_ = OpFunction %int None %12
          %15 = OpLabel
  %loop_count = OpVariable %_ptr_Function_int Function %18
@@ -141,18 +140,17 @@
          %69 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %76
-%tint_symbol = OpFunctionParameter %main_out
-         %80 = OpLabel
-         %81 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %81
-               OpReturn
+ %main_inner = OpFunction %main_out None %76
+         %79 = OpLabel
+         %80 = OpFunctionCall %void %main_1
+         %81 = OpLoad %v4float %x_GLF_color
+         %82 = OpCompositeConstruct %main_out %81
+               OpReturnValue %82
                OpFunctionEnd
        %main = OpFunction %void None %63
-         %83 = OpLabel
-         %84 = OpFunctionCall %void %main_1
-         %86 = OpLoad %v4float %x_GLF_color
-         %87 = OpCompositeConstruct %main_out %86
-         %85 = OpFunctionCall %void %tint_symbol_2 %87
+         %84 = OpLabel
+         %85 = OpFunctionCall %main_out %main_inner
+         %86 = OpCompositeExtract %v4float %85 0
+               OpStore %x_GLF_color_1_1 %86
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.wgsl.expected.spvasm
index 8b3fe7b..85a1114 100644
--- a/test/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 88
+; Bound: 87
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %loop_count "loop_count"
                OpName %x_38_phi "x_38_phi"
@@ -20,27 +20,26 @@
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
          %12 = OpTypeFunction %int
 %_ptr_Function_int = OpTypePointer Function %int
@@ -60,7 +59,7 @@
          %74 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %75 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-         %76 = OpTypeFunction %void %main_out
+         %76 = OpTypeFunction %main_out
       %func_ = OpFunction %int None %12
          %15 = OpLabel
  %loop_count = OpVariable %_ptr_Function_int Function %18
@@ -141,18 +140,17 @@
          %69 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %76
-%tint_symbol = OpFunctionParameter %main_out
-         %80 = OpLabel
-         %81 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %81
-               OpReturn
+ %main_inner = OpFunction %main_out None %76
+         %79 = OpLabel
+         %80 = OpFunctionCall %void %main_1
+         %81 = OpLoad %v4float %x_GLF_color
+         %82 = OpCompositeConstruct %main_out %81
+               OpReturnValue %82
                OpFunctionEnd
        %main = OpFunction %void None %63
-         %83 = OpLabel
-         %84 = OpFunctionCall %void %main_1
-         %86 = OpLoad %v4float %x_GLF_color
-         %87 = OpCompositeConstruct %main_out %86
-         %85 = OpFunctionCall %void %tint_symbol_2 %87
+         %84 = OpLabel
+         %85 = OpFunctionCall %main_out %main_inner
+         %86 = OpCompositeExtract %v4float %85 0
+               OpStore %x_GLF_color_1_1 %86
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.spvasm.expected.spvasm
index 927d38c..c60a59b 100644
--- a/test/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.spvasm.expected.spvasm
@@ -5,31 +5,31 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
@@ -41,7 +41,7 @@
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_float = OpTypePointer Private %float
    %main_out = OpTypeStruct %v4float
-         %37 = OpTypeFunction %void %main_out
+         %37 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
                OpStore %x_GLF_color %17
@@ -73,20 +73,20 @@
          %20 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %37
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %37
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %41 = OpLabel
-         %42 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %42
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %42 = OpFunctionCall %void %main_1
+         %43 = OpLoad %v4float %x_GLF_color
+         %44 = OpCompositeConstruct %main_out %43
+               OpReturnValue %44
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %44 = OpLabel
-         %45 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %45
-         %46 = OpFunctionCall %void %main_1
-         %48 = OpLoad %v4float %x_GLF_color
-         %49 = OpCompositeConstruct %main_out %48
-         %47 = OpFunctionCall %void %tint_symbol_3 %49
+         %46 = OpLabel
+         %48 = OpLoad %v4float %gl_FragCoord_param_1
+         %47 = OpFunctionCall %main_out %main_inner %48
+         %49 = OpCompositeExtract %v4float %47 0
+               OpStore %x_GLF_color_1_1 %49
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.wgsl.expected.spvasm
index 927d38c..c60a59b 100644
--- a/test/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.wgsl.expected.spvasm
@@ -5,31 +5,31 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
@@ -41,7 +41,7 @@
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_float = OpTypePointer Private %float
    %main_out = OpTypeStruct %v4float
-         %37 = OpTypeFunction %void %main_out
+         %37 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
                OpStore %x_GLF_color %17
@@ -73,20 +73,20 @@
          %20 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %37
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %37
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %41 = OpLabel
-         %42 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %42
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %42 = OpFunctionCall %void %main_1
+         %43 = OpLoad %v4float %x_GLF_color
+         %44 = OpCompositeConstruct %main_out %43
+               OpReturnValue %44
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %44 = OpLabel
-         %45 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %45
-         %46 = OpFunctionCall %void %main_1
-         %48 = OpLoad %v4float %x_GLF_color
-         %49 = OpCompositeConstruct %main_out %48
-         %47 = OpFunctionCall %void %tint_symbol_3 %49
+         %46 = OpLabel
+         %48 = OpLoad %v4float %gl_FragCoord_param_1
+         %47 = OpFunctionCall %main_out %main_inner %48
+         %49 = OpCompositeExtract %v4float %47 0
+               OpStore %x_GLF_color_1_1 %49
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.spvasm.expected.spvasm
index ddaaf92..368cfc2 100644
--- a/test/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.spvasm.expected.spvasm
@@ -5,44 +5,44 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_7 "x_7"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %loop_count "loop_count"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -62,7 +62,7 @@
          %63 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %87 = OpTypeFunction %void %main_out
+         %87 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
  %loop_count = OpVariable %_ptr_Function_int Function %22
@@ -172,20 +172,20 @@
          %84 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %87
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %87
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %91 = OpLabel
-         %92 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %92
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %92 = OpFunctionCall %void %main_1
+         %93 = OpLoad %v4float %x_GLF_color
+         %94 = OpCompositeConstruct %main_out %93
+               OpReturnValue %94
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %94 = OpLabel
-         %95 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %95
-         %96 = OpFunctionCall %void %main_1
-         %98 = OpLoad %v4float %x_GLF_color
-         %99 = OpCompositeConstruct %main_out %98
-         %97 = OpFunctionCall %void %tint_symbol_3 %99
+         %96 = OpLabel
+         %98 = OpLoad %v4float %gl_FragCoord_param_1
+         %97 = OpFunctionCall %main_out %main_inner %98
+         %99 = OpCompositeExtract %v4float %97 0
+               OpStore %x_GLF_color_1_1 %99
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.wgsl.expected.spvasm
index ddaaf92..368cfc2 100644
--- a/test/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.wgsl.expected.spvasm
@@ -5,44 +5,44 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_7 "x_7"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %loop_count "loop_count"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -62,7 +62,7 @@
          %63 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %87 = OpTypeFunction %void %main_out
+         %87 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
  %loop_count = OpVariable %_ptr_Function_int Function %22
@@ -172,20 +172,20 @@
          %84 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %87
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %87
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %91 = OpLabel
-         %92 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %92
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %92 = OpFunctionCall %void %main_1
+         %93 = OpLoad %v4float %x_GLF_color
+         %94 = OpCompositeConstruct %main_out %93
+               OpReturnValue %94
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %94 = OpLabel
-         %95 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %95
-         %96 = OpFunctionCall %void %main_1
-         %98 = OpLoad %v4float %x_GLF_color
-         %99 = OpCompositeConstruct %main_out %98
-         %97 = OpFunctionCall %void %tint_symbol_3 %99
+         %96 = OpLabel
+         %98 = OpLoad %v4float %gl_FragCoord_param_1
+         %97 = OpFunctionCall %main_out %main_inner %98
+         %99 = OpCompositeExtract %v4float %97 0
+               OpStore %x_GLF_color_1_1 %99
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.spvasm.expected.spvasm
index 945adf2..ed87ecd 100644
--- a/test/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.spvasm.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 61
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %color_1_1 "color_1_1"
                OpName %color "color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %drawShape_vf2_ "drawShape_vf2_"
                OpName %pos "pos"
                OpName %c3 "c3"
@@ -17,18 +17,17 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-      %color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+  %color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+      %color = OpVariable %_ptr_Private_v4float Private %5
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
 %_ptr_Function_v2float = OpTypePointer Function %v2float
@@ -49,7 +48,7 @@
     %float_0 = OpConstant %float 0
          %48 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %49 = OpTypeFunction %void %main_out
+         %49 = OpTypeFunction %main_out
 %drawShape_vf2_ = OpFunction %v3float None %8
         %pos = OpFunctionParameter %_ptr_Function_v2float
          %14 = OpLabel
@@ -88,18 +87,17 @@
                OpStore %color %48
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %49
-%tint_symbol = OpFunctionParameter %main_out
-         %53 = OpLabel
-         %54 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %54
-               OpReturn
+ %main_inner = OpFunction %main_out None %49
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %main_1
+         %54 = OpLoad %v4float %color
+         %55 = OpCompositeConstruct %main_out %54
+               OpReturnValue %55
                OpFunctionEnd
        %main = OpFunction %void None %38
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %main_1
-         %59 = OpLoad %v4float %color
-         %60 = OpCompositeConstruct %main_out %59
-         %58 = OpFunctionCall %void %tint_symbol_2 %60
+         %57 = OpLabel
+         %58 = OpFunctionCall %main_out %main_inner
+         %59 = OpCompositeExtract %v4float %58 0
+               OpStore %color_1_1 %59
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.wgsl.expected.spvasm
index 945adf2..ed87ecd 100644
--- a/test/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.wgsl.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 61
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %color_1_1 "color_1_1"
                OpName %color "color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %drawShape_vf2_ "drawShape_vf2_"
                OpName %pos "pos"
                OpName %c3 "c3"
@@ -17,18 +17,17 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-      %color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+  %color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+      %color = OpVariable %_ptr_Private_v4float Private %5
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
 %_ptr_Function_v2float = OpTypePointer Function %v2float
@@ -49,7 +48,7 @@
     %float_0 = OpConstant %float 0
          %48 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %49 = OpTypeFunction %void %main_out
+         %49 = OpTypeFunction %main_out
 %drawShape_vf2_ = OpFunction %v3float None %8
         %pos = OpFunctionParameter %_ptr_Function_v2float
          %14 = OpLabel
@@ -88,18 +87,17 @@
                OpStore %color %48
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %49
-%tint_symbol = OpFunctionParameter %main_out
-         %53 = OpLabel
-         %54 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %54
-               OpReturn
+ %main_inner = OpFunction %main_out None %49
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %main_1
+         %54 = OpLoad %v4float %color
+         %55 = OpCompositeConstruct %main_out %54
+               OpReturnValue %55
                OpFunctionEnd
        %main = OpFunction %void None %38
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %main_1
-         %59 = OpLoad %v4float %color
-         %60 = OpCompositeConstruct %main_out %59
-         %58 = OpFunctionCall %void %tint_symbol_2 %60
+         %57 = OpLabel
+         %58 = OpFunctionCall %main_out %main_inner
+         %59 = OpCompositeExtract %v4float %58 0
+               OpStore %color_1_1 %59
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.spvasm.expected.spvasm
index 3e35963..62f9638 100644
--- a/test/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.spvasm.expected.spvasm
@@ -1,30 +1,29 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %mand_ "mand_"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v3float = OpTypeVector %float 3
           %8 = OpTypeFunction %v3float
     %float_1 = OpConstant %float 1
@@ -35,7 +34,7 @@
          %20 = OpTypeFunction %void
          %29 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %30 = OpTypeFunction %void %main_out
+         %30 = OpTypeFunction %main_out
       %mand_ = OpFunction %v3float None %8
          %11 = OpLabel
                OpBranch %12
@@ -64,18 +63,17 @@
          %26 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %30
-%tint_symbol = OpFunctionParameter %main_out
-         %34 = OpLabel
-         %35 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %35
-               OpReturn
+ %main_inner = OpFunction %main_out None %30
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %main_1
+         %35 = OpLoad %v4float %x_GLF_color
+         %36 = OpCompositeConstruct %main_out %35
+               OpReturnValue %36
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %main_1
-         %40 = OpLoad %v4float %x_GLF_color
-         %41 = OpCompositeConstruct %main_out %40
-         %39 = OpFunctionCall %void %tint_symbol_2 %41
+         %38 = OpLabel
+         %39 = OpFunctionCall %main_out %main_inner
+         %40 = OpCompositeExtract %v4float %39 0
+               OpStore %x_GLF_color_1_1 %40
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.wgsl.expected.spvasm
index 3e35963..62f9638 100644
--- a/test/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.wgsl.expected.spvasm
@@ -1,30 +1,29 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 41
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %mand_ "mand_"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v3float = OpTypeVector %float 3
           %8 = OpTypeFunction %v3float
     %float_1 = OpConstant %float 1
@@ -35,7 +34,7 @@
          %20 = OpTypeFunction %void
          %29 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %30 = OpTypeFunction %void %main_out
+         %30 = OpTypeFunction %main_out
       %mand_ = OpFunction %v3float None %8
          %11 = OpLabel
                OpBranch %12
@@ -64,18 +63,17 @@
          %26 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %30
-%tint_symbol = OpFunctionParameter %main_out
-         %34 = OpLabel
-         %35 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %35
-               OpReturn
+ %main_inner = OpFunction %main_out None %30
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %main_1
+         %35 = OpLoad %v4float %x_GLF_color
+         %36 = OpCompositeConstruct %main_out %35
+               OpReturnValue %36
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %37 = OpLabel
-         %38 = OpFunctionCall %void %main_1
-         %40 = OpLoad %v4float %x_GLF_color
-         %41 = OpCompositeConstruct %main_out %40
-         %39 = OpFunctionCall %void %tint_symbol_2 %41
+         %38 = OpLabel
+         %39 = OpFunctionCall %main_out %main_inner
+         %40 = OpCompositeExtract %v4float %39 0
+               OpStore %x_GLF_color_1_1 %40
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.spvasm.expected.spvasm
index 42a7dcd..29dda82 100644
--- a/test/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.spvasm.expected.spvasm
@@ -5,32 +5,32 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -49,7 +49,7 @@
 %float_226_695999 = OpConstant %float 226.695999
          %49 = OpConstantComposite %v4float %float_226_695999 %float_1 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-         %52 = OpTypeFunction %void %main_out
+         %52 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %18
@@ -95,20 +95,20 @@
          %24 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %52
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %52
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %56 = OpLabel
-         %57 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %57
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %57 = OpFunctionCall %void %main_1
+         %58 = OpLoad %v4float %x_GLF_color
+         %59 = OpCompositeConstruct %main_out %58
+               OpReturnValue %59
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %59 = OpLabel
-         %60 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %60
-         %61 = OpFunctionCall %void %main_1
-         %63 = OpLoad %v4float %x_GLF_color
-         %64 = OpCompositeConstruct %main_out %63
-         %62 = OpFunctionCall %void %tint_symbol_3 %64
+         %61 = OpLabel
+         %63 = OpLoad %v4float %gl_FragCoord_param_1
+         %62 = OpFunctionCall %main_out %main_inner %63
+         %64 = OpCompositeExtract %v4float %62 0
+               OpStore %x_GLF_color_1_1 %64
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.wgsl.expected.spvasm
index 42a7dcd..29dda82 100644
--- a/test/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.wgsl.expected.spvasm
@@ -5,32 +5,32 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -49,7 +49,7 @@
 %float_226_695999 = OpConstant %float 226.695999
          %49 = OpConstantComposite %v4float %float_226_695999 %float_1 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-         %52 = OpTypeFunction %void %main_out
+         %52 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %18
@@ -95,20 +95,20 @@
          %24 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %52
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %52
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %56 = OpLabel
-         %57 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %57
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %57 = OpFunctionCall %void %main_1
+         %58 = OpLoad %v4float %x_GLF_color
+         %59 = OpCompositeConstruct %main_out %58
+               OpReturnValue %59
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %59 = OpLabel
-         %60 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %60
-         %61 = OpFunctionCall %void %main_1
-         %63 = OpLoad %v4float %x_GLF_color
-         %64 = OpCompositeConstruct %main_out %63
-         %62 = OpFunctionCall %void %tint_symbol_3 %64
+         %61 = OpLabel
+         %63 = OpLoad %v4float %gl_FragCoord_param_1
+         %62 = OpFunctionCall %main_out %main_inner %63
+         %64 = OpCompositeExtract %v4float %62 0
+               OpStore %x_GLF_color_1_1 %64
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.spvasm.expected.spvasm
index a6c6ca5..0c9f169 100644
--- a/test/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_9 "x_9"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_43 "x_43"
                OpName %x_44 "x_44"
@@ -24,36 +24,36 @@
                OpName %temp "temp"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
                OpName %alwaysZero_vf2_ "alwaysZero_vf2_"
                OpName %coord "coord"
                OpName %a "a"
                OpName %x_110 "x_110"
                OpName %b "b"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -78,7 +78,7 @@
          %74 = OpConstantComposite %v4float %float_0 %float_1 %float_1 %float_1
      %uint_2 = OpConstant %uint 2
    %main_out = OpTypeStruct %v4float
-        %113 = OpTypeFunction %void %main_out
+        %113 = OpTypeFunction %main_out %v4float
         %126 = OpTypeFunction %int %_ptr_Function_v2float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
@@ -197,21 +197,21 @@
         %107 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %113
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %113
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %117 = OpLabel
-        %118 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %118
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %118 = OpFunctionCall %void %main_1
+        %119 = OpLoad %v4float %x_GLF_color
+        %120 = OpCompositeConstruct %main_out %119
+               OpReturnValue %120
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %120 = OpLabel
-        %121 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %121
-        %122 = OpFunctionCall %void %main_1
-        %124 = OpLoad %v4float %x_GLF_color
-        %125 = OpCompositeConstruct %main_out %124
-        %123 = OpFunctionCall %void %tint_symbol_3 %125
+        %122 = OpLabel
+        %124 = OpLoad %v4float %gl_FragCoord_param_1
+        %123 = OpFunctionCall %main_out %main_inner %124
+        %125 = OpCompositeExtract %v4float %123 0
+               OpStore %x_GLF_color_1_1 %125
                OpReturn
                OpFunctionEnd
 %alwaysZero_vf2_ = OpFunction %int None %126
diff --git a/test/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.wgsl.expected.spvasm
index a6c6ca5..0c9f169 100644
--- a/test/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_9 "x_9"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_43 "x_43"
                OpName %x_44 "x_44"
@@ -24,36 +24,36 @@
                OpName %temp "temp"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
                OpName %alwaysZero_vf2_ "alwaysZero_vf2_"
                OpName %coord "coord"
                OpName %a "a"
                OpName %x_110 "x_110"
                OpName %b "b"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -78,7 +78,7 @@
          %74 = OpConstantComposite %v4float %float_0 %float_1 %float_1 %float_1
      %uint_2 = OpConstant %uint 2
    %main_out = OpTypeStruct %v4float
-        %113 = OpTypeFunction %void %main_out
+        %113 = OpTypeFunction %main_out %v4float
         %126 = OpTypeFunction %int %_ptr_Function_v2float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
@@ -197,21 +197,21 @@
         %107 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %113
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %113
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %117 = OpLabel
-        %118 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %118
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %118 = OpFunctionCall %void %main_1
+        %119 = OpLoad %v4float %x_GLF_color
+        %120 = OpCompositeConstruct %main_out %119
+               OpReturnValue %120
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %120 = OpLabel
-        %121 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %121
-        %122 = OpFunctionCall %void %main_1
-        %124 = OpLoad %v4float %x_GLF_color
-        %125 = OpCompositeConstruct %main_out %124
-        %123 = OpFunctionCall %void %tint_symbol_3 %125
+        %122 = OpLabel
+        %124 = OpLoad %v4float %gl_FragCoord_param_1
+        %123 = OpFunctionCall %main_out %main_inner %124
+        %125 = OpCompositeExtract %v4float %123 0
+               OpStore %x_GLF_color_1_1 %125
                OpReturn
                OpFunctionEnd
 %alwaysZero_vf2_ = OpFunction %int None %126
diff --git a/test/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.spvasm
index 3606a34..8e85648 100644
--- a/test/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %fx_ "fx_"
                OpName %main_1 "main_1"
                OpName %x2 "x2"
@@ -21,31 +21,31 @@
                OpName %k0 "k0"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
          %15 = OpTypeFunction %float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -63,7 +63,7 @@
          %48 = OpConstantNull %float
     %float_2 = OpConstant %float 2
    %main_out = OpTypeStruct %v4float
-         %68 = OpTypeFunction %void %main_out
+         %68 = OpTypeFunction %main_out %v4float
         %fx_ = OpFunction %float None %15
          %17 = OpLabel
          %21 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
@@ -133,20 +133,20 @@
          %54 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %68
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %68
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %72 = OpLabel
-         %73 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %73
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %73 = OpFunctionCall %void %main_1
+         %74 = OpLoad %v4float %x_GLF_color
+         %75 = OpCompositeConstruct %main_out %74
+               OpReturnValue %75
                OpFunctionEnd
        %main = OpFunction %void None %42
-         %75 = OpLabel
-         %76 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %76
-         %77 = OpFunctionCall %void %main_1
-         %79 = OpLoad %v4float %x_GLF_color
-         %80 = OpCompositeConstruct %main_out %79
-         %78 = OpFunctionCall %void %tint_symbol_3 %80
+         %77 = OpLabel
+         %79 = OpLoad %v4float %gl_FragCoord_param_1
+         %78 = OpFunctionCall %main_out %main_inner %79
+         %80 = OpCompositeExtract %v4float %78 0
+               OpStore %x_GLF_color_1_1 %80
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.spvasm
index 3606a34..8e85648 100644
--- a/test/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %fx_ "fx_"
                OpName %main_1 "main_1"
                OpName %x2 "x2"
@@ -21,31 +21,31 @@
                OpName %k0 "k0"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
          %15 = OpTypeFunction %float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -63,7 +63,7 @@
          %48 = OpConstantNull %float
     %float_2 = OpConstant %float 2
    %main_out = OpTypeStruct %v4float
-         %68 = OpTypeFunction %void %main_out
+         %68 = OpTypeFunction %main_out %v4float
         %fx_ = OpFunction %float None %15
          %17 = OpLabel
          %21 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
@@ -133,20 +133,20 @@
          %54 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %68
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %68
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %72 = OpLabel
-         %73 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %73
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %73 = OpFunctionCall %void %main_1
+         %74 = OpLoad %v4float %x_GLF_color
+         %75 = OpCompositeConstruct %main_out %74
+               OpReturnValue %75
                OpFunctionEnd
        %main = OpFunction %void None %42
-         %75 = OpLabel
-         %76 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %76
-         %77 = OpFunctionCall %void %main_1
-         %79 = OpLoad %v4float %x_GLF_color
-         %80 = OpCompositeConstruct %main_out %79
-         %78 = OpFunctionCall %void %tint_symbol_3 %80
+         %77 = OpLabel
+         %79 = OpLoad %v4float %gl_FragCoord_param_1
+         %78 = OpFunctionCall %main_out %main_inner %79
+         %80 = OpCompositeExtract %v4float %78 0
+               OpStore %x_GLF_color_1_1 %80
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.spvasm.expected.spvasm
index 02fd4f3..f8e23e0 100644
--- a/test/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 204
+; Bound: 203
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_68 "x_68"
                OpName %x_29 "x_29"
@@ -40,8 +40,7 @@
                OpName %x_22_1 "x_22_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
                OpName %yieldsZero_ "yieldsZero_"
                OpName %x_116 "x_116"
@@ -57,25 +56,25 @@
                OpName %x_28_phi "x_28_phi"
                OpName %x_26_phi "x_26_phi"
                OpName %x_132_phi "x_132_phi"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -106,8 +105,8 @@
         %144 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %145 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %146 = OpTypeFunction %void %main_out
-        %158 = OpTypeFunction %int
+        %146 = OpTypeFunction %main_out
+        %157 = OpTypeFunction %int
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
        %x_68 = OpVariable %_ptr_Function_bool Function %19
@@ -303,23 +302,22 @@
         %139 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %146
-%tint_symbol = OpFunctionParameter %main_out
-        %150 = OpLabel
-        %151 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %151
-               OpReturn
+ %main_inner = OpFunction %main_out None %146
+        %149 = OpLabel
+        %150 = OpFunctionCall %void %main_1
+        %151 = OpLoad %v4float %x_GLF_color
+        %152 = OpCompositeConstruct %main_out %151
+               OpReturnValue %152
                OpFunctionEnd
        %main = OpFunction %void None %11
-        %153 = OpLabel
-        %154 = OpFunctionCall %void %main_1
-        %156 = OpLoad %v4float %x_GLF_color
-        %157 = OpCompositeConstruct %main_out %156
-        %155 = OpFunctionCall %void %tint_symbol_2 %157
+        %154 = OpLabel
+        %155 = OpFunctionCall %main_out %main_inner
+        %156 = OpCompositeExtract %v4float %155 0
+               OpStore %x_GLF_color_1_1 %156
                OpReturn
                OpFunctionEnd
-%yieldsZero_ = OpFunction %int None %158
-        %160 = OpLabel
+%yieldsZero_ = OpFunction %int None %157
+        %159 = OpLabel
       %x_116 = OpVariable %_ptr_Function_bool Function %19
        %x_20 = OpVariable %_ptr_Function_int Function %23
           %i = OpVariable %_ptr_Function_int Function %23
@@ -335,72 +333,72 @@
   %x_132_phi = OpVariable %_ptr_Function_bool Function %19
                OpStore %x_116 %false
                OpStore %x_118_phi %false
-               OpBranch %168
-        %168 = OpLabel
-               OpLoopMerge %169 %170 None
-               OpBranch %171
-        %171 = OpLabel
-        %178 = OpLoad %bool %x_118_phi
+               OpBranch %167
+        %167 = OpLabel
+               OpLoopMerge %168 %169 None
+               OpBranch %170
+        %170 = OpLabel
+        %177 = OpLoad %bool %x_118_phi
                OpStore %i %int_0
-               OpStore %x_123_phi %178
+               OpStore %x_123_phi %177
                OpStore %x_28_phi %int_0
-               OpBranch %179
-        %179 = OpLabel
-               OpLoopMerge %180 %181 None
-               OpBranch %182
-        %182 = OpLabel
-        %183 = OpLoad %bool %x_123_phi
-               OpStore %x_123 %183
-        %184 = OpLoad %int %x_28_phi
-               OpStore %x_28 %184
-        %185 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0
-        %186 = OpLoad %float %185
-               OpStore %x_26_phi %int_0
-        %187 = OpLoad %bool %x_123
-               OpStore %x_132_phi %187
-        %188 = OpLoad %int %x_28
-        %189 = OpConvertFToS %int %186
-        %190 = OpSLessThan %bool %188 %189
-               OpSelectionMerge %191 None
-               OpBranchConditional %190 %192 %193
-        %192 = OpLabel
-               OpBranch %191
-        %193 = OpLabel
-               OpBranch %180
-        %191 = OpLabel
-               OpStore %x_116 %true
-        %194 = OpLoad %int %x_28
-               OpStore %x_20 %194
-        %195 = OpLoad %int %x_28
-               OpStore %x_26_phi %195
-               OpStore %x_132_phi %true
-               OpBranch %180
+               OpBranch %178
+        %178 = OpLabel
+               OpLoopMerge %179 %180 None
+               OpBranch %181
         %181 = OpLabel
-               OpStore %x_123_phi %false
-               OpStore %x_28_phi %int_0
+        %182 = OpLoad %bool %x_123_phi
+               OpStore %x_123 %182
+        %183 = OpLoad %int %x_28_phi
+               OpStore %x_28 %183
+        %184 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0
+        %185 = OpLoad %float %184
+               OpStore %x_26_phi %int_0
+        %186 = OpLoad %bool %x_123
+               OpStore %x_132_phi %186
+        %187 = OpLoad %int %x_28
+        %188 = OpConvertFToS %int %185
+        %189 = OpSLessThan %bool %187 %188
+               OpSelectionMerge %190 None
+               OpBranchConditional %189 %191 %192
+        %191 = OpLabel
+               OpBranch %190
+        %192 = OpLabel
+               OpBranch %179
+        %190 = OpLabel
+               OpStore %x_116 %true
+        %193 = OpLoad %int %x_28
+               OpStore %x_20 %193
+        %194 = OpLoad %int %x_28
+               OpStore %x_26_phi %194
+               OpStore %x_132_phi %true
                OpBranch %179
         %180 = OpLabel
-        %196 = OpLoad %int %x_26_phi
-               OpStore %x_26 %196
-        %197 = OpLoad %bool %x_132_phi
-        %198 = OpLoad %int %x_26
-               OpStore %x_27_phi %198
-               OpSelectionMerge %199 None
-               OpBranchConditional %197 %200 %199
-        %200 = OpLabel
-               OpBranch %169
+               OpStore %x_123_phi %false
+               OpStore %x_28_phi %int_0
+               OpBranch %178
+        %179 = OpLabel
+        %195 = OpLoad %int %x_26_phi
+               OpStore %x_26 %195
+        %196 = OpLoad %bool %x_132_phi
+        %197 = OpLoad %int %x_26
+               OpStore %x_27_phi %197
+               OpSelectionMerge %198 None
+               OpBranchConditional %196 %199 %198
         %199 = OpLabel
+               OpBranch %168
+        %198 = OpLabel
                OpStore %x_134 %int_0
                OpStore %x_116 %true
+        %200 = OpLoad %int %x_134
+               OpStore %x_20 %200
         %201 = OpLoad %int %x_134
-               OpStore %x_20 %201
-        %202 = OpLoad %int %x_134
-               OpStore %x_27_phi %202
-               OpBranch %169
-        %170 = OpLabel
-               OpStore %x_118_phi %false
+               OpStore %x_27_phi %201
                OpBranch %168
         %169 = OpLabel
-        %203 = OpLoad %int %x_27_phi
-               OpReturnValue %203
+               OpStore %x_118_phi %false
+               OpBranch %167
+        %168 = OpLabel
+        %202 = OpLoad %int %x_27_phi
+               OpReturnValue %202
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.wgsl.expected.spvasm
index 02fd4f3..f8e23e0 100644
--- a/test/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 204
+; Bound: 203
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_68 "x_68"
                OpName %x_29 "x_29"
@@ -40,8 +40,7 @@
                OpName %x_22_1 "x_22_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
                OpName %yieldsZero_ "yieldsZero_"
                OpName %x_116 "x_116"
@@ -57,25 +56,25 @@
                OpName %x_28_phi "x_28_phi"
                OpName %x_26_phi "x_26_phi"
                OpName %x_132_phi "x_132_phi"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %_arr_int_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -106,8 +105,8 @@
         %144 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %145 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %146 = OpTypeFunction %void %main_out
-        %158 = OpTypeFunction %int
+        %146 = OpTypeFunction %main_out
+        %157 = OpTypeFunction %int
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
        %x_68 = OpVariable %_ptr_Function_bool Function %19
@@ -303,23 +302,22 @@
         %139 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %146
-%tint_symbol = OpFunctionParameter %main_out
-        %150 = OpLabel
-        %151 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %151
-               OpReturn
+ %main_inner = OpFunction %main_out None %146
+        %149 = OpLabel
+        %150 = OpFunctionCall %void %main_1
+        %151 = OpLoad %v4float %x_GLF_color
+        %152 = OpCompositeConstruct %main_out %151
+               OpReturnValue %152
                OpFunctionEnd
        %main = OpFunction %void None %11
-        %153 = OpLabel
-        %154 = OpFunctionCall %void %main_1
-        %156 = OpLoad %v4float %x_GLF_color
-        %157 = OpCompositeConstruct %main_out %156
-        %155 = OpFunctionCall %void %tint_symbol_2 %157
+        %154 = OpLabel
+        %155 = OpFunctionCall %main_out %main_inner
+        %156 = OpCompositeExtract %v4float %155 0
+               OpStore %x_GLF_color_1_1 %156
                OpReturn
                OpFunctionEnd
-%yieldsZero_ = OpFunction %int None %158
-        %160 = OpLabel
+%yieldsZero_ = OpFunction %int None %157
+        %159 = OpLabel
       %x_116 = OpVariable %_ptr_Function_bool Function %19
        %x_20 = OpVariable %_ptr_Function_int Function %23
           %i = OpVariable %_ptr_Function_int Function %23
@@ -335,72 +333,72 @@
   %x_132_phi = OpVariable %_ptr_Function_bool Function %19
                OpStore %x_116 %false
                OpStore %x_118_phi %false
-               OpBranch %168
-        %168 = OpLabel
-               OpLoopMerge %169 %170 None
-               OpBranch %171
-        %171 = OpLabel
-        %178 = OpLoad %bool %x_118_phi
+               OpBranch %167
+        %167 = OpLabel
+               OpLoopMerge %168 %169 None
+               OpBranch %170
+        %170 = OpLabel
+        %177 = OpLoad %bool %x_118_phi
                OpStore %i %int_0
-               OpStore %x_123_phi %178
+               OpStore %x_123_phi %177
                OpStore %x_28_phi %int_0
-               OpBranch %179
-        %179 = OpLabel
-               OpLoopMerge %180 %181 None
-               OpBranch %182
-        %182 = OpLabel
-        %183 = OpLoad %bool %x_123_phi
-               OpStore %x_123 %183
-        %184 = OpLoad %int %x_28_phi
-               OpStore %x_28 %184
-        %185 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0
-        %186 = OpLoad %float %185
-               OpStore %x_26_phi %int_0
-        %187 = OpLoad %bool %x_123
-               OpStore %x_132_phi %187
-        %188 = OpLoad %int %x_28
-        %189 = OpConvertFToS %int %186
-        %190 = OpSLessThan %bool %188 %189
-               OpSelectionMerge %191 None
-               OpBranchConditional %190 %192 %193
-        %192 = OpLabel
-               OpBranch %191
-        %193 = OpLabel
-               OpBranch %180
-        %191 = OpLabel
-               OpStore %x_116 %true
-        %194 = OpLoad %int %x_28
-               OpStore %x_20 %194
-        %195 = OpLoad %int %x_28
-               OpStore %x_26_phi %195
-               OpStore %x_132_phi %true
-               OpBranch %180
+               OpBranch %178
+        %178 = OpLabel
+               OpLoopMerge %179 %180 None
+               OpBranch %181
         %181 = OpLabel
-               OpStore %x_123_phi %false
-               OpStore %x_28_phi %int_0
+        %182 = OpLoad %bool %x_123_phi
+               OpStore %x_123 %182
+        %183 = OpLoad %int %x_28_phi
+               OpStore %x_28 %183
+        %184 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0
+        %185 = OpLoad %float %184
+               OpStore %x_26_phi %int_0
+        %186 = OpLoad %bool %x_123
+               OpStore %x_132_phi %186
+        %187 = OpLoad %int %x_28
+        %188 = OpConvertFToS %int %185
+        %189 = OpSLessThan %bool %187 %188
+               OpSelectionMerge %190 None
+               OpBranchConditional %189 %191 %192
+        %191 = OpLabel
+               OpBranch %190
+        %192 = OpLabel
+               OpBranch %179
+        %190 = OpLabel
+               OpStore %x_116 %true
+        %193 = OpLoad %int %x_28
+               OpStore %x_20 %193
+        %194 = OpLoad %int %x_28
+               OpStore %x_26_phi %194
+               OpStore %x_132_phi %true
                OpBranch %179
         %180 = OpLabel
-        %196 = OpLoad %int %x_26_phi
-               OpStore %x_26 %196
-        %197 = OpLoad %bool %x_132_phi
-        %198 = OpLoad %int %x_26
-               OpStore %x_27_phi %198
-               OpSelectionMerge %199 None
-               OpBranchConditional %197 %200 %199
-        %200 = OpLabel
-               OpBranch %169
+               OpStore %x_123_phi %false
+               OpStore %x_28_phi %int_0
+               OpBranch %178
+        %179 = OpLabel
+        %195 = OpLoad %int %x_26_phi
+               OpStore %x_26 %195
+        %196 = OpLoad %bool %x_132_phi
+        %197 = OpLoad %int %x_26
+               OpStore %x_27_phi %197
+               OpSelectionMerge %198 None
+               OpBranchConditional %196 %199 %198
         %199 = OpLabel
+               OpBranch %168
+        %198 = OpLabel
                OpStore %x_134 %int_0
                OpStore %x_116 %true
+        %200 = OpLoad %int %x_134
+               OpStore %x_20 %200
         %201 = OpLoad %int %x_134
-               OpStore %x_20 %201
-        %202 = OpLoad %int %x_134
-               OpStore %x_27_phi %202
-               OpBranch %169
-        %170 = OpLabel
-               OpStore %x_118_phi %false
+               OpStore %x_27_phi %201
                OpBranch %168
         %169 = OpLabel
-        %203 = OpLoad %int %x_27_phi
-               OpReturnValue %203
+               OpStore %x_118_phi %false
+               OpBranch %167
+        %168 = OpLabel
+        %202 = OpLoad %int %x_27_phi
+               OpReturnValue %202
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/if-and-switch/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/if-and-switch/0.spvasm.expected.spvasm
index a5e407d..a111b58 100644
--- a/test/vk-gl-cts/graphicsfuzz/if-and-switch/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/if-and-switch/0.spvasm.expected.spvasm
@@ -1,45 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 67
+; Bound: 66
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %data "data"
                OpName %x_32 "x_32"
                OpName %x_43_phi "x_43_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -60,7 +59,7 @@
        %bool = OpTypeBool
          %54 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %55 = OpTypeFunction %void %main_out
+         %55 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
        %data = OpVariable %_ptr_Function__arr_float_uint_2 Function %21
@@ -103,18 +102,17 @@
          %43 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %55
-%tint_symbol = OpFunctionParameter %main_out
-         %59 = OpLabel
-         %60 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %60
-               OpReturn
+ %main_inner = OpFunction %main_out None %55
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %main_1
+         %60 = OpLoad %v4float %x_GLF_color
+         %61 = OpCompositeConstruct %main_out %60
+               OpReturnValue %61
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %62 = OpLabel
-         %63 = OpFunctionCall %void %main_1
-         %65 = OpLoad %v4float %x_GLF_color
-         %66 = OpCompositeConstruct %main_out %65
-         %64 = OpFunctionCall %void %tint_symbol_2 %66
+         %63 = OpLabel
+         %64 = OpFunctionCall %main_out %main_inner
+         %65 = OpCompositeExtract %v4float %64 0
+               OpStore %x_GLF_color_1_1 %65
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/if-and-switch/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/if-and-switch/0.wgsl.expected.spvasm
index a5e407d..a111b58 100644
--- a/test/vk-gl-cts/graphicsfuzz/if-and-switch/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/if-and-switch/0.wgsl.expected.spvasm
@@ -1,45 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 67
+; Bound: 66
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %data "data"
                OpName %x_32 "x_32"
                OpName %x_43_phi "x_43_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_2 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -60,7 +59,7 @@
        %bool = OpTypeBool
          %54 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-         %55 = OpTypeFunction %void %main_out
+         %55 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
        %data = OpVariable %_ptr_Function__arr_float_uint_2 Function %21
@@ -103,18 +102,17 @@
          %43 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %55
-%tint_symbol = OpFunctionParameter %main_out
-         %59 = OpLabel
-         %60 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %60
-               OpReturn
+ %main_inner = OpFunction %main_out None %55
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %main_1
+         %60 = OpLoad %v4float %x_GLF_color
+         %61 = OpCompositeConstruct %main_out %60
+               OpReturnValue %61
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %62 = OpLabel
-         %63 = OpFunctionCall %void %main_1
-         %65 = OpLoad %v4float %x_GLF_color
-         %66 = OpCompositeConstruct %main_out %65
-         %64 = OpFunctionCall %void %tint_symbol_2 %66
+         %63 = OpLabel
+         %64 = OpFunctionCall %main_out %main_inner
+         %65 = OpCompositeExtract %v4float %64 0
+               OpStore %x_GLF_color_1_1 %65
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.spvasm.expected.spvasm
index 5bea6cc..c368904 100644
--- a/test/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_45 "x_45"
                OpName %x_48 "x_48"
@@ -61,31 +61,31 @@
                OpName %x_119 "x_119"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -114,7 +114,7 @@
         %277 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %278 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %279 = OpTypeFunction %void %main_out
+        %279 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %x_45 = OpVariable %_ptr_Function_bool Function %26
@@ -547,20 +547,20 @@
          %20 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %279
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %279
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %283 = OpLabel
-        %284 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %284
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %284 = OpFunctionCall %void %main_1
+        %285 = OpLoad %v4float %x_GLF_color
+        %286 = OpCompositeConstruct %main_out %285
+               OpReturnValue %286
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %286 = OpLabel
-        %287 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %287
-        %288 = OpFunctionCall %void %main_1
-        %290 = OpLoad %v4float %x_GLF_color
-        %291 = OpCompositeConstruct %main_out %290
-        %289 = OpFunctionCall %void %tint_symbol_3 %291
+        %288 = OpLabel
+        %290 = OpLoad %v4float %gl_FragCoord_param_1
+        %289 = OpFunctionCall %main_out %main_inner %290
+        %291 = OpCompositeExtract %v4float %289 0
+               OpStore %x_GLF_color_1_1 %291
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.wgsl.expected.spvasm
index 5bea6cc..c368904 100644
--- a/test/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_45 "x_45"
                OpName %x_48 "x_48"
@@ -61,31 +61,31 @@
                OpName %x_119 "x_119"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -114,7 +114,7 @@
         %277 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %278 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %279 = OpTypeFunction %void %main_out
+        %279 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %x_45 = OpVariable %_ptr_Function_bool Function %26
@@ -547,20 +547,20 @@
          %20 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %279
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %279
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %283 = OpLabel
-        %284 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %284
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %284 = OpFunctionCall %void %main_1
+        %285 = OpLoad %v4float %x_GLF_color
+        %286 = OpCompositeConstruct %main_out %285
+               OpReturnValue %286
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %286 = OpLabel
-        %287 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %287
-        %288 = OpFunctionCall %void %main_1
-        %290 = OpLoad %v4float %x_GLF_color
-        %291 = OpCompositeConstruct %main_out %290
-        %289 = OpFunctionCall %void %tint_symbol_3 %291
+        %288 = OpLabel
+        %290 = OpLoad %v4float %gl_FragCoord_param_1
+        %289 = OpFunctionCall %main_out %main_inner %290
+        %291 = OpCompositeExtract %v4float %289 0
+               OpStore %x_GLF_color_1_1 %291
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.spvasm.expected.spvasm
index ecb0861..18b4d77 100644
--- a/test/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 126
+; Bound: 125
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %makeFrame_ "makeFrame_"
                OpName %x_60 "x_60"
                OpName %x_63_phi "x_63_phi"
@@ -36,27 +36,26 @@
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
          %12 = OpTypeFunction %float
 %_ptr_Function_float = OpTypePointer Function %float
          %17 = OpConstantNull %float
@@ -80,7 +79,7 @@
         %108 = OpTypeFunction %void
         %113 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %114 = OpTypeFunction %void %main_out
+        %114 = OpTypeFunction %main_out
  %makeFrame_ = OpFunction %float None %12
          %14 = OpLabel
        %x_60 = OpVariable %_ptr_Function_float Function %17
@@ -226,18 +225,17 @@
                OpStore %x_GLF_color %113
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %114
-%tint_symbol = OpFunctionParameter %main_out
-        %118 = OpLabel
-        %119 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %119
-               OpReturn
+ %main_inner = OpFunction %main_out None %114
+        %117 = OpLabel
+        %118 = OpFunctionCall %void %main_1
+        %119 = OpLoad %v4float %x_GLF_color
+        %120 = OpCompositeConstruct %main_out %119
+               OpReturnValue %120
                OpFunctionEnd
        %main = OpFunction %void None %108
-        %121 = OpLabel
-        %122 = OpFunctionCall %void %main_1
-        %124 = OpLoad %v4float %x_GLF_color
-        %125 = OpCompositeConstruct %main_out %124
-        %123 = OpFunctionCall %void %tint_symbol_2 %125
+        %122 = OpLabel
+        %123 = OpFunctionCall %main_out %main_inner
+        %124 = OpCompositeExtract %v4float %123 0
+               OpStore %x_GLF_color_1_1 %124
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.wgsl.expected.spvasm
index ecb0861..18b4d77 100644
--- a/test/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 126
+; Bound: 125
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %makeFrame_ "makeFrame_"
                OpName %x_60 "x_60"
                OpName %x_63_phi "x_63_phi"
@@ -36,27 +36,26 @@
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
          %12 = OpTypeFunction %float
 %_ptr_Function_float = OpTypePointer Function %float
          %17 = OpConstantNull %float
@@ -80,7 +79,7 @@
         %108 = OpTypeFunction %void
         %113 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %114 = OpTypeFunction %void %main_out
+        %114 = OpTypeFunction %main_out
  %makeFrame_ = OpFunction %float None %12
          %14 = OpLabel
        %x_60 = OpVariable %_ptr_Function_float Function %17
@@ -226,18 +225,17 @@
                OpStore %x_GLF_color %113
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %114
-%tint_symbol = OpFunctionParameter %main_out
-        %118 = OpLabel
-        %119 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %119
-               OpReturn
+ %main_inner = OpFunction %main_out None %114
+        %117 = OpLabel
+        %118 = OpFunctionCall %void %main_1
+        %119 = OpLoad %v4float %x_GLF_color
+        %120 = OpCompositeConstruct %main_out %119
+               OpReturnValue %120
                OpFunctionEnd
        %main = OpFunction %void None %108
-        %121 = OpLabel
-        %122 = OpFunctionCall %void %main_1
-        %124 = OpLoad %v4float %x_GLF_color
-        %125 = OpCompositeConstruct %main_out %124
-        %123 = OpFunctionCall %void %tint_symbol_2 %125
+        %122 = OpLabel
+        %123 = OpFunctionCall %main_out %main_inner
+        %124 = OpCompositeExtract %v4float %123 0
+               OpStore %x_GLF_color_1_1 %124
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.spvasm.expected.spvasm
index 5706393..78c8778 100644
--- a/test/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.spvasm.expected.spvasm
@@ -5,12 +5,12 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_41 "x_41"
                OpName %x_6 "x_6"
@@ -21,11 +21,11 @@
                OpMemberName %S 1 "f2"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %S 0 Offset 0
                OpMemberDecorate %S 1 Offset 8
                OpMemberDecorate %S 1 ColMajor
@@ -33,14 +33,14 @@
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -71,7 +71,7 @@
       %int_1 = OpConstant %int 1
      %uint_1 = OpConstant %uint 1
    %main_out = OpTypeStruct %v4float
-         %74 = OpTypeFunction %void %main_out
+         %74 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
        %x_41 = OpVariable %_ptr_Function_mat2v2float Function %19
@@ -119,20 +119,20 @@
                OpStore %x_GLF_color %73
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %74
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %74
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %78 = OpLabel
-         %79 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %79
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %79 = OpFunctionCall %void %main_1
+         %80 = OpLoad %v4float %x_GLF_color
+         %81 = OpCompositeConstruct %main_out %80
+               OpReturnValue %81
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %81 = OpLabel
-         %82 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %82
-         %83 = OpFunctionCall %void %main_1
-         %85 = OpLoad %v4float %x_GLF_color
-         %86 = OpCompositeConstruct %main_out %85
-         %84 = OpFunctionCall %void %tint_symbol_3 %86
+         %83 = OpLabel
+         %85 = OpLoad %v4float %gl_FragCoord_param_1
+         %84 = OpFunctionCall %main_out %main_inner %85
+         %86 = OpCompositeExtract %v4float %84 0
+               OpStore %x_GLF_color_1_1 %86
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.wgsl.expected.spvasm
index 5706393..78c8778 100644
--- a/test/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.wgsl.expected.spvasm
@@ -5,12 +5,12 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_41 "x_41"
                OpName %x_6 "x_6"
@@ -21,11 +21,11 @@
                OpMemberName %S 1 "f2"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %S 0 Offset 0
                OpMemberDecorate %S 1 Offset 8
                OpMemberDecorate %S 1 ColMajor
@@ -33,14 +33,14 @@
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
@@ -71,7 +71,7 @@
       %int_1 = OpConstant %int 1
      %uint_1 = OpConstant %uint 1
    %main_out = OpTypeStruct %v4float
-         %74 = OpTypeFunction %void %main_out
+         %74 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
        %x_41 = OpVariable %_ptr_Function_mat2v2float Function %19
@@ -119,20 +119,20 @@
                OpStore %x_GLF_color %73
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %74
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %74
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %78 = OpLabel
-         %79 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %79
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %79 = OpFunctionCall %void %main_1
+         %80 = OpLoad %v4float %x_GLF_color
+         %81 = OpCompositeConstruct %main_out %80
+               OpReturnValue %81
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %81 = OpLabel
-         %82 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %82
-         %83 = OpFunctionCall %void %main_1
-         %85 = OpLoad %v4float %x_GLF_color
-         %86 = OpCompositeConstruct %main_out %85
-         %84 = OpFunctionCall %void %tint_symbol_3 %86
+         %83 = OpLabel
+         %85 = OpLoad %v4float %gl_FragCoord_param_1
+         %84 = OpFunctionCall %main_out %main_inner %85
+         %86 = OpCompositeExtract %v4float %84 0
+               OpStore %x_GLF_color_1_1 %86
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.spvasm
index 6bb20bf..663e474 100644
--- a/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 113
+; Bound: 112
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %k "k"
                OpName %GLF_dead0j "GLF_dead0j"
@@ -22,28 +22,27 @@
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -70,7 +69,7 @@
     %float_1 = OpConstant %float 1
         %100 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %101 = OpTypeFunction %void %main_out
+        %101 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %k = OpVariable %_ptr_Function_int Function %19
@@ -78,7 +77,7 @@
 %donor_replacementGLF_dead0stack = OpVariable %_ptr_Function__arr_int_uint_10 Function %26
 %donor_replacementGLF_dead0top = OpVariable %_ptr_Function_int Function %19
        %x_54 = OpVariable %_ptr_Function_int Function %19
-   %matrix_b = OpVariable %_ptr_Function_v4float Function %9
+   %matrix_b = OpVariable %_ptr_Function_v4float Function %5
           %b = OpVariable %_ptr_Function_int Function %19
                OpStore %k %int_0
                OpBranch %33
@@ -183,18 +182,17 @@
                OpStore %x_GLF_color %100
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %101
-%tint_symbol = OpFunctionParameter %main_out
-        %105 = OpLabel
-        %106 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %106
-               OpReturn
+ %main_inner = OpFunction %main_out None %101
+        %104 = OpLabel
+        %105 = OpFunctionCall %void %main_1
+        %106 = OpLoad %v4float %x_GLF_color
+        %107 = OpCompositeConstruct %main_out %106
+               OpReturnValue %107
                OpFunctionEnd
        %main = OpFunction %void None %12
-        %108 = OpLabel
-        %109 = OpFunctionCall %void %main_1
-        %111 = OpLoad %v4float %x_GLF_color
-        %112 = OpCompositeConstruct %main_out %111
-        %110 = OpFunctionCall %void %tint_symbol_2 %112
+        %109 = OpLabel
+        %110 = OpFunctionCall %main_out %main_inner
+        %111 = OpCompositeExtract %v4float %110 0
+               OpStore %x_GLF_color_1_1 %111
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.wgsl.expected.spvasm
index de2d980..5b8431a 100644
--- a/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 115
+; Bound: 114
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %k "k"
                OpName %GLF_dead0j "GLF_dead0j"
@@ -22,28 +22,27 @@
                OpName %b "b"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -70,7 +69,7 @@
     %float_1 = OpConstant %float 1
         %102 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %103 = OpTypeFunction %void %main_out
+        %103 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %k = OpVariable %_ptr_Function_int Function %19
@@ -78,7 +77,7 @@
 %donor_replacementGLF_dead0stack = OpVariable %_ptr_Function__arr_int_uint_10 Function %26
 %donor_replacementGLF_dead0top = OpVariable %_ptr_Function_int Function %19
        %x_54 = OpVariable %_ptr_Function_int Function %19
-   %matrix_b = OpVariable %_ptr_Function_v4float Function %9
+   %matrix_b = OpVariable %_ptr_Function_v4float Function %5
           %b = OpVariable %_ptr_Function_int Function %19
                OpStore %k %int_0
                OpBranch %33
@@ -188,18 +187,17 @@
                OpStore %x_GLF_color %102
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %103
-%tint_symbol = OpFunctionParameter %main_out
-        %107 = OpLabel
-        %108 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %108
-               OpReturn
+ %main_inner = OpFunction %main_out None %103
+        %106 = OpLabel
+        %107 = OpFunctionCall %void %main_1
+        %108 = OpLoad %v4float %x_GLF_color
+        %109 = OpCompositeConstruct %main_out %108
+               OpReturnValue %109
                OpFunctionEnd
        %main = OpFunction %void None %12
-        %110 = OpLabel
-        %111 = OpFunctionCall %void %main_1
-        %113 = OpLoad %v4float %x_GLF_color
-        %114 = OpCompositeConstruct %main_out %113
-        %112 = OpFunctionCall %void %tint_symbol_2 %114
+        %111 = OpLabel
+        %112 = OpFunctionCall %main_out %main_inner
+        %113 = OpCompositeExtract %v4float %112 0
+               OpStore %x_GLF_color_1_1 %113
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.spvasm.expected.spvasm
index 2978632..2cd86eb 100644
--- a/test/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.spvasm.expected.spvasm
@@ -1,32 +1,31 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 76
+; Bound: 75
 ; Schema: 0
                OpCapability Shader
          %60 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %j "j"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -48,7 +47,7 @@
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_float = OpTypePointer Private %float
    %main_out = OpTypeStruct %v4float
-         %64 = OpTypeFunction %void %main_out
+         %64 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %j = OpVariable %_ptr_Function_int Function %15
@@ -114,18 +113,17 @@
          %21 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %64
-%tint_symbol = OpFunctionParameter %main_out
-         %68 = OpLabel
-         %69 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %69
-               OpReturn
+ %main_inner = OpFunction %main_out None %64
+         %67 = OpLabel
+         %68 = OpFunctionCall %void %main_1
+         %69 = OpLoad %v4float %x_GLF_color
+         %70 = OpCompositeConstruct %main_out %69
+               OpReturnValue %70
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %71 = OpLabel
-         %72 = OpFunctionCall %void %main_1
-         %74 = OpLoad %v4float %x_GLF_color
-         %75 = OpCompositeConstruct %main_out %74
-         %73 = OpFunctionCall %void %tint_symbol_2 %75
+         %72 = OpLabel
+         %73 = OpFunctionCall %main_out %main_inner
+         %74 = OpCompositeExtract %v4float %73 0
+               OpStore %x_GLF_color_1_1 %74
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.wgsl.expected.spvasm
index 2978632..2cd86eb 100644
--- a/test/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.wgsl.expected.spvasm
@@ -1,32 +1,31 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 76
+; Bound: 75
 ; Schema: 0
                OpCapability Shader
          %60 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %j "j"
                OpName %a "a"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -48,7 +47,7 @@
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_float = OpTypePointer Private %float
    %main_out = OpTypeStruct %v4float
-         %64 = OpTypeFunction %void %main_out
+         %64 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %j = OpVariable %_ptr_Function_int Function %15
@@ -114,18 +113,17 @@
          %21 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %64
-%tint_symbol = OpFunctionParameter %main_out
-         %68 = OpLabel
-         %69 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %69
-               OpReturn
+ %main_inner = OpFunction %main_out None %64
+         %67 = OpLabel
+         %68 = OpFunctionCall %void %main_1
+         %69 = OpLoad %v4float %x_GLF_color
+         %70 = OpCompositeConstruct %main_out %69
+               OpReturnValue %70
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %71 = OpLabel
-         %72 = OpFunctionCall %void %main_1
-         %74 = OpLoad %v4float %x_GLF_color
-         %75 = OpCompositeConstruct %main_out %74
-         %73 = OpFunctionCall %void %tint_symbol_2 %75
+         %72 = OpLabel
+         %73 = OpFunctionCall %main_out %main_inner
+         %74 = OpCompositeExtract %v4float %73 0
+               OpStore %x_GLF_color_1_1 %74
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.spvasm.expected.spvasm
index d6e398d..64b7405 100644
--- a/test/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 122
+; Bound: 121
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %BinarySearchObject "BinarySearchObject"
                OpMemberName %BinarySearchObject 0 "prime_numbers"
                OpName %binarySearch_struct_BinarySearchObject_i1_10_1_ "binarySearch_struct_BinarySearchObject_i1_10_1_"
@@ -23,29 +23,28 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %BinarySearchObject 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
@@ -74,7 +73,7 @@
     %float_0 = OpConstant %float 0
         %109 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %110 = OpTypeFunction %void %main_out
+        %110 = OpTypeFunction %main_out
 %binarySearch_struct_BinarySearchObject_i1_10_1_ = OpFunction %int None %12
         %obj = OpFunctionParameter %_ptr_Function_BinarySearchObject
          %21 = OpLabel
@@ -191,18 +190,17 @@
                OpStore %x_GLF_color %109
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %110
-%tint_symbol = OpFunctionParameter %main_out
-        %114 = OpLabel
-        %115 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %115
-               OpReturn
+ %main_inner = OpFunction %main_out None %110
+        %113 = OpLabel
+        %114 = OpFunctionCall %void %main_1
+        %115 = OpLoad %v4float %x_GLF_color
+        %116 = OpCompositeConstruct %main_out %115
+               OpReturnValue %116
                OpFunctionEnd
        %main = OpFunction %void None %50
-        %117 = OpLabel
-        %118 = OpFunctionCall %void %main_1
-        %120 = OpLoad %v4float %x_GLF_color
-        %121 = OpCompositeConstruct %main_out %120
-        %119 = OpFunctionCall %void %tint_symbol_2 %121
+        %118 = OpLabel
+        %119 = OpFunctionCall %main_out %main_inner
+        %120 = OpCompositeExtract %v4float %119 0
+               OpStore %x_GLF_color_1_1 %120
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.wgsl.expected.spvasm
index d6e398d..64b7405 100644
--- a/test/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 122
+; Bound: 121
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %BinarySearchObject "BinarySearchObject"
                OpMemberName %BinarySearchObject 0 "prime_numbers"
                OpName %binarySearch_struct_BinarySearchObject_i1_10_1_ "binarySearch_struct_BinarySearchObject_i1_10_1_"
@@ -23,29 +23,28 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %BinarySearchObject 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
@@ -74,7 +73,7 @@
     %float_0 = OpConstant %float 0
         %109 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %110 = OpTypeFunction %void %main_out
+        %110 = OpTypeFunction %main_out
 %binarySearch_struct_BinarySearchObject_i1_10_1_ = OpFunction %int None %12
         %obj = OpFunctionParameter %_ptr_Function_BinarySearchObject
          %21 = OpLabel
@@ -191,18 +190,17 @@
                OpStore %x_GLF_color %109
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %110
-%tint_symbol = OpFunctionParameter %main_out
-        %114 = OpLabel
-        %115 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %115
-               OpReturn
+ %main_inner = OpFunction %main_out None %110
+        %113 = OpLabel
+        %114 = OpFunctionCall %void %main_1
+        %115 = OpLoad %v4float %x_GLF_color
+        %116 = OpCompositeConstruct %main_out %115
+               OpReturnValue %116
                OpFunctionEnd
        %main = OpFunction %void None %50
-        %117 = OpLabel
-        %118 = OpFunctionCall %void %main_1
-        %120 = OpLoad %v4float %x_GLF_color
-        %121 = OpCompositeConstruct %main_out %120
-        %119 = OpFunctionCall %void %tint_symbol_2 %121
+        %118 = OpLabel
+        %119 = OpFunctionCall %main_out %main_inner
+        %120 = OpCompositeExtract %v4float %119 0
+               OpStore %x_GLF_color_1_1 %120
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.spvasm.expected.spvasm
index 6623b07..dc4e412 100644
--- a/test/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.spvasm.expected.spvasm
@@ -5,12 +5,12 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %f_mf22_ "f_mf22_"
                OpName %m "m"
                OpName %main_1 "main_1"
@@ -18,22 +18,22 @@
                OpName %x_38_phi "x_38_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
 %mat2v2float = OpTypeMatrix %v2float 2
@@ -57,7 +57,7 @@
          %47 = OpConstantComposite %mat2v2float %45 %46
          %52 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %53 = OpTypeFunction %void %main_out
+         %53 = OpTypeFunction %main_out %v4float
     %f_mf22_ = OpFunction %v3float None %11
           %m = OpFunctionParameter %_ptr_Function_mat2v2float
          %18 = OpLabel
@@ -93,20 +93,20 @@
                OpStore %x_GLF_color %52
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %53
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %53
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %57 = OpLabel
-         %58 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %58
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %58 = OpFunctionCall %void %main_1
+         %59 = OpLoad %v4float %x_GLF_color
+         %60 = OpCompositeConstruct %main_out %59
+               OpReturnValue %60
                OpFunctionEnd
        %main = OpFunction %void None %27
-         %60 = OpLabel
-         %61 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %61
-         %62 = OpFunctionCall %void %main_1
-         %64 = OpLoad %v4float %x_GLF_color
-         %65 = OpCompositeConstruct %main_out %64
-         %63 = OpFunctionCall %void %tint_symbol_3 %65
+         %62 = OpLabel
+         %64 = OpLoad %v4float %gl_FragCoord_param_1
+         %63 = OpFunctionCall %main_out %main_inner %64
+         %65 = OpCompositeExtract %v4float %63 0
+               OpStore %x_GLF_color_1_1 %65
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.wgsl.expected.spvasm
index 6623b07..dc4e412 100644
--- a/test/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.wgsl.expected.spvasm
@@ -5,12 +5,12 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %f_mf22_ "f_mf22_"
                OpName %m "m"
                OpName %main_1 "main_1"
@@ -18,22 +18,22 @@
                OpName %x_38_phi "x_38_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
 %mat2v2float = OpTypeMatrix %v2float 2
@@ -57,7 +57,7 @@
          %47 = OpConstantComposite %mat2v2float %45 %46
          %52 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %53 = OpTypeFunction %void %main_out
+         %53 = OpTypeFunction %main_out %v4float
     %f_mf22_ = OpFunction %v3float None %11
           %m = OpFunctionParameter %_ptr_Function_mat2v2float
          %18 = OpLabel
@@ -93,20 +93,20 @@
                OpStore %x_GLF_color %52
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %53
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %53
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %57 = OpLabel
-         %58 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %58
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %58 = OpFunctionCall %void %main_1
+         %59 = OpLoad %v4float %x_GLF_color
+         %60 = OpCompositeConstruct %main_out %59
+               OpReturnValue %60
                OpFunctionEnd
        %main = OpFunction %void None %27
-         %60 = OpLabel
-         %61 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %61
-         %62 = OpFunctionCall %void %main_1
-         %64 = OpLoad %v4float %x_GLF_color
-         %65 = OpCompositeConstruct %main_out %64
-         %63 = OpFunctionCall %void %tint_symbol_3 %65
+         %62 = OpLabel
+         %64 = OpLoad %v4float %gl_FragCoord_param_1
+         %63 = OpFunctionCall %main_out %main_inner %64
+         %65 = OpCompositeExtract %v4float %63 0
+               OpStore %x_GLF_color_1_1 %65
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.spvasm.expected.spvasm
index ad29d54..7f1fb64 100644
--- a/test/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.spvasm.expected.spvasm
@@ -1,45 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 65
+; Bound: 64
 ; Schema: 0
                OpCapability Shader
          %34 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_5 "x_5"
                OpName %gv "gv"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %temp "temp"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-         %gv = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+         %gv = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -59,7 +58,7 @@
     %float_0 = OpConstant %float 0
          %52 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %53 = OpTypeFunction %void %main_out
+         %53 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
        %temp = OpVariable %_ptr_Function_int Function %20
@@ -94,18 +93,17 @@
                OpStore %x_GLF_color %52
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %53
-%tint_symbol = OpFunctionParameter %main_out
-         %57 = OpLabel
-         %58 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %58
-               OpReturn
+ %main_inner = OpFunction %main_out None %53
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %main_1
+         %58 = OpLoad %v4float %x_GLF_color
+         %59 = OpCompositeConstruct %main_out %58
+               OpReturnValue %59
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %60 = OpLabel
-         %61 = OpFunctionCall %void %main_1
-         %63 = OpLoad %v4float %x_GLF_color
-         %64 = OpCompositeConstruct %main_out %63
-         %62 = OpFunctionCall %void %tint_symbol_2 %64
+         %61 = OpLabel
+         %62 = OpFunctionCall %main_out %main_inner
+         %63 = OpCompositeExtract %v4float %62 0
+               OpStore %x_GLF_color_1_1 %63
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.wgsl.expected.spvasm
index ad29d54..7f1fb64 100644
--- a/test/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.wgsl.expected.spvasm
@@ -1,45 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 65
+; Bound: 64
 ; Schema: 0
                OpCapability Shader
          %34 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_5 "x_5"
                OpName %gv "gv"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %temp "temp"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-         %gv = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+         %gv = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -59,7 +58,7 @@
     %float_0 = OpConstant %float 0
          %52 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %53 = OpTypeFunction %void %main_out
+         %53 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
        %temp = OpVariable %_ptr_Function_int Function %20
@@ -94,18 +93,17 @@
                OpStore %x_GLF_color %52
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %53
-%tint_symbol = OpFunctionParameter %main_out
-         %57 = OpLabel
-         %58 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %58
-               OpReturn
+ %main_inner = OpFunction %main_out None %53
+         %56 = OpLabel
+         %57 = OpFunctionCall %void %main_1
+         %58 = OpLoad %v4float %x_GLF_color
+         %59 = OpCompositeConstruct %main_out %58
+               OpReturnValue %59
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %60 = OpLabel
-         %61 = OpFunctionCall %void %main_1
-         %63 = OpLoad %v4float %x_GLF_color
-         %64 = OpCompositeConstruct %main_out %63
-         %62 = OpFunctionCall %void %tint_symbol_2 %64
+         %61 = OpLabel
+         %62 = OpFunctionCall %main_out %main_inner
+         %63 = OpCompositeExtract %v4float %62 0
+               OpStore %x_GLF_color_1_1 %63
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.spvasm.expected.spvasm
index 02d804c..1337b9a 100644
--- a/test/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.spvasm.expected.spvasm
@@ -1,31 +1,30 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
          %13 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %GLF_live6mand_ "GLF_live6mand_"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v3float = OpTypeVector %float 3
           %8 = OpTypeFunction %v3float
        %uint = OpTypeInt 32 0
@@ -45,7 +44,7 @@
     %float_1 = OpConstant %float 1
          %33 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %34 = OpTypeFunction %void %main_out
+         %34 = OpTypeFunction %main_out
 %GLF_live6mand_ = OpFunction %v3float None %8
          %11 = OpLabel
          %14 = OpBitcast %v3float %20
@@ -58,18 +57,17 @@
                OpStore %x_GLF_color %33
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %34
-%tint_symbol = OpFunctionParameter %main_out
-         %38 = OpLabel
-         %39 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %39
-               OpReturn
+ %main_inner = OpFunction %main_out None %34
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %main_1
+         %39 = OpLoad %v4float %x_GLF_color
+         %40 = OpCompositeConstruct %main_out %39
+               OpReturnValue %40
                OpFunctionEnd
        %main = OpFunction %void None %27
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %main_1
-         %44 = OpLoad %v4float %x_GLF_color
-         %45 = OpCompositeConstruct %main_out %44
-         %43 = OpFunctionCall %void %tint_symbol_2 %45
+         %42 = OpLabel
+         %43 = OpFunctionCall %main_out %main_inner
+         %44 = OpCompositeExtract %v4float %43 0
+               OpStore %x_GLF_color_1_1 %44
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.wgsl.expected.spvasm
index 02d804c..1337b9a 100644
--- a/test/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.wgsl.expected.spvasm
@@ -1,31 +1,30 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 45
 ; Schema: 0
                OpCapability Shader
          %13 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %GLF_live6mand_ "GLF_live6mand_"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v3float = OpTypeVector %float 3
           %8 = OpTypeFunction %v3float
        %uint = OpTypeInt 32 0
@@ -45,7 +44,7 @@
     %float_1 = OpConstant %float 1
          %33 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %34 = OpTypeFunction %void %main_out
+         %34 = OpTypeFunction %main_out
 %GLF_live6mand_ = OpFunction %v3float None %8
          %11 = OpLabel
          %14 = OpBitcast %v3float %20
@@ -58,18 +57,17 @@
                OpStore %x_GLF_color %33
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %34
-%tint_symbol = OpFunctionParameter %main_out
-         %38 = OpLabel
-         %39 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %39
-               OpReturn
+ %main_inner = OpFunction %main_out None %34
+         %37 = OpLabel
+         %38 = OpFunctionCall %void %main_1
+         %39 = OpLoad %v4float %x_GLF_color
+         %40 = OpCompositeConstruct %main_out %39
+               OpReturnValue %40
                OpFunctionEnd
        %main = OpFunction %void None %27
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %main_1
-         %44 = OpLoad %v4float %x_GLF_color
-         %45 = OpCompositeConstruct %main_out %44
-         %43 = OpFunctionCall %void %tint_symbol_2 %45
+         %42 = OpLabel
+         %43 = OpFunctionCall %main_out %main_inner
+         %44 = OpCompositeExtract %v4float %43 0
+               OpStore %x_GLF_color_1_1 %44
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.spvasm.expected.spvasm
index 312327e..b58d564 100644
--- a/test/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %m44 "m44"
                OpName %x_10_phi "x_10_phi"
@@ -24,30 +24,30 @@
                OpName %x_83_1 "x_83_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
 %mat4v4float = OpTypeMatrix %v4float 4
@@ -94,7 +94,7 @@
      %uint_2 = OpConstant %uint 2
      %uint_3 = OpConstant %uint 3
    %main_out = OpTypeStruct %v4float
-        %111 = OpTypeFunction %void %main_out
+        %111 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
         %m44 = OpVariable %_ptr_Function_mat4v4float Function %21
@@ -102,8 +102,8 @@
         %x_9 = OpVariable %_ptr_Function_int Function %25
    %x_11_phi = OpVariable %_ptr_Function_int Function %25
         %x_8 = OpVariable %_ptr_Function_int Function %25
-     %x_79_1 = OpVariable %_ptr_Function_v4float Function %5
-     %x_83_1 = OpVariable %_ptr_Function_v4float Function %5
+     %x_79_1 = OpVariable %_ptr_Function_v4float Function %7
+     %x_83_1 = OpVariable %_ptr_Function_v4float Function %7
                OpStore %m44 %46
                OpStore %x_10_phi %int_0
                OpBranch %48
@@ -183,20 +183,20 @@
                OpStore %x_GLF_color %110
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %111
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %111
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %115 = OpLabel
-        %116 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %116
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %116 = OpFunctionCall %void %main_1
+        %117 = OpLoad %v4float %x_GLF_color
+        %118 = OpCompositeConstruct %main_out %117
+               OpReturnValue %118
                OpFunctionEnd
        %main = OpFunction %void None %14
-        %118 = OpLabel
-        %119 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %119
-        %120 = OpFunctionCall %void %main_1
-        %122 = OpLoad %v4float %x_GLF_color
-        %123 = OpCompositeConstruct %main_out %122
-        %121 = OpFunctionCall %void %tint_symbol_3 %123
+        %120 = OpLabel
+        %122 = OpLoad %v4float %gl_FragCoord_param_1
+        %121 = OpFunctionCall %main_out %main_inner %122
+        %123 = OpCompositeExtract %v4float %121 0
+               OpStore %x_GLF_color_1_1 %123
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.wgsl.expected.spvasm
index 312327e..b58d564 100644
--- a/test/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "one"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %m44 "m44"
                OpName %x_10_phi "x_10_phi"
@@ -24,30 +24,30 @@
                OpName %x_83_1 "x_83_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
 %mat4v4float = OpTypeMatrix %v4float 4
@@ -94,7 +94,7 @@
      %uint_2 = OpConstant %uint 2
      %uint_3 = OpConstant %uint 3
    %main_out = OpTypeStruct %v4float
-        %111 = OpTypeFunction %void %main_out
+        %111 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
         %m44 = OpVariable %_ptr_Function_mat4v4float Function %21
@@ -102,8 +102,8 @@
         %x_9 = OpVariable %_ptr_Function_int Function %25
    %x_11_phi = OpVariable %_ptr_Function_int Function %25
         %x_8 = OpVariable %_ptr_Function_int Function %25
-     %x_79_1 = OpVariable %_ptr_Function_v4float Function %5
-     %x_83_1 = OpVariable %_ptr_Function_v4float Function %5
+     %x_79_1 = OpVariable %_ptr_Function_v4float Function %7
+     %x_83_1 = OpVariable %_ptr_Function_v4float Function %7
                OpStore %m44 %46
                OpStore %x_10_phi %int_0
                OpBranch %48
@@ -183,20 +183,20 @@
                OpStore %x_GLF_color %110
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %111
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %111
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %115 = OpLabel
-        %116 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %116
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %116 = OpFunctionCall %void %main_1
+        %117 = OpLoad %v4float %x_GLF_color
+        %118 = OpCompositeConstruct %main_out %117
+               OpReturnValue %118
                OpFunctionEnd
        %main = OpFunction %void None %14
-        %118 = OpLabel
-        %119 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %119
-        %120 = OpFunctionCall %void %main_1
-        %122 = OpLoad %v4float %x_GLF_color
-        %123 = OpCompositeConstruct %main_out %122
-        %121 = OpFunctionCall %void %tint_symbol_3 %123
+        %120 = OpLabel
+        %122 = OpLoad %v4float %gl_FragCoord_param_1
+        %121 = OpFunctionCall %main_out %main_inner %122
+        %123 = OpCompositeExtract %v4float %121 0
+               OpStore %x_GLF_color_1_1 %123
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/nested-for-loops-with-return/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/nested-for-loops-with-return/0-opt.spvasm.expected.spvasm
index eca9c85..c2763f8 100644
--- a/test/vk-gl-cts/graphicsfuzz/nested-for-loops-with-return/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/nested-for-loops-with-return/0-opt.spvasm.expected.spvasm
@@ -5,12 +5,12 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %nb_mod_f1_ "nb_mod_f1_"
                OpName %limit "limit"
                OpName %x_injected_loop_counter "x_injected_loop_counter"
@@ -19,22 +19,22 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_float = OpTypePointer Function %float
          %11 = OpTypeFunction %float %_ptr_Function_float
         %int = OpTypeInt 32 1
@@ -54,7 +54,7 @@
 %_ptr_Private_float = OpTypePointer Private %float
          %55 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %56 = OpTypeFunction %void %main_out
+         %56 = OpTypeFunction %main_out %v4float
  %nb_mod_f1_ = OpFunction %float None %11
       %limit = OpFunctionParameter %_ptr_Function_float
          %15 = OpLabel
@@ -101,20 +101,20 @@
                OpStore %x_GLF_color %55
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %56
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %56
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %60 = OpLabel
-         %61 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %61
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %61 = OpFunctionCall %void %main_1
+         %62 = OpLoad %v4float %x_GLF_color
+         %63 = OpCompositeConstruct %main_out %62
+               OpReturnValue %63
                OpFunctionEnd
        %main = OpFunction %void None %42
-         %63 = OpLabel
-         %64 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %64
-         %65 = OpFunctionCall %void %main_1
-         %67 = OpLoad %v4float %x_GLF_color
-         %68 = OpCompositeConstruct %main_out %67
-         %66 = OpFunctionCall %void %tint_symbol_3 %68
+         %65 = OpLabel
+         %67 = OpLoad %v4float %gl_FragCoord_param_1
+         %66 = OpFunctionCall %main_out %main_inner %67
+         %68 = OpCompositeExtract %v4float %66 0
+               OpStore %x_GLF_color_1_1 %68
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/nested-for-loops-with-return/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/nested-for-loops-with-return/0-opt.wgsl.expected.spvasm
index eca9c85..c2763f8 100644
--- a/test/vk-gl-cts/graphicsfuzz/nested-for-loops-with-return/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/nested-for-loops-with-return/0-opt.wgsl.expected.spvasm
@@ -5,12 +5,12 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %nb_mod_f1_ "nb_mod_f1_"
                OpName %limit "limit"
                OpName %x_injected_loop_counter "x_injected_loop_counter"
@@ -19,22 +19,22 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_float = OpTypePointer Function %float
          %11 = OpTypeFunction %float %_ptr_Function_float
         %int = OpTypeInt 32 1
@@ -54,7 +54,7 @@
 %_ptr_Private_float = OpTypePointer Private %float
          %55 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %56 = OpTypeFunction %void %main_out
+         %56 = OpTypeFunction %main_out %v4float
  %nb_mod_f1_ = OpFunction %float None %11
       %limit = OpFunctionParameter %_ptr_Function_float
          %15 = OpLabel
@@ -101,20 +101,20 @@
                OpStore %x_GLF_color %55
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %56
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %56
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %60 = OpLabel
-         %61 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %61
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %61 = OpFunctionCall %void %main_1
+         %62 = OpLoad %v4float %x_GLF_color
+         %63 = OpCompositeConstruct %main_out %62
+               OpReturnValue %63
                OpFunctionEnd
        %main = OpFunction %void None %42
-         %63 = OpLabel
-         %64 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %64
-         %65 = OpFunctionCall %void %main_1
-         %67 = OpLoad %v4float %x_GLF_color
-         %68 = OpCompositeConstruct %main_out %67
-         %66 = OpFunctionCall %void %tint_symbol_3 %68
+         %65 = OpLabel
+         %67 = OpLoad %v4float %gl_FragCoord_param_1
+         %66 = OpFunctionCall %main_out %main_inner %67
+         %68 = OpCompositeExtract %v4float %66 0
+               OpStore %x_GLF_color_1_1 %68
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.spvasm.expected.spvasm
index e38a6fc..d051634 100644
--- a/test/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.spvasm.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 63
+; Bound: 62
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -56,7 +55,7 @@
        %true = OpConstantTrue %bool
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %51 = OpTypeFunction %void %main_out
+         %51 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %19
@@ -100,18 +99,17 @@
          %25 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %51
-%tint_symbol = OpFunctionParameter %main_out
-         %55 = OpLabel
-         %56 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %56
-               OpReturn
+ %main_inner = OpFunction %main_out None %51
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %main_1
+         %56 = OpLoad %v4float %x_GLF_color
+         %57 = OpCompositeConstruct %main_out %56
+               OpReturnValue %57
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %main_1
-         %61 = OpLoad %v4float %x_GLF_color
-         %62 = OpCompositeConstruct %main_out %61
-         %60 = OpFunctionCall %void %tint_symbol_2 %62
+         %59 = OpLabel
+         %60 = OpFunctionCall %main_out %main_inner
+         %61 = OpCompositeExtract %v4float %60 0
+               OpStore %x_GLF_color_1_1 %61
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.wgsl.expected.spvasm
index e38a6fc..d051634 100644
--- a/test/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 63
+; Bound: 62
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -56,7 +55,7 @@
        %true = OpConstantTrue %bool
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %51 = OpTypeFunction %void %main_out
+         %51 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %19
@@ -100,18 +99,17 @@
          %25 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %51
-%tint_symbol = OpFunctionParameter %main_out
-         %55 = OpLabel
-         %56 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %56
-               OpReturn
+ %main_inner = OpFunction %main_out None %51
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %main_1
+         %56 = OpLoad %v4float %x_GLF_color
+         %57 = OpCompositeConstruct %main_out %56
+               OpReturnValue %57
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %main_1
-         %61 = OpLoad %v4float %x_GLF_color
-         %62 = OpCompositeConstruct %main_out %61
-         %60 = OpFunctionCall %void %tint_symbol_2 %62
+         %59 = OpLabel
+         %60 = OpFunctionCall %main_out %main_inner
+         %61 = OpCompositeExtract %v4float %60 0
+               OpStore %x_GLF_color_1_1 %61
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.spvasm
index 84ab931..bb4a7b4 100644
--- a/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 140
+; Bound: 139
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %GLF_dead5cols "GLF_dead5cols"
@@ -22,28 +22,27 @@
                OpName %donor_replacementGLF_dead5sums "donor_replacementGLF_dead5sums"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_9 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -69,7 +68,7 @@
     %int_200 = OpConstant %int 200
         %127 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %128 = OpTypeFunction %void %main_out
+        %128 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %19
@@ -228,18 +227,17 @@
                OpStore %x_GLF_color %127
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %128
-%tint_symbol = OpFunctionParameter %main_out
-        %132 = OpLabel
-        %133 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %133
-               OpReturn
+ %main_inner = OpFunction %main_out None %128
+        %131 = OpLabel
+        %132 = OpFunctionCall %void %main_1
+        %133 = OpLoad %v4float %x_GLF_color
+        %134 = OpCompositeConstruct %main_out %133
+               OpReturnValue %134
                OpFunctionEnd
        %main = OpFunction %void None %12
-        %135 = OpLabel
-        %136 = OpFunctionCall %void %main_1
-        %138 = OpLoad %v4float %x_GLF_color
-        %139 = OpCompositeConstruct %main_out %138
-        %137 = OpFunctionCall %void %tint_symbol_2 %139
+        %136 = OpLabel
+        %137 = OpFunctionCall %main_out %main_inner
+        %138 = OpCompositeExtract %v4float %137 0
+               OpStore %x_GLF_color_1_1 %138
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.wgsl.expected.spvasm
index d22eb4e..1a033ac 100644
--- a/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 142
+; Bound: 141
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %GLF_dead5cols "GLF_dead5cols"
@@ -22,28 +22,27 @@
                OpName %donor_replacementGLF_dead5sums "donor_replacementGLF_dead5sums"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_9 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -69,7 +68,7 @@
     %int_200 = OpConstant %int 200
         %129 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %130 = OpTypeFunction %void %main_out
+        %130 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %19
@@ -233,18 +232,17 @@
                OpStore %x_GLF_color %129
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %130
-%tint_symbol = OpFunctionParameter %main_out
-        %134 = OpLabel
-        %135 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %135
-               OpReturn
+ %main_inner = OpFunction %main_out None %130
+        %133 = OpLabel
+        %134 = OpFunctionCall %void %main_1
+        %135 = OpLoad %v4float %x_GLF_color
+        %136 = OpCompositeConstruct %main_out %135
+               OpReturnValue %136
                OpFunctionEnd
        %main = OpFunction %void None %12
-        %137 = OpLabel
-        %138 = OpFunctionCall %void %main_1
-        %140 = OpLoad %v4float %x_GLF_color
-        %141 = OpCompositeConstruct %main_out %140
-        %139 = OpFunctionCall %void %tint_symbol_2 %141
+        %138 = OpLabel
+        %139 = OpFunctionCall %main_out %main_inner
+        %140 = OpCompositeExtract %v4float %139 0
+               OpStore %x_GLF_color_1_1 %140
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/nested-switch-break-discard/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/nested-switch-break-discard/0-opt.spvasm.expected.spvasm
index 6a58a17..aeb1b95 100644
--- a/test/vk-gl-cts/graphicsfuzz/nested-switch-break-discard/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/nested-switch-break-discard/0-opt.spvasm.expected.spvasm
@@ -5,43 +5,43 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %float_0 = OpConstant %float 0
@@ -57,7 +57,7 @@
        %bool = OpTypeBool
          %45 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %46 = OpTypeFunction %void %main_out
+         %46 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
                OpStore %x_GLF_color %21
@@ -91,20 +91,20 @@
          %27 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %46
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %46
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %50 = OpLabel
-         %51 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %51
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %51 = OpFunctionCall %void %main_1
+         %52 = OpLoad %v4float %x_GLF_color
+         %53 = OpCompositeConstruct %main_out %52
+               OpReturnValue %53
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %53 = OpLabel
-         %54 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %54
-         %55 = OpFunctionCall %void %main_1
-         %57 = OpLoad %v4float %x_GLF_color
-         %58 = OpCompositeConstruct %main_out %57
-         %56 = OpFunctionCall %void %tint_symbol_3 %58
+         %55 = OpLabel
+         %57 = OpLoad %v4float %gl_FragCoord_param_1
+         %56 = OpFunctionCall %main_out %main_inner %57
+         %58 = OpCompositeExtract %v4float %56 0
+               OpStore %x_GLF_color_1_1 %58
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/nested-switch-break-discard/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/nested-switch-break-discard/0-opt.wgsl.expected.spvasm
index 6a58a17..aeb1b95 100644
--- a/test/vk-gl-cts/graphicsfuzz/nested-switch-break-discard/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/nested-switch-break-discard/0-opt.wgsl.expected.spvasm
@@ -5,43 +5,43 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %float_0 = OpConstant %float 0
@@ -57,7 +57,7 @@
        %bool = OpTypeBool
          %45 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %46 = OpTypeFunction %void %main_out
+         %46 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
                OpStore %x_GLF_color %21
@@ -91,20 +91,20 @@
          %27 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %46
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %46
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %50 = OpLabel
-         %51 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %51
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %51 = OpFunctionCall %void %main_1
+         %52 = OpLoad %v4float %x_GLF_color
+         %53 = OpCompositeConstruct %main_out %52
+               OpReturnValue %53
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %53 = OpLabel
-         %54 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %54
-         %55 = OpFunctionCall %void %main_1
-         %57 = OpLoad %v4float %x_GLF_color
-         %58 = OpCompositeConstruct %main_out %57
-         %56 = OpFunctionCall %void %tint_symbol_3 %58
+         %55 = OpLabel
+         %57 = OpLoad %v4float %gl_FragCoord_param_1
+         %56 = OpFunctionCall %main_out %main_inner %57
+         %58 = OpCompositeExtract %v4float %56 0
+               OpStore %x_GLF_color_1_1 %58
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.spvasm.expected.spvasm
index 06b6414..63448fe 100644
--- a/test/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 69
+; Bound: 68
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_5 "x_5"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_10 "x_10"
                OpName %x_9 "x_9"
@@ -19,28 +19,27 @@
                OpName %x_11_phi "x_11_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_1 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -61,7 +60,7 @@
     %float_1 = OpConstant %float 1
          %56 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %57 = OpTypeFunction %void %main_out
+         %57 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
        %x_10 = OpVariable %_ptr_Function__arr_int_uint_1 Function %21
@@ -108,18 +107,17 @@
          %52 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %57
-%tint_symbol = OpFunctionParameter %main_out
-         %61 = OpLabel
-         %62 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %62
-               OpReturn
+ %main_inner = OpFunction %main_out None %57
+         %60 = OpLabel
+         %61 = OpFunctionCall %void %main_1
+         %62 = OpLoad %v4float %x_GLF_color
+         %63 = OpCompositeConstruct %main_out %62
+               OpReturnValue %63
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %64 = OpLabel
-         %65 = OpFunctionCall %void %main_1
-         %67 = OpLoad %v4float %x_GLF_color
-         %68 = OpCompositeConstruct %main_out %67
-         %66 = OpFunctionCall %void %tint_symbol_2 %68
+         %65 = OpLabel
+         %66 = OpFunctionCall %main_out %main_inner
+         %67 = OpCompositeExtract %v4float %66 0
+               OpStore %x_GLF_color_1_1 %67
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.wgsl.expected.spvasm
index 06b6414..63448fe 100644
--- a/test/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 69
+; Bound: 68
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_5 "x_5"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_10 "x_10"
                OpName %x_9 "x_9"
@@ -19,28 +19,27 @@
                OpName %x_11_phi "x_11_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_1 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -61,7 +60,7 @@
     %float_1 = OpConstant %float 1
          %56 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %57 = OpTypeFunction %void %main_out
+         %57 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
        %x_10 = OpVariable %_ptr_Function__arr_int_uint_1 Function %21
@@ -108,18 +107,17 @@
          %52 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %57
-%tint_symbol = OpFunctionParameter %main_out
-         %61 = OpLabel
-         %62 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %62
-               OpReturn
+ %main_inner = OpFunction %main_out None %57
+         %60 = OpLabel
+         %61 = OpFunctionCall %void %main_1
+         %62 = OpLoad %v4float %x_GLF_color
+         %63 = OpCompositeConstruct %main_out %62
+               OpReturnValue %63
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %64 = OpLabel
-         %65 = OpFunctionCall %void %main_1
-         %67 = OpLoad %v4float %x_GLF_color
-         %68 = OpCompositeConstruct %main_out %67
-         %66 = OpFunctionCall %void %tint_symbol_2 %68
+         %65 = OpLabel
+         %66 = OpFunctionCall %main_out %main_inner
+         %67 = OpCompositeExtract %v4float %66 0
+               OpStore %x_GLF_color_1_1 %67
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.spvasm.expected.spvasm
index cbe84e4..de6b7b7 100644
--- a/test/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_30 "x_30"
                OpName %x_47 "x_47"
@@ -21,31 +21,31 @@
                OpName %x_48_1 "x_48_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -64,13 +64,13 @@
      %uint_1 = OpConstant %uint 1
          %64 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %65 = OpTypeFunction %void %main_out
+         %65 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %x_30 = OpVariable %_ptr_Function_bool Function %22
        %x_47 = OpVariable %_ptr_Function_float Function %25
    %x_47_phi = OpVariable %_ptr_Function_float Function %25
-     %x_48_1 = OpVariable %_ptr_Function_v4float Function %5
+     %x_48_1 = OpVariable %_ptr_Function_v4float Function %7
          %29 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_0
          %30 = OpLoad %float %29
          %32 = OpFOrdGreaterThan %bool %30 %float_1
@@ -128,20 +128,20 @@
                OpStore %x_GLF_color %64
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %65
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %65
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %69 = OpLabel
-         %70 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %70
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %70 = OpFunctionCall %void %main_1
+         %71 = OpLoad %v4float %x_GLF_color
+         %72 = OpCompositeConstruct %main_out %71
+               OpReturnValue %72
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %72 = OpLabel
-         %73 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %73
-         %74 = OpFunctionCall %void %main_1
-         %76 = OpLoad %v4float %x_GLF_color
-         %77 = OpCompositeConstruct %main_out %76
-         %75 = OpFunctionCall %void %tint_symbol_3 %77
+         %74 = OpLabel
+         %76 = OpLoad %v4float %gl_FragCoord_param_1
+         %75 = OpFunctionCall %main_out %main_inner %76
+         %77 = OpCompositeExtract %v4float %75 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.wgsl.expected.spvasm
index cbe84e4..de6b7b7 100644
--- a/test/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_30 "x_30"
                OpName %x_47 "x_47"
@@ -21,31 +21,31 @@
                OpName %x_48_1 "x_48_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -64,13 +64,13 @@
      %uint_1 = OpConstant %uint 1
          %64 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %65 = OpTypeFunction %void %main_out
+         %65 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %x_30 = OpVariable %_ptr_Function_bool Function %22
        %x_47 = OpVariable %_ptr_Function_float Function %25
    %x_47_phi = OpVariable %_ptr_Function_float Function %25
-     %x_48_1 = OpVariable %_ptr_Function_v4float Function %5
+     %x_48_1 = OpVariable %_ptr_Function_v4float Function %7
          %29 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_0
          %30 = OpLoad %float %29
          %32 = OpFOrdGreaterThan %bool %30 %float_1
@@ -128,20 +128,20 @@
                OpStore %x_GLF_color %64
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %65
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %65
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %69 = OpLabel
-         %70 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %70
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %70 = OpFunctionCall %void %main_1
+         %71 = OpLoad %v4float %x_GLF_color
+         %72 = OpCompositeConstruct %main_out %71
+               OpReturnValue %72
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %72 = OpLabel
-         %73 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %73
-         %74 = OpFunctionCall %void %main_1
-         %76 = OpLoad %v4float %x_GLF_color
-         %77 = OpCompositeConstruct %main_out %76
-         %75 = OpFunctionCall %void %tint_symbol_3 %77
+         %74 = OpLabel
+         %76 = OpLoad %v4float %gl_FragCoord_param_1
+         %75 = OpFunctionCall %main_out %main_inner %76
+         %77 = OpCompositeExtract %v4float %75 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.spvasm.expected.spvasm
index b4f0236..af0b528 100644
--- a/test/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.spvasm.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 75
+; Bound: 74
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %f_ "f_"
                OpName %i "i"
                OpName %main_1 "main_1"
@@ -16,18 +16,17 @@
                OpName %i_1 "i_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
           %8 = OpTypeFunction %float
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -46,7 +45,7 @@
      %uint_0 = OpConstant %uint 0
 %_ptr_Function_float = OpTypePointer Function %float
    %main_out = OpTypeStruct %v4float
-         %63 = OpTypeFunction %void %main_out
+         %63 = OpTypeFunction %main_out
          %f_ = OpFunction %float None %8
          %10 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %14
@@ -118,18 +117,17 @@
                OpStore %x_GLF_color %62
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %63
-%tint_symbol = OpFunctionParameter %main_out
-         %67 = OpLabel
-         %68 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %68
-               OpReturn
+ %main_inner = OpFunction %main_out None %63
+         %66 = OpLabel
+         %67 = OpFunctionCall %void %main_1
+         %68 = OpLoad %v4float %x_GLF_color
+         %69 = OpCompositeConstruct %main_out %68
+               OpReturnValue %69
                OpFunctionEnd
        %main = OpFunction %void None %36
-         %70 = OpLabel
-         %71 = OpFunctionCall %void %main_1
-         %73 = OpLoad %v4float %x_GLF_color
-         %74 = OpCompositeConstruct %main_out %73
-         %72 = OpFunctionCall %void %tint_symbol_2 %74
+         %71 = OpLabel
+         %72 = OpFunctionCall %main_out %main_inner
+         %73 = OpCompositeExtract %v4float %72 0
+               OpStore %x_GLF_color_1_1 %73
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.wgsl.expected.spvasm
index b4f0236..af0b528 100644
--- a/test/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.wgsl.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 75
+; Bound: 74
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %f_ "f_"
                OpName %i "i"
                OpName %main_1 "main_1"
@@ -16,18 +16,17 @@
                OpName %i_1 "i_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
           %8 = OpTypeFunction %float
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -46,7 +45,7 @@
      %uint_0 = OpConstant %uint 0
 %_ptr_Function_float = OpTypePointer Function %float
    %main_out = OpTypeStruct %v4float
-         %63 = OpTypeFunction %void %main_out
+         %63 = OpTypeFunction %main_out
          %f_ = OpFunction %float None %8
          %10 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %14
@@ -118,18 +117,17 @@
                OpStore %x_GLF_color %62
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %63
-%tint_symbol = OpFunctionParameter %main_out
-         %67 = OpLabel
-         %68 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %68
-               OpReturn
+ %main_inner = OpFunction %main_out None %63
+         %66 = OpLabel
+         %67 = OpFunctionCall %void %main_1
+         %68 = OpLoad %v4float %x_GLF_color
+         %69 = OpCompositeConstruct %main_out %68
+               OpReturnValue %69
                OpFunctionEnd
        %main = OpFunction %void None %36
-         %70 = OpLabel
-         %71 = OpFunctionCall %void %main_1
-         %73 = OpLoad %v4float %x_GLF_color
-         %74 = OpCompositeConstruct %main_out %73
-         %72 = OpFunctionCall %void %tint_symbol_2 %74
+         %71 = OpLabel
+         %72 = OpFunctionCall %main_out %main_inner
+         %73 = OpCompositeExtract %v4float %72 0
+               OpStore %x_GLF_color_1_1 %73
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.spvasm.expected.spvasm
index 9396999..894685d 100644
--- a/test/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.spvasm.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 115
+; Bound: 114
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_36 "x_36"
                OpName %x_37 "x_37"
@@ -25,8 +25,7 @@
                OpName %x_52_phi "x_52_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
                OpName %GLF_live4drawShape_ "GLF_live4drawShape_"
                OpName %x_57 "x_57"
@@ -41,15 +40,15 @@
                OpName %x_8_phi "x_8_phi"
                OpName %x_71_phi "x_71_phi"
                OpName %x_72_phi "x_72_phi"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -70,8 +69,8 @@
        %true = OpConstantTrue %bool
          %57 = OpConstantComposite %v3float %float_1 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-         %65 = OpTypeFunction %void %main_out
-         %77 = OpTypeFunction %v3float
+         %65 = OpTypeFunction %main_out
+         %76 = OpTypeFunction %v3float
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
        %x_36 = OpVariable %_ptr_Function_bool Function %16
@@ -152,23 +151,22 @@
                OpStore %x_38 %64
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %65
-%tint_symbol = OpFunctionParameter %main_out
-         %69 = OpLabel
-         %70 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %70
-               OpReturn
+ %main_inner = OpFunction %main_out None %65
+         %68 = OpLabel
+         %69 = OpFunctionCall %void %main_1
+         %70 = OpLoad %v4float %x_GLF_color
+         %71 = OpCompositeConstruct %main_out %70
+               OpReturnValue %71
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %72 = OpLabel
-         %73 = OpFunctionCall %void %main_1
-         %75 = OpLoad %v4float %x_GLF_color
-         %76 = OpCompositeConstruct %main_out %75
-         %74 = OpFunctionCall %void %tint_symbol_2 %76
+         %73 = OpLabel
+         %74 = OpFunctionCall %main_out %main_inner
+         %75 = OpCompositeExtract %v4float %74 0
+               OpStore %x_GLF_color_1_1 %75
                OpReturn
                OpFunctionEnd
-%GLF_live4drawShape_ = OpFunction %v3float None %77
-         %79 = OpLabel
+%GLF_live4drawShape_ = OpFunction %v3float None %76
+         %78 = OpLabel
        %x_57 = OpVariable %_ptr_Function_bool Function %16
        %x_58 = OpVariable %_ptr_Function_v3float Function %20
           %i = OpVariable %_ptr_Function_int Function %24
@@ -183,63 +181,63 @@
    %x_72_phi = OpVariable %_ptr_Function_bool Function %16
                OpStore %x_57 %false
                OpStore %x_60_phi %false
-               OpBranch %87
-         %87 = OpLabel
-               OpLoopMerge %88 %89 None
-               OpBranch %90
-         %90 = OpLabel
-         %96 = OpLoad %bool %x_60_phi
+               OpBranch %86
+         %86 = OpLabel
+               OpLoopMerge %87 %88 None
+               OpBranch %89
+         %89 = OpLabel
+         %95 = OpLoad %bool %x_60_phi
                OpStore %i %int_0
-               OpStore %x_65_phi %96
+               OpStore %x_65_phi %95
                OpStore %x_8_phi %int_0
-               OpBranch %97
-         %97 = OpLabel
-               OpLoopMerge %98 %99 None
-               OpBranch %100
-        %100 = OpLabel
-        %101 = OpLoad %bool %x_65_phi
-               OpStore %x_65 %101
-        %102 = OpLoad %int %x_8_phi
+               OpBranch %96
+         %96 = OpLabel
+               OpLoopMerge %97 %98 None
+               OpBranch %99
+         %99 = OpLabel
+        %100 = OpLoad %bool %x_65_phi
+               OpStore %x_65 %100
+        %101 = OpLoad %int %x_8_phi
                OpStore %x_71_phi %50
-        %103 = OpLoad %bool %x_65
-               OpStore %x_72_phi %103
-        %104 = OpSLessThan %bool %102 %int_0
-               OpSelectionMerge %105 None
-               OpBranchConditional %104 %106 %107
-        %106 = OpLabel
-               OpBranch %105
-        %107 = OpLabel
-               OpBranch %98
+        %102 = OpLoad %bool %x_65
+               OpStore %x_72_phi %102
+        %103 = OpSLessThan %bool %101 %int_0
+               OpSelectionMerge %104 None
+               OpBranchConditional %103 %105 %106
         %105 = OpLabel
+               OpBranch %104
+        %106 = OpLabel
+               OpBranch %97
+        %104 = OpLabel
                OpStore %x_57 %true
                OpStore %x_58 %57
                OpStore %x_71_phi %57
                OpStore %x_72_phi %true
-               OpBranch %98
-         %99 = OpLabel
-               OpStore %x_65_phi %false
-               OpStore %x_8_phi %int_0
                OpBranch %97
          %98 = OpLabel
-        %108 = OpLoad %v3float %x_71_phi
-               OpStore %x_71 %108
-        %109 = OpLoad %bool %x_72_phi
-        %110 = OpLoad %v3float %x_71
-               OpStore %x_75_phi %110
-               OpSelectionMerge %111 None
-               OpBranchConditional %109 %112 %111
-        %112 = OpLabel
-               OpBranch %88
+               OpStore %x_65_phi %false
+               OpStore %x_8_phi %int_0
+               OpBranch %96
+         %97 = OpLabel
+        %107 = OpLoad %v3float %x_71_phi
+               OpStore %x_71 %107
+        %108 = OpLoad %bool %x_72_phi
+        %109 = OpLoad %v3float %x_71
+               OpStore %x_75_phi %109
+               OpSelectionMerge %110 None
+               OpBranchConditional %108 %111 %110
         %111 = OpLabel
+               OpBranch %87
+        %110 = OpLabel
                OpStore %x_74 %50
                OpStore %x_57 %true
-        %113 = OpLoad %v3float %x_74
-               OpStore %x_75_phi %113
-               OpBranch %88
-         %89 = OpLabel
-               OpStore %x_60_phi %false
+        %112 = OpLoad %v3float %x_74
+               OpStore %x_75_phi %112
                OpBranch %87
          %88 = OpLabel
-        %114 = OpLoad %v3float %x_75_phi
-               OpReturnValue %114
+               OpStore %x_60_phi %false
+               OpBranch %86
+         %87 = OpLabel
+        %113 = OpLoad %v3float %x_75_phi
+               OpReturnValue %113
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.wgsl.expected.spvasm
index 9396999..894685d 100644
--- a/test/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.wgsl.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 115
+; Bound: 114
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_36 "x_36"
                OpName %x_37 "x_37"
@@ -25,8 +25,7 @@
                OpName %x_52_phi "x_52_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
                OpName %GLF_live4drawShape_ "GLF_live4drawShape_"
                OpName %x_57 "x_57"
@@ -41,15 +40,15 @@
                OpName %x_8_phi "x_8_phi"
                OpName %x_71_phi "x_71_phi"
                OpName %x_72_phi "x_72_phi"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -70,8 +69,8 @@
        %true = OpConstantTrue %bool
          %57 = OpConstantComposite %v3float %float_1 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-         %65 = OpTypeFunction %void %main_out
-         %77 = OpTypeFunction %v3float
+         %65 = OpTypeFunction %main_out
+         %76 = OpTypeFunction %v3float
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
        %x_36 = OpVariable %_ptr_Function_bool Function %16
@@ -152,23 +151,22 @@
                OpStore %x_38 %64
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %65
-%tint_symbol = OpFunctionParameter %main_out
-         %69 = OpLabel
-         %70 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %70
-               OpReturn
+ %main_inner = OpFunction %main_out None %65
+         %68 = OpLabel
+         %69 = OpFunctionCall %void %main_1
+         %70 = OpLoad %v4float %x_GLF_color
+         %71 = OpCompositeConstruct %main_out %70
+               OpReturnValue %71
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %72 = OpLabel
-         %73 = OpFunctionCall %void %main_1
-         %75 = OpLoad %v4float %x_GLF_color
-         %76 = OpCompositeConstruct %main_out %75
-         %74 = OpFunctionCall %void %tint_symbol_2 %76
+         %73 = OpLabel
+         %74 = OpFunctionCall %main_out %main_inner
+         %75 = OpCompositeExtract %v4float %74 0
+               OpStore %x_GLF_color_1_1 %75
                OpReturn
                OpFunctionEnd
-%GLF_live4drawShape_ = OpFunction %v3float None %77
-         %79 = OpLabel
+%GLF_live4drawShape_ = OpFunction %v3float None %76
+         %78 = OpLabel
        %x_57 = OpVariable %_ptr_Function_bool Function %16
        %x_58 = OpVariable %_ptr_Function_v3float Function %20
           %i = OpVariable %_ptr_Function_int Function %24
@@ -183,63 +181,63 @@
    %x_72_phi = OpVariable %_ptr_Function_bool Function %16
                OpStore %x_57 %false
                OpStore %x_60_phi %false
-               OpBranch %87
-         %87 = OpLabel
-               OpLoopMerge %88 %89 None
-               OpBranch %90
-         %90 = OpLabel
-         %96 = OpLoad %bool %x_60_phi
+               OpBranch %86
+         %86 = OpLabel
+               OpLoopMerge %87 %88 None
+               OpBranch %89
+         %89 = OpLabel
+         %95 = OpLoad %bool %x_60_phi
                OpStore %i %int_0
-               OpStore %x_65_phi %96
+               OpStore %x_65_phi %95
                OpStore %x_8_phi %int_0
-               OpBranch %97
-         %97 = OpLabel
-               OpLoopMerge %98 %99 None
-               OpBranch %100
-        %100 = OpLabel
-        %101 = OpLoad %bool %x_65_phi
-               OpStore %x_65 %101
-        %102 = OpLoad %int %x_8_phi
+               OpBranch %96
+         %96 = OpLabel
+               OpLoopMerge %97 %98 None
+               OpBranch %99
+         %99 = OpLabel
+        %100 = OpLoad %bool %x_65_phi
+               OpStore %x_65 %100
+        %101 = OpLoad %int %x_8_phi
                OpStore %x_71_phi %50
-        %103 = OpLoad %bool %x_65
-               OpStore %x_72_phi %103
-        %104 = OpSLessThan %bool %102 %int_0
-               OpSelectionMerge %105 None
-               OpBranchConditional %104 %106 %107
-        %106 = OpLabel
-               OpBranch %105
-        %107 = OpLabel
-               OpBranch %98
+        %102 = OpLoad %bool %x_65
+               OpStore %x_72_phi %102
+        %103 = OpSLessThan %bool %101 %int_0
+               OpSelectionMerge %104 None
+               OpBranchConditional %103 %105 %106
         %105 = OpLabel
+               OpBranch %104
+        %106 = OpLabel
+               OpBranch %97
+        %104 = OpLabel
                OpStore %x_57 %true
                OpStore %x_58 %57
                OpStore %x_71_phi %57
                OpStore %x_72_phi %true
-               OpBranch %98
-         %99 = OpLabel
-               OpStore %x_65_phi %false
-               OpStore %x_8_phi %int_0
                OpBranch %97
          %98 = OpLabel
-        %108 = OpLoad %v3float %x_71_phi
-               OpStore %x_71 %108
-        %109 = OpLoad %bool %x_72_phi
-        %110 = OpLoad %v3float %x_71
-               OpStore %x_75_phi %110
-               OpSelectionMerge %111 None
-               OpBranchConditional %109 %112 %111
-        %112 = OpLabel
-               OpBranch %88
+               OpStore %x_65_phi %false
+               OpStore %x_8_phi %int_0
+               OpBranch %96
+         %97 = OpLabel
+        %107 = OpLoad %v3float %x_71_phi
+               OpStore %x_71 %107
+        %108 = OpLoad %bool %x_72_phi
+        %109 = OpLoad %v3float %x_71
+               OpStore %x_75_phi %109
+               OpSelectionMerge %110 None
+               OpBranchConditional %108 %111 %110
         %111 = OpLabel
+               OpBranch %87
+        %110 = OpLabel
                OpStore %x_74 %50
                OpStore %x_57 %true
-        %113 = OpLoad %v3float %x_74
-               OpStore %x_75_phi %113
-               OpBranch %88
-         %89 = OpLabel
-               OpStore %x_60_phi %false
+        %112 = OpLoad %v3float %x_74
+               OpStore %x_75_phi %112
                OpBranch %87
          %88 = OpLabel
-        %114 = OpLoad %v3float %x_75_phi
-               OpReturnValue %114
+               OpStore %x_60_phi %false
+               OpBranch %86
+         %87 = OpLabel
+        %113 = OpLoad %v3float %x_75_phi
+               OpReturnValue %113
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.spvasm.expected.spvasm
index 4e21ac0..acc14da 100644
--- a/test/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 117
+; Bound: 116
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_36 "x_36"
                OpName %x_37 "x_37"
@@ -33,27 +33,26 @@
                OpName %x_71_phi "x_71_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -81,7 +80,7 @@
      %uint_2 = OpConstant %uint 2
         %104 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %105 = OpTypeFunction %void %main_out
+        %105 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
        %x_36 = OpVariable %_ptr_Function_bool Function %20
@@ -209,18 +208,17 @@
                OpStore %x_GLF_color %104
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %105
-%tint_symbol = OpFunctionParameter %main_out
-        %109 = OpLabel
-        %110 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %110
-               OpReturn
+ %main_inner = OpFunction %main_out None %105
+        %108 = OpLabel
+        %109 = OpFunctionCall %void %main_1
+        %110 = OpLoad %v4float %x_GLF_color
+        %111 = OpCompositeConstruct %main_out %110
+               OpReturnValue %111
                OpFunctionEnd
        %main = OpFunction %void None %12
-        %112 = OpLabel
-        %113 = OpFunctionCall %void %main_1
-        %115 = OpLoad %v4float %x_GLF_color
-        %116 = OpCompositeConstruct %main_out %115
-        %114 = OpFunctionCall %void %tint_symbol_2 %116
+        %113 = OpLabel
+        %114 = OpFunctionCall %main_out %main_inner
+        %115 = OpCompositeExtract %v4float %114 0
+               OpStore %x_GLF_color_1_1 %115
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.wgsl.expected.spvasm
index 4e21ac0..acc14da 100644
--- a/test/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 117
+; Bound: 116
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_36 "x_36"
                OpName %x_37 "x_37"
@@ -33,27 +33,26 @@
                OpName %x_71_phi "x_71_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -81,7 +80,7 @@
      %uint_2 = OpConstant %uint 2
         %104 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %105 = OpTypeFunction %void %main_out
+        %105 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
        %x_36 = OpVariable %_ptr_Function_bool Function %20
@@ -209,18 +208,17 @@
                OpStore %x_GLF_color %104
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %105
-%tint_symbol = OpFunctionParameter %main_out
-        %109 = OpLabel
-        %110 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %110
-               OpReturn
+ %main_inner = OpFunction %main_out None %105
+        %108 = OpLabel
+        %109 = OpFunctionCall %void %main_1
+        %110 = OpLoad %v4float %x_GLF_color
+        %111 = OpCompositeConstruct %main_out %110
+               OpReturnValue %111
                OpFunctionEnd
        %main = OpFunction %void None %12
-        %112 = OpLabel
-        %113 = OpFunctionCall %void %main_1
-        %115 = OpLoad %v4float %x_GLF_color
-        %116 = OpCompositeConstruct %main_out %115
-        %114 = OpFunctionCall %void %tint_symbol_2 %116
+        %113 = OpLabel
+        %114 = OpFunctionCall %main_out %main_inner
+        %115 = OpCompositeExtract %v4float %114 0
+               OpStore %x_GLF_color_1_1 %115
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.spvasm.expected.spvasm
index 92f7fbd..8142eed 100644
--- a/test/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %39 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_42 "x_42"
                OpName %x_39 "x_39"
@@ -30,31 +30,31 @@
                OpName %x_45_phi "x_45_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -79,21 +79,21 @@
 %_ptr_Function_float = OpTypePointer Function %float
      %uint_2 = OpConstant %uint 2
    %main_out = OpTypeStruct %v4float
-        %125 = OpTypeFunction %void %main_out
+        %125 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
-       %x_42 = OpVariable %_ptr_Function_v4float Function %5
+       %x_42 = OpVariable %_ptr_Function_v4float Function %7
        %x_39 = OpVariable %_ptr_Function_bool Function %28
    %x_38_phi = OpVariable %_ptr_Function_bool Function %28
-   %x_41_phi = OpVariable %_ptr_Function_v4float Function %5
-   %x_42_phi = OpVariable %_ptr_Function_v4float Function %5
+   %x_41_phi = OpVariable %_ptr_Function_v4float Function %7
+   %x_42_phi = OpVariable %_ptr_Function_v4float Function %7
    %x_47_phi = OpVariable %_ptr_Function_int Function %51
    %x_39_phi = OpVariable %_ptr_Function_bool Function %28
-       %x_45 = OpVariable %_ptr_Function_v4float Function %5
+       %x_45 = OpVariable %_ptr_Function_v4float Function %7
        %x_48 = OpVariable %_ptr_Function_int Function %51
-       %x_66 = OpVariable %_ptr_Function_v4float Function %5
-       %x_70 = OpVariable %_ptr_Function_v4float Function %5
-   %x_45_phi = OpVariable %_ptr_Function_v4float Function %5
+       %x_66 = OpVariable %_ptr_Function_v4float Function %7
+       %x_70 = OpVariable %_ptr_Function_v4float Function %7
+   %x_45_phi = OpVariable %_ptr_Function_v4float Function %7
                OpBranch %19
          %19 = OpLabel
                OpLoopMerge %20 %21 None
@@ -221,20 +221,20 @@
          %20 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %125
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %125
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %129 = OpLabel
-        %130 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %130
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %130 = OpFunctionCall %void %main_1
+        %131 = OpLoad %v4float %x_GLF_color
+        %132 = OpCompositeConstruct %main_out %131
+               OpReturnValue %132
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %132 = OpLabel
-        %133 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %133
-        %134 = OpFunctionCall %void %main_1
-        %136 = OpLoad %v4float %x_GLF_color
-        %137 = OpCompositeConstruct %main_out %136
-        %135 = OpFunctionCall %void %tint_symbol_3 %137
+        %134 = OpLabel
+        %136 = OpLoad %v4float %gl_FragCoord_param_1
+        %135 = OpFunctionCall %main_out %main_inner %136
+        %137 = OpCompositeExtract %v4float %135 0
+               OpStore %x_GLF_color_1_1 %137
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.wgsl.expected.spvasm
index 92f7fbd..8142eed 100644
--- a/test/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %39 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_42 "x_42"
                OpName %x_39 "x_39"
@@ -30,31 +30,31 @@
                OpName %x_45_phi "x_45_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -79,21 +79,21 @@
 %_ptr_Function_float = OpTypePointer Function %float
      %uint_2 = OpConstant %uint 2
    %main_out = OpTypeStruct %v4float
-        %125 = OpTypeFunction %void %main_out
+        %125 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
-       %x_42 = OpVariable %_ptr_Function_v4float Function %5
+       %x_42 = OpVariable %_ptr_Function_v4float Function %7
        %x_39 = OpVariable %_ptr_Function_bool Function %28
    %x_38_phi = OpVariable %_ptr_Function_bool Function %28
-   %x_41_phi = OpVariable %_ptr_Function_v4float Function %5
-   %x_42_phi = OpVariable %_ptr_Function_v4float Function %5
+   %x_41_phi = OpVariable %_ptr_Function_v4float Function %7
+   %x_42_phi = OpVariable %_ptr_Function_v4float Function %7
    %x_47_phi = OpVariable %_ptr_Function_int Function %51
    %x_39_phi = OpVariable %_ptr_Function_bool Function %28
-       %x_45 = OpVariable %_ptr_Function_v4float Function %5
+       %x_45 = OpVariable %_ptr_Function_v4float Function %7
        %x_48 = OpVariable %_ptr_Function_int Function %51
-       %x_66 = OpVariable %_ptr_Function_v4float Function %5
-       %x_70 = OpVariable %_ptr_Function_v4float Function %5
-   %x_45_phi = OpVariable %_ptr_Function_v4float Function %5
+       %x_66 = OpVariable %_ptr_Function_v4float Function %7
+       %x_70 = OpVariable %_ptr_Function_v4float Function %7
+   %x_45_phi = OpVariable %_ptr_Function_v4float Function %7
                OpBranch %19
          %19 = OpLabel
                OpLoopMerge %20 %21 None
@@ -221,20 +221,20 @@
          %20 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %125
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %125
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %129 = OpLabel
-        %130 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %130
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %130 = OpFunctionCall %void %main_1
+        %131 = OpLoad %v4float %x_GLF_color
+        %132 = OpCompositeConstruct %main_out %131
+               OpReturnValue %132
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %132 = OpLabel
-        %133 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %133
-        %134 = OpFunctionCall %void %main_1
-        %136 = OpLoad %v4float %x_GLF_color
-        %137 = OpCompositeConstruct %main_out %136
-        %135 = OpFunctionCall %void %tint_symbol_3 %137
+        %134 = OpLabel
+        %136 = OpLoad %v4float %gl_FragCoord_param_1
+        %135 = OpFunctionCall %main_out %main_inner %136
+        %137 = OpCompositeExtract %v4float %135 0
+               OpStore %x_GLF_color_1_1 %137
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.spvasm.expected.spvasm
index 58e841e..2d9494d 100644
--- a/test/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.spvasm.expected.spvasm
@@ -6,16 +6,16 @@
                OpCapability Shader
          %44 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_7 "x_7"
                OpName %gv "gv"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %lv "lv"
                OpName %x_43 "x_43"
@@ -23,34 +23,34 @@
                OpName %GLF_live5_looplimiter6 "GLF_live5_looplimiter6"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
 %_ptr_Private_float = OpTypePointer Private %float
-          %8 = OpConstantNull %float
-         %gv = OpVariable %_ptr_Private_float Private %8
-    %v4float = OpTypeVector %float 4
+         %14 = OpConstantNull %float
+         %gv = OpVariable %_ptr_Private_float Private %14
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %12
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -74,11 +74,11 @@
       %int_1 = OpConstant %int 1
          %95 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %96 = OpTypeFunction %void %main_out
+         %96 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
-         %lv = OpVariable %_ptr_Function_float Function %8
-       %x_43 = OpVariable %_ptr_Function_float Function %8
+         %lv = OpVariable %_ptr_Function_float Function %14
+       %x_43 = OpVariable %_ptr_Function_float Function %14
  %GLF_live5r = OpVariable %_ptr_Function_int Function %28
 %GLF_live5_looplimiter6 = OpVariable %_ptr_Function_int Function %28
          %34 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 %uint_1
@@ -172,20 +172,20 @@
                OpStore %x_GLF_color %95
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %96
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %96
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %100 = OpLabel
-        %101 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %101
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %101 = OpFunctionCall %void %main_1
+        %102 = OpLoad %v4float %x_GLF_color
+        %103 = OpCompositeConstruct %main_out %102
+               OpReturnValue %103
                OpFunctionEnd
        %main = OpFunction %void None %18
-        %103 = OpLabel
-        %104 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %104
-        %105 = OpFunctionCall %void %main_1
-        %107 = OpLoad %v4float %x_GLF_color
-        %108 = OpCompositeConstruct %main_out %107
-        %106 = OpFunctionCall %void %tint_symbol_3 %108
+        %105 = OpLabel
+        %107 = OpLoad %v4float %gl_FragCoord_param_1
+        %106 = OpFunctionCall %main_out %main_inner %107
+        %108 = OpCompositeExtract %v4float %106 0
+               OpStore %x_GLF_color_1_1 %108
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.wgsl.expected.spvasm
index 58e841e..2d9494d 100644
--- a/test/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.wgsl.expected.spvasm
@@ -6,16 +6,16 @@
                OpCapability Shader
          %44 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_7 "x_7"
                OpName %gv "gv"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %lv "lv"
                OpName %x_43 "x_43"
@@ -23,34 +23,34 @@
                OpName %GLF_live5_looplimiter6 "GLF_live5_looplimiter6"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
 %_ptr_Private_float = OpTypePointer Private %float
-          %8 = OpConstantNull %float
-         %gv = OpVariable %_ptr_Private_float Private %8
-    %v4float = OpTypeVector %float 4
+         %14 = OpConstantNull %float
+         %gv = OpVariable %_ptr_Private_float Private %14
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %12
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -74,11 +74,11 @@
       %int_1 = OpConstant %int 1
          %95 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %96 = OpTypeFunction %void %main_out
+         %96 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
-         %lv = OpVariable %_ptr_Function_float Function %8
-       %x_43 = OpVariable %_ptr_Function_float Function %8
+         %lv = OpVariable %_ptr_Function_float Function %14
+       %x_43 = OpVariable %_ptr_Function_float Function %14
  %GLF_live5r = OpVariable %_ptr_Function_int Function %28
 %GLF_live5_looplimiter6 = OpVariable %_ptr_Function_int Function %28
          %34 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 %uint_1
@@ -172,20 +172,20 @@
                OpStore %x_GLF_color %95
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %96
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %96
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %100 = OpLabel
-        %101 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %101
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %101 = OpFunctionCall %void %main_1
+        %102 = OpLoad %v4float %x_GLF_color
+        %103 = OpCompositeConstruct %main_out %102
+               OpReturnValue %103
                OpFunctionEnd
        %main = OpFunction %void None %18
-        %103 = OpLabel
-        %104 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %104
-        %105 = OpFunctionCall %void %main_1
-        %107 = OpLoad %v4float %x_GLF_color
-        %108 = OpCompositeConstruct %main_out %107
-        %106 = OpFunctionCall %void %tint_symbol_3 %108
+        %105 = OpLabel
+        %107 = OpLoad %v4float %gl_FragCoord_param_1
+        %106 = OpFunctionCall %main_out %main_inner %107
+        %108 = OpCompositeExtract %v4float %106 0
+               OpStore %x_GLF_color_1_1 %108
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.spvasm.expected.spvasm
index e273234..0f1771b 100644
--- a/test/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.spvasm.expected.spvasm
@@ -1,32 +1,31 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
          %32 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %GLF_live9r "GLF_live9r"
                OpName %g "g"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -42,7 +41,7 @@
     %float_0 = OpConstant %float 0
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %41 = OpTypeFunction %void %main_out
+         %41 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
  %GLF_live9r = OpVariable %_ptr_Function_int Function %15
@@ -77,18 +76,17 @@
                OpStore %x_GLF_color %40
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %41
-%tint_symbol = OpFunctionParameter %main_out
-         %45 = OpLabel
-         %46 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %46
-               OpReturn
+ %main_inner = OpFunction %main_out None %41
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %main_1
+         %46 = OpLoad %v4float %x_GLF_color
+         %47 = OpCompositeConstruct %main_out %46
+               OpReturnValue %47
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %main_1
-         %51 = OpLoad %v4float %x_GLF_color
-         %52 = OpCompositeConstruct %main_out %51
-         %50 = OpFunctionCall %void %tint_symbol_2 %52
+         %49 = OpLabel
+         %50 = OpFunctionCall %main_out %main_inner
+         %51 = OpCompositeExtract %v4float %50 0
+               OpStore %x_GLF_color_1_1 %51
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.wgsl.expected.spvasm
index e273234..0f1771b 100644
--- a/test/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.wgsl.expected.spvasm
@@ -1,32 +1,31 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 52
 ; Schema: 0
                OpCapability Shader
          %32 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %GLF_live9r "GLF_live9r"
                OpName %g "g"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -42,7 +41,7 @@
     %float_0 = OpConstant %float 0
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %41 = OpTypeFunction %void %main_out
+         %41 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
  %GLF_live9r = OpVariable %_ptr_Function_int Function %15
@@ -77,18 +76,17 @@
                OpStore %x_GLF_color %40
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %41
-%tint_symbol = OpFunctionParameter %main_out
-         %45 = OpLabel
-         %46 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %46
-               OpReturn
+ %main_inner = OpFunction %main_out None %41
+         %44 = OpLabel
+         %45 = OpFunctionCall %void %main_1
+         %46 = OpLoad %v4float %x_GLF_color
+         %47 = OpCompositeConstruct %main_out %46
+               OpReturnValue %47
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %48 = OpLabel
-         %49 = OpFunctionCall %void %main_1
-         %51 = OpLoad %v4float %x_GLF_color
-         %52 = OpCompositeConstruct %main_out %51
-         %50 = OpFunctionCall %void %tint_symbol_2 %52
+         %49 = OpLabel
+         %50 = OpFunctionCall %main_out %main_inner
+         %51 = OpCompositeExtract %v4float %50 0
+               OpStore %x_GLF_color_1_1 %51
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.spvasm.expected.spvasm
index ec2ad53..0897775 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.spvasm.expected.spvasm
@@ -5,16 +5,16 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_7 "x_7"
                OpName %map "map"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %pos "pos"
                OpName %ipos "ipos"
@@ -51,23 +51,27 @@
                OpName %x_397_phi "x_397_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
                OpDecorate %_arr_int_uint_256 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
@@ -77,13 +81,9 @@
    %uint_256 = OpConstant %uint 256
 %_arr_int_uint_256 = OpTypeArray %int %uint_256
 %_ptr_Private__arr_int_uint_256 = OpTypePointer Private %_arr_int_uint_256
-         %16 = OpConstantNull %_arr_int_uint_256
-        %map = OpVariable %_ptr_Private__arr_int_uint_256 Private %16
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+         %20 = OpConstantNull %_arr_int_uint_256
+        %map = OpVariable %_ptr_Private__arr_int_uint_256 Private %20
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_Function_v2float = OpTypePointer Function %v2float
@@ -117,7 +117,7 @@
     %float_0 = OpConstant %float 0
         %492 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %493 = OpTypeFunction %void %main_out
+        %493 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %22
          %25 = OpLabel
         %pos = OpVariable %_ptr_Function_v2float Function %28
@@ -744,20 +744,20 @@
                OpStore %x_GLF_color %492
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %493
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %493
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %497 = OpLabel
-        %498 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %498
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %498 = OpFunctionCall %void %main_1
+        %499 = OpLoad %v4float %x_GLF_color
+        %500 = OpCompositeConstruct %main_out %499
+               OpReturnValue %500
                OpFunctionEnd
        %main = OpFunction %void None %22
-        %500 = OpLabel
-        %501 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %501
-        %502 = OpFunctionCall %void %main_1
-        %504 = OpLoad %v4float %x_GLF_color
-        %505 = OpCompositeConstruct %main_out %504
-        %503 = OpFunctionCall %void %tint_symbol_3 %505
+        %502 = OpLabel
+        %504 = OpLoad %v4float %gl_FragCoord_param_1
+        %503 = OpFunctionCall %main_out %main_inner %504
+        %505 = OpCompositeExtract %v4float %503 0
+               OpStore %x_GLF_color_1_1 %505
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.wgsl.expected.spvasm
index ec2ad53..0897775 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.wgsl.expected.spvasm
@@ -5,16 +5,16 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_7 "x_7"
                OpName %map "map"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %pos "pos"
                OpName %ipos "ipos"
@@ -51,23 +51,27 @@
                OpName %x_397_phi "x_397_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
                OpDecorate %_arr_int_uint_256 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
@@ -77,13 +81,9 @@
    %uint_256 = OpConstant %uint 256
 %_arr_int_uint_256 = OpTypeArray %int %uint_256
 %_ptr_Private__arr_int_uint_256 = OpTypePointer Private %_arr_int_uint_256
-         %16 = OpConstantNull %_arr_int_uint_256
-        %map = OpVariable %_ptr_Private__arr_int_uint_256 Private %16
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+         %20 = OpConstantNull %_arr_int_uint_256
+        %map = OpVariable %_ptr_Private__arr_int_uint_256 Private %20
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_Function_v2float = OpTypePointer Function %v2float
@@ -117,7 +117,7 @@
     %float_0 = OpConstant %float 0
         %492 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %493 = OpTypeFunction %void %main_out
+        %493 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %22
          %25 = OpLabel
         %pos = OpVariable %_ptr_Function_v2float Function %28
@@ -744,20 +744,20 @@
                OpStore %x_GLF_color %492
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %493
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %493
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %497 = OpLabel
-        %498 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %498
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %498 = OpFunctionCall %void %main_1
+        %499 = OpLoad %v4float %x_GLF_color
+        %500 = OpCompositeConstruct %main_out %499
+               OpReturnValue %500
                OpFunctionEnd
        %main = OpFunction %void None %22
-        %500 = OpLabel
-        %501 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %501
-        %502 = OpFunctionCall %void %main_1
-        %504 = OpLoad %v4float %x_GLF_color
-        %505 = OpCompositeConstruct %main_out %504
-        %503 = OpFunctionCall %void %tint_symbol_3 %505
+        %502 = OpLabel
+        %504 = OpLoad %v4float %gl_FragCoord_param_1
+        %503 = OpFunctionCall %main_out %main_inner %504
+        %505 = OpCompositeExtract %v4float %503 0
+               OpStore %x_GLF_color_1_1 %505
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.spvasm.expected.spvasm
index 4762c18..5473a39 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %56 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_7 "x_7"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %c "c"
                OpName %x_51 "x_51"
@@ -55,31 +55,31 @@
                OpName %x_130 "x_130"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -118,7 +118,7 @@
       %int_3 = OpConstant %int 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %251 = OpTypeFunction %void %main_out
+        %251 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %c = OpVariable %_ptr_Function_v3float Function %22
@@ -440,20 +440,20 @@
                OpStore %x_GLF_color %250
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %251
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %251
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %255 = OpLabel
-        %256 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %256
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %256 = OpFunctionCall %void %main_1
+        %257 = OpLoad %v4float %x_GLF_color
+        %258 = OpCompositeConstruct %main_out %257
+               OpReturnValue %258
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %258 = OpLabel
-        %259 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %259
-        %260 = OpFunctionCall %void %main_1
-        %262 = OpLoad %v4float %x_GLF_color
-        %263 = OpCompositeConstruct %main_out %262
-        %261 = OpFunctionCall %void %tint_symbol_3 %263
+        %260 = OpLabel
+        %262 = OpLoad %v4float %gl_FragCoord_param_1
+        %261 = OpFunctionCall %main_out %main_inner %262
+        %263 = OpCompositeExtract %v4float %261 0
+               OpStore %x_GLF_color_1_1 %263
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.wgsl.expected.spvasm
index 777603d..37f2f9c 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %56 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_7 "x_7"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %c "c"
                OpName %x_51 "x_51"
@@ -55,31 +55,31 @@
                OpName %x_130 "x_130"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -118,7 +118,7 @@
       %int_3 = OpConstant %int 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %241 = OpTypeFunction %void %main_out
+        %241 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %c = OpVariable %_ptr_Function_v3float Function %22
@@ -430,20 +430,20 @@
                OpStore %x_GLF_color %240
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %241
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %241
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %245 = OpLabel
-        %246 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %246
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %246 = OpFunctionCall %void %main_1
+        %247 = OpLoad %v4float %x_GLF_color
+        %248 = OpCompositeConstruct %main_out %247
+               OpReturnValue %248
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %248 = OpLabel
-        %249 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %249
-        %250 = OpFunctionCall %void %main_1
-        %252 = OpLoad %v4float %x_GLF_color
-        %253 = OpCompositeConstruct %main_out %252
-        %251 = OpFunctionCall %void %tint_symbol_3 %253
+        %250 = OpLabel
+        %252 = OpLoad %v4float %gl_FragCoord_param_1
+        %251 = OpFunctionCall %main_out %main_inner %252
+        %253 = OpCompositeExtract %v4float %251 0
+               OpStore %x_GLF_color_1_1 %253
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.spvasm.expected.spvasm
index e2f80ed..0fb4e79 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %58 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_7 "x_7"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %c "c"
                OpName %x_53 "x_53"
@@ -55,31 +55,31 @@
                OpName %x_136 "x_136"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -119,7 +119,7 @@
      %uint_2 = OpConstant %uint 2
       %int_3 = OpConstant %int 3
    %main_out = OpTypeStruct %v4float
-        %264 = OpTypeFunction %void %main_out
+        %264 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %c = OpVariable %_ptr_Function_v3float Function %22
@@ -453,20 +453,20 @@
                OpStore %x_GLF_color %263
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %264
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %264
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %268 = OpLabel
-        %269 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %269
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %269 = OpFunctionCall %void %main_1
+        %270 = OpLoad %v4float %x_GLF_color
+        %271 = OpCompositeConstruct %main_out %270
+               OpReturnValue %271
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %271 = OpLabel
-        %272 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %272
-        %273 = OpFunctionCall %void %main_1
-        %275 = OpLoad %v4float %x_GLF_color
-        %276 = OpCompositeConstruct %main_out %275
-        %274 = OpFunctionCall %void %tint_symbol_3 %276
+        %273 = OpLabel
+        %275 = OpLoad %v4float %gl_FragCoord_param_1
+        %274 = OpFunctionCall %main_out %main_inner %275
+        %276 = OpCompositeExtract %v4float %274 0
+               OpStore %x_GLF_color_1_1 %276
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.wgsl.expected.spvasm
index 4f6810f..600e4cf 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %58 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_7 "x_7"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %c "c"
                OpName %x_53 "x_53"
@@ -55,31 +55,31 @@
                OpName %x_136 "x_136"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -119,7 +119,7 @@
      %uint_2 = OpConstant %uint 2
       %int_3 = OpConstant %int 3
    %main_out = OpTypeStruct %v4float
-        %254 = OpTypeFunction %void %main_out
+        %254 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %c = OpVariable %_ptr_Function_v3float Function %22
@@ -443,20 +443,20 @@
                OpStore %x_GLF_color %253
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %254
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %254
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %258 = OpLabel
-        %259 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %259
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %259 = OpFunctionCall %void %main_1
+        %260 = OpLoad %v4float %x_GLF_color
+        %261 = OpCompositeConstruct %main_out %260
+               OpReturnValue %261
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %261 = OpLabel
-        %262 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %262
-        %263 = OpFunctionCall %void %main_1
-        %265 = OpLoad %v4float %x_GLF_color
-        %266 = OpCompositeConstruct %main_out %265
-        %264 = OpFunctionCall %void %tint_symbol_3 %266
+        %263 = OpLabel
+        %265 = OpLoad %v4float %gl_FragCoord_param_1
+        %264 = OpFunctionCall %main_out %main_inner %265
+        %266 = OpCompositeExtract %v4float %264 0
+               OpStore %x_GLF_color_1_1 %266
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-composite2/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-composite2/0.spvasm.expected.spvasm
index feaee7c..790f08e 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-composite2/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-composite2/0.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %indexable "indexable"
                OpName %x_66 "x_66"
@@ -23,32 +23,32 @@
                OpName %x_70 "x_70"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -91,7 +91,7 @@
      %int_16 = OpConstant %int 16
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %105 = OpTypeFunction %void %main_out
+        %105 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %24
@@ -161,20 +161,20 @@
                OpStore %x_GLF_color %104
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %105
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %105
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %109 = OpLabel
-        %110 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %110
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %110 = OpFunctionCall %void %main_1
+        %111 = OpLoad %v4float %x_GLF_color
+        %112 = OpCompositeConstruct %main_out %111
+               OpReturnValue %112
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %112 = OpLabel
-        %113 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %113
-        %114 = OpFunctionCall %void %main_1
-        %116 = OpLoad %v4float %x_GLF_color
-        %117 = OpCompositeConstruct %main_out %116
-        %115 = OpFunctionCall %void %tint_symbol_3 %117
+        %114 = OpLabel
+        %116 = OpLoad %v4float %gl_FragCoord_param_1
+        %115 = OpFunctionCall %main_out %main_inner %116
+        %117 = OpCompositeExtract %v4float %115 0
+               OpStore %x_GLF_color_1_1 %117
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-composite2/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-composite2/0.wgsl.expected.spvasm
index feaee7c..790f08e 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-composite2/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-composite2/0.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %indexable "indexable"
                OpName %x_66 "x_66"
@@ -23,32 +23,32 @@
                OpName %x_70 "x_70"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -91,7 +91,7 @@
      %int_16 = OpConstant %int 16
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %105 = OpTypeFunction %void %main_out
+        %105 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %24
@@ -161,20 +161,20 @@
                OpStore %x_GLF_color %104
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %105
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %105
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %109 = OpLabel
-        %110 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %110
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %110 = OpFunctionCall %void %main_1
+        %111 = OpLoad %v4float %x_GLF_color
+        %112 = OpCompositeConstruct %main_out %111
+               OpReturnValue %112
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %112 = OpLabel
-        %113 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %113
-        %114 = OpFunctionCall %void %main_1
-        %116 = OpLoad %v4float %x_GLF_color
-        %117 = OpCompositeConstruct %main_out %116
-        %115 = OpFunctionCall %void %tint_symbol_3 %117
+        %114 = OpLabel
+        %116 = OpLoad %v4float %gl_FragCoord_param_1
+        %115 = OpFunctionCall %main_out %main_inner %116
+        %117 = OpCompositeExtract %v4float %115 0
+               OpStore %x_GLF_color_1_1 %117
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-composite2/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-composite2/1.spvasm.expected.spvasm
index f9920e1..7eb9d59 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-composite2/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-composite2/1.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %indexable "indexable"
                OpName %x_72 "x_72"
@@ -23,32 +23,32 @@
                OpName %x_76 "x_76"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -92,7 +92,7 @@
      %int_16 = OpConstant %int 16
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %114 = OpTypeFunction %void %main_out
+        %114 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %24
@@ -170,20 +170,20 @@
                OpStore %x_GLF_color %113
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %114
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %114
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %118 = OpLabel
-        %119 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %119
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %119 = OpFunctionCall %void %main_1
+        %120 = OpLoad %v4float %x_GLF_color
+        %121 = OpCompositeConstruct %main_out %120
+               OpReturnValue %121
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %121 = OpLabel
-        %122 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %122
-        %123 = OpFunctionCall %void %main_1
-        %125 = OpLoad %v4float %x_GLF_color
-        %126 = OpCompositeConstruct %main_out %125
-        %124 = OpFunctionCall %void %tint_symbol_3 %126
+        %123 = OpLabel
+        %125 = OpLoad %v4float %gl_FragCoord_param_1
+        %124 = OpFunctionCall %main_out %main_inner %125
+        %126 = OpCompositeExtract %v4float %124 0
+               OpStore %x_GLF_color_1_1 %126
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-composite2/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-composite2/1.wgsl.expected.spvasm
index f9920e1..7eb9d59 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-composite2/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-composite2/1.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %indexable "indexable"
                OpName %x_72 "x_72"
@@ -23,32 +23,32 @@
                OpName %x_76 "x_76"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -92,7 +92,7 @@
      %int_16 = OpConstant %int 16
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %114 = OpTypeFunction %void %main_out
+        %114 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %24
@@ -170,20 +170,20 @@
                OpStore %x_GLF_color %113
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %114
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %114
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %118 = OpLabel
-        %119 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %119
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %119 = OpFunctionCall %void %main_1
+        %120 = OpLoad %v4float %x_GLF_color
+        %121 = OpCompositeConstruct %main_out %120
+               OpReturnValue %121
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %121 = OpLabel
-        %122 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %122
-        %123 = OpFunctionCall %void %main_1
-        %125 = OpLoad %v4float %x_GLF_color
-        %126 = OpCompositeConstruct %main_out %125
-        %124 = OpFunctionCall %void %tint_symbol_3 %126
+        %123 = OpLabel
+        %125 = OpLoad %v4float %gl_FragCoord_param_1
+        %124 = OpFunctionCall %main_out %main_inner %125
+        %126 = OpCompositeExtract %v4float %124 0
+               OpStore %x_GLF_color_1_1 %126
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-composites/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-composites/0.spvasm.expected.spvasm
index 4a43cab..574c745 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-composites/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-composites/0.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
         %256 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_195 "x_195"
                OpName %x_196 "x_196"
@@ -31,32 +31,32 @@
                OpName %x_214_1 "x_214_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_256 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -246,19 +246,19 @@
       %int_1 = OpConstant %int 1
         %277 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %279 = OpTypeFunction %void %main_out
+        %279 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
       %x_195 = OpVariable %_ptr_Function__arr_int_uint_256 Function %25
       %x_196 = OpVariable %_ptr_Function__arr_int_uint_256 Function %25
       %x_197 = OpVariable %_ptr_Function__arr_int_uint_256 Function %25
       %x_209 = OpVariable %_ptr_Function_v2int Function %31
-      %x_241 = OpVariable %_ptr_Function_v4float Function %5
-      %x_243 = OpVariable %_ptr_Function_v4float Function %5
+      %x_241 = OpVariable %_ptr_Function_v4float Function %7
+      %x_243 = OpVariable %_ptr_Function_v4float Function %7
   %x_213_phi = OpVariable %_ptr_Function_v2int Function %31
-  %x_243_phi = OpVariable %_ptr_Function_v4float Function %5
+  %x_243_phi = OpVariable %_ptr_Function_v4float Function %7
   %x_244_phi = OpVariable %_ptr_Function_bool Function %40
-  %x_246_phi = OpVariable %_ptr_Function_v4float Function %5
+  %x_246_phi = OpVariable %_ptr_Function_v4float Function %7
       %x_230 = OpVariable %_ptr_Function_bool Function %40
   %x_231_phi = OpVariable %_ptr_Function_bool Function %40
     %x_214_1 = OpVariable %_ptr_Function_v2int Function %31
@@ -365,20 +365,20 @@
                OpStore %x_GLF_color %278
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %279
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %279
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %283 = OpLabel
-        %284 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %284
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %284 = OpFunctionCall %void %main_1
+        %285 = OpLoad %v4float %x_GLF_color
+        %286 = OpCompositeConstruct %main_out %285
+               OpReturnValue %286
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %286 = OpLabel
-        %287 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %287
-        %288 = OpFunctionCall %void %main_1
-        %290 = OpLoad %v4float %x_GLF_color
-        %291 = OpCompositeConstruct %main_out %290
-        %289 = OpFunctionCall %void %tint_symbol_3 %291
+        %288 = OpLabel
+        %290 = OpLoad %v4float %gl_FragCoord_param_1
+        %289 = OpFunctionCall %main_out %main_inner %290
+        %291 = OpCompositeExtract %v4float %289 0
+               OpStore %x_GLF_color_1_1 %291
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-composites/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-composites/0.wgsl.expected.spvasm
index 4a43cab..574c745 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-composites/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-composites/0.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
         %256 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_195 "x_195"
                OpName %x_196 "x_196"
@@ -31,32 +31,32 @@
                OpName %x_214_1 "x_214_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_256 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -246,19 +246,19 @@
       %int_1 = OpConstant %int 1
         %277 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %279 = OpTypeFunction %void %main_out
+        %279 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
       %x_195 = OpVariable %_ptr_Function__arr_int_uint_256 Function %25
       %x_196 = OpVariable %_ptr_Function__arr_int_uint_256 Function %25
       %x_197 = OpVariable %_ptr_Function__arr_int_uint_256 Function %25
       %x_209 = OpVariable %_ptr_Function_v2int Function %31
-      %x_241 = OpVariable %_ptr_Function_v4float Function %5
-      %x_243 = OpVariable %_ptr_Function_v4float Function %5
+      %x_241 = OpVariable %_ptr_Function_v4float Function %7
+      %x_243 = OpVariable %_ptr_Function_v4float Function %7
   %x_213_phi = OpVariable %_ptr_Function_v2int Function %31
-  %x_243_phi = OpVariable %_ptr_Function_v4float Function %5
+  %x_243_phi = OpVariable %_ptr_Function_v4float Function %7
   %x_244_phi = OpVariable %_ptr_Function_bool Function %40
-  %x_246_phi = OpVariable %_ptr_Function_v4float Function %5
+  %x_246_phi = OpVariable %_ptr_Function_v4float Function %7
       %x_230 = OpVariable %_ptr_Function_bool Function %40
   %x_231_phi = OpVariable %_ptr_Function_bool Function %40
     %x_214_1 = OpVariable %_ptr_Function_v2int Function %31
@@ -365,20 +365,20 @@
                OpStore %x_GLF_color %278
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %279
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %279
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %283 = OpLabel
-        %284 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %284
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %284 = OpFunctionCall %void %main_1
+        %285 = OpLoad %v4float %x_GLF_color
+        %286 = OpCompositeConstruct %main_out %285
+               OpReturnValue %286
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %286 = OpLabel
-        %287 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %287
-        %288 = OpFunctionCall %void %main_1
-        %290 = OpLoad %v4float %x_GLF_color
-        %291 = OpCompositeConstruct %main_out %290
-        %289 = OpFunctionCall %void %tint_symbol_3 %291
+        %288 = OpLabel
+        %290 = OpLoad %v4float %gl_FragCoord_param_1
+        %289 = OpFunctionCall %main_out %main_inner %290
+        %291 = OpCompositeExtract %v4float %289 0
+               OpStore %x_GLF_color_1_1 %291
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-composites/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-composites/1.spvasm.expected.spvasm
index 8f758b6..efa8c69 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-composites/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-composites/1.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
         %271 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_195 "x_195"
                OpName %x_196 "x_196"
@@ -32,32 +32,32 @@
                OpName %x_219_1 "x_219_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_256 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -249,7 +249,7 @@
       %int_1 = OpConstant %int 1
         %292 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %294 = OpTypeFunction %void %main_out
+        %294 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
       %x_195 = OpVariable %_ptr_Function__arr_int_uint_256 Function %25
@@ -257,12 +257,12 @@
       %x_197 = OpVariable %_ptr_Function__arr_int_uint_256 Function %25
       %x_208 = OpVariable %_ptr_Function_v2float Function %30
       %x_214 = OpVariable %_ptr_Function_v2int Function %34
-      %x_249 = OpVariable %_ptr_Function_v4float Function %5
-      %x_251 = OpVariable %_ptr_Function_v4float Function %5
+      %x_249 = OpVariable %_ptr_Function_v4float Function %7
+      %x_251 = OpVariable %_ptr_Function_v4float Function %7
   %x_218_phi = OpVariable %_ptr_Function_v2int Function %34
-  %x_251_phi = OpVariable %_ptr_Function_v4float Function %5
+  %x_251_phi = OpVariable %_ptr_Function_v4float Function %7
   %x_252_phi = OpVariable %_ptr_Function_bool Function %43
-  %x_254_phi = OpVariable %_ptr_Function_v4float Function %5
+  %x_254_phi = OpVariable %_ptr_Function_v4float Function %7
       %x_235 = OpVariable %_ptr_Function_bool Function %43
   %x_236_phi = OpVariable %_ptr_Function_bool Function %43
     %x_219_1 = OpVariable %_ptr_Function_v2int Function %34
@@ -382,20 +382,20 @@
                OpStore %x_GLF_color %293
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %294
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %294
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %298 = OpLabel
-        %299 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %299
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %299 = OpFunctionCall %void %main_1
+        %300 = OpLoad %v4float %x_GLF_color
+        %301 = OpCompositeConstruct %main_out %300
+               OpReturnValue %301
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %301 = OpLabel
-        %302 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %302
-        %303 = OpFunctionCall %void %main_1
-        %305 = OpLoad %v4float %x_GLF_color
-        %306 = OpCompositeConstruct %main_out %305
-        %304 = OpFunctionCall %void %tint_symbol_3 %306
+        %303 = OpLabel
+        %305 = OpLoad %v4float %gl_FragCoord_param_1
+        %304 = OpFunctionCall %main_out %main_inner %305
+        %306 = OpCompositeExtract %v4float %304 0
+               OpStore %x_GLF_color_1_1 %306
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-composites/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-composites/1.wgsl.expected.spvasm
index 8f758b6..efa8c69 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-composites/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-composites/1.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
         %271 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_195 "x_195"
                OpName %x_196 "x_196"
@@ -32,32 +32,32 @@
                OpName %x_219_1 "x_219_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_256 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -249,7 +249,7 @@
       %int_1 = OpConstant %int 1
         %292 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %294 = OpTypeFunction %void %main_out
+        %294 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
       %x_195 = OpVariable %_ptr_Function__arr_int_uint_256 Function %25
@@ -257,12 +257,12 @@
       %x_197 = OpVariable %_ptr_Function__arr_int_uint_256 Function %25
       %x_208 = OpVariable %_ptr_Function_v2float Function %30
       %x_214 = OpVariable %_ptr_Function_v2int Function %34
-      %x_249 = OpVariable %_ptr_Function_v4float Function %5
-      %x_251 = OpVariable %_ptr_Function_v4float Function %5
+      %x_249 = OpVariable %_ptr_Function_v4float Function %7
+      %x_251 = OpVariable %_ptr_Function_v4float Function %7
   %x_218_phi = OpVariable %_ptr_Function_v2int Function %34
-  %x_251_phi = OpVariable %_ptr_Function_v4float Function %5
+  %x_251_phi = OpVariable %_ptr_Function_v4float Function %7
   %x_252_phi = OpVariable %_ptr_Function_bool Function %43
-  %x_254_phi = OpVariable %_ptr_Function_v4float Function %5
+  %x_254_phi = OpVariable %_ptr_Function_v4float Function %7
       %x_235 = OpVariable %_ptr_Function_bool Function %43
   %x_236_phi = OpVariable %_ptr_Function_bool Function %43
     %x_219_1 = OpVariable %_ptr_Function_v2int Function %34
@@ -382,20 +382,20 @@
                OpStore %x_GLF_color %293
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %294
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %294
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %298 = OpLabel
-        %299 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %299
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %299 = OpFunctionCall %void %main_1
+        %300 = OpLoad %v4float %x_GLF_color
+        %301 = OpCompositeConstruct %main_out %300
+               OpReturnValue %301
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %301 = OpLabel
-        %302 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %302
-        %303 = OpFunctionCall %void %main_1
-        %305 = OpLoad %v4float %x_GLF_color
-        %306 = OpCompositeConstruct %main_out %305
-        %304 = OpFunctionCall %void %tint_symbol_3 %306
+        %303 = OpLabel
+        %305 = OpLoad %v4float %gl_FragCoord_param_1
+        %304 = OpFunctionCall %main_out %main_inner %305
+        %306 = OpCompositeExtract %v4float %304 0
+               OpStore %x_GLF_color_1_1 %306
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.spvasm.expected.spvasm
index b8a67a8..dc8895d 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
@@ -14,8 +16,6 @@
                OpName %map "map"
                OpName %x_GLF_color "x_GLF_color"
                OpName %x_60 "x_60"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %pos "pos"
                OpName %ipos "ipos"
@@ -52,23 +52,27 @@
                OpName %x_407_phi "x_407_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
                OpDecorate %_arr_int_uint_256 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
@@ -78,19 +82,15 @@
    %uint_256 = OpConstant %uint 256
 %_arr_int_uint_256 = OpTypeArray %int %uint_256
 %_ptr_Private__arr_int_uint_256 = OpTypePointer Private %_arr_int_uint_256
-         %16 = OpConstantNull %_arr_int_uint_256
-        %map = OpVariable %_ptr_Private__arr_int_uint_256 Private %16
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+         %20 = OpConstantNull %_arr_int_uint_256
+        %map = OpVariable %_ptr_Private__arr_int_uint_256 Private %20
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %mat2v4float = OpTypeMatrix %v4float 2
     %float_0 = OpConstant %float 0
-         %20 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
-         %21 = OpConstantComposite %mat2v4float %20 %20
+         %24 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
+         %25 = OpConstantComposite %mat2v4float %24 %24
 %_ptr_Private_mat2v4float = OpTypePointer Private %mat2v4float
-       %x_60 = OpVariable %_ptr_Private_mat2v4float Private %21
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+       %x_60 = OpVariable %_ptr_Private_mat2v4float Private %25
        %void = OpTypeVoid
          %28 = OpTypeFunction %void
 %_ptr_Function_v2float = OpTypePointer Function %v2float
@@ -123,7 +123,7 @@
         %501 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
         %503 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %504 = OpTypeFunction %void %main_out
+        %504 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %28
          %31 = OpLabel
         %pos = OpVariable %_ptr_Function_v2float Function %34
@@ -364,7 +364,7 @@
         %224 = OpLabel
                OpStore %j %int_0
         %227 = OpISub %int %173 %221
-               OpStore %x_60 %21
+               OpStore %x_60 %25
                OpSelectionMerge %228 None
                OpBranchConditional %false %229 %228
         %229 = OpLabel
@@ -760,20 +760,20 @@
                OpStore %x_GLF_color %503
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %504
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %504
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %508 = OpLabel
-        %509 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %509
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %509 = OpFunctionCall %void %main_1
+        %510 = OpLoad %v4float %x_GLF_color
+        %511 = OpCompositeConstruct %main_out %510
+               OpReturnValue %511
                OpFunctionEnd
        %main = OpFunction %void None %28
-        %511 = OpLabel
-        %512 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %512
-        %513 = OpFunctionCall %void %main_1
-        %515 = OpLoad %v4float %x_GLF_color
-        %516 = OpCompositeConstruct %main_out %515
-        %514 = OpFunctionCall %void %tint_symbol_3 %516
+        %513 = OpLabel
+        %515 = OpLoad %v4float %gl_FragCoord_param_1
+        %514 = OpFunctionCall %main_out %main_inner %515
+        %516 = OpCompositeExtract %v4float %514 0
+               OpStore %x_GLF_color_1_1 %516
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.wgsl.expected.spvasm
index b8a67a8..dc8895d 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
@@ -14,8 +16,6 @@
                OpName %map "map"
                OpName %x_GLF_color "x_GLF_color"
                OpName %x_60 "x_60"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %pos "pos"
                OpName %ipos "ipos"
@@ -52,23 +52,27 @@
                OpName %x_407_phi "x_407_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
                OpDecorate %_arr_int_uint_256 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
@@ -78,19 +82,15 @@
    %uint_256 = OpConstant %uint 256
 %_arr_int_uint_256 = OpTypeArray %int %uint_256
 %_ptr_Private__arr_int_uint_256 = OpTypePointer Private %_arr_int_uint_256
-         %16 = OpConstantNull %_arr_int_uint_256
-        %map = OpVariable %_ptr_Private__arr_int_uint_256 Private %16
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+         %20 = OpConstantNull %_arr_int_uint_256
+        %map = OpVariable %_ptr_Private__arr_int_uint_256 Private %20
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %mat2v4float = OpTypeMatrix %v4float 2
     %float_0 = OpConstant %float 0
-         %20 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
-         %21 = OpConstantComposite %mat2v4float %20 %20
+         %24 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
+         %25 = OpConstantComposite %mat2v4float %24 %24
 %_ptr_Private_mat2v4float = OpTypePointer Private %mat2v4float
-       %x_60 = OpVariable %_ptr_Private_mat2v4float Private %21
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+       %x_60 = OpVariable %_ptr_Private_mat2v4float Private %25
        %void = OpTypeVoid
          %28 = OpTypeFunction %void
 %_ptr_Function_v2float = OpTypePointer Function %v2float
@@ -123,7 +123,7 @@
         %501 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
         %503 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %504 = OpTypeFunction %void %main_out
+        %504 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %28
          %31 = OpLabel
         %pos = OpVariable %_ptr_Function_v2float Function %34
@@ -364,7 +364,7 @@
         %224 = OpLabel
                OpStore %j %int_0
         %227 = OpISub %int %173 %221
-               OpStore %x_60 %21
+               OpStore %x_60 %25
                OpSelectionMerge %228 None
                OpBranchConditional %false %229 %228
         %229 = OpLabel
@@ -760,20 +760,20 @@
                OpStore %x_GLF_color %503
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %504
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %504
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %508 = OpLabel
-        %509 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %509
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %509 = OpFunctionCall %void %main_1
+        %510 = OpLoad %v4float %x_GLF_color
+        %511 = OpCompositeConstruct %main_out %510
+               OpReturnValue %511
                OpFunctionEnd
        %main = OpFunction %void None %28
-        %511 = OpLabel
-        %512 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %512
-        %513 = OpFunctionCall %void %main_1
-        %515 = OpLoad %v4float %x_GLF_color
-        %516 = OpCompositeConstruct %main_out %515
-        %514 = OpFunctionCall %void %tint_symbol_3 %516
+        %513 = OpLabel
+        %515 = OpLoad %v4float %gl_FragCoord_param_1
+        %514 = OpFunctionCall %main_out %main_inner %515
+        %516 = OpCompositeExtract %v4float %514 0
+               OpStore %x_GLF_color_1_1 %516
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.spvasm.expected.spvasm
index d01b8b5..24b7928 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %202 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
@@ -15,8 +17,6 @@
                OpName %x_GLF_color "x_GLF_color"
                OpName %index "index"
                OpName %state "state"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %collision_vf2_vf4_ "collision_vf2_vf4_"
                OpName %pos "pos"
                OpName %quad "quad"
@@ -35,44 +35,44 @@
                OpName %param_2 "param_2"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_20 NonWritable
                OpDecorate %x_20 DescriptorSet 0
                OpDecorate %x_20 Binding 0
                OpDecorate %_arr_int_uint_16 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_8 ArrayStride 16
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_20 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
 %_ptr_Private_int = OpTypePointer Private %int
-         %14 = OpConstantNull %int
-      %index = OpVariable %_ptr_Private_int Private %14
+         %18 = OpConstantNull %int
+      %index = OpVariable %_ptr_Private_int Private %18
        %uint = OpTypeInt 32 0
     %uint_16 = OpConstant %uint 16
 %_arr_int_uint_16 = OpTypeArray %int %uint_16
 %_ptr_Private__arr_int_uint_16 = OpTypePointer Private %_arr_int_uint_16
-         %20 = OpConstantNull %_arr_int_uint_16
-      %state = OpVariable %_ptr_Private__arr_int_uint_16 Private %20
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+         %24 = OpConstantNull %_arr_int_uint_16
+      %state = OpVariable %_ptr_Private__arr_int_uint_16 Private %24
        %bool = OpTypeBool
 %_ptr_Function_v2float = OpTypePointer Function %v2float
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -142,7 +142,7 @@
 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
    %float_32 = OpConstant %float 32
    %main_out = OpTypeStruct %v4float
-        %208 = OpTypeFunction %void %main_out
+        %208 = OpTypeFunction %main_out %v4float
 %collision_vf2_vf4_ = OpFunction %bool None %25
         %pos = OpFunctionParameter %_ptr_Function_v2float
        %quad = OpFunctionParameter %_ptr_Function_v4float
@@ -198,10 +198,10 @@
  %match_vf2_ = OpFunction %v4float None %84
       %pos_1 = OpFunctionParameter %_ptr_Function_v2float
          %87 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %5
-          %i = OpVariable %_ptr_Function_int Function %14
+        %res = OpVariable %_ptr_Function_v4float Function %7
+          %i = OpVariable %_ptr_Function_int Function %18
       %param = OpVariable %_ptr_Function_v2float Function %92
-    %param_1 = OpVariable %_ptr_Function_v4float Function %5
+    %param_1 = OpVariable %_ptr_Function_v4float Function %7
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %98
 %indexable_1 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %98
 %indexable_2 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %98
@@ -287,20 +287,20 @@
                OpStore %x_GLF_color %206
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %208
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %208
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %212 = OpLabel
-        %213 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %213
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %213 = OpFunctionCall %void %main_1
+        %214 = OpLoad %v4float %x_GLF_color
+        %215 = OpCompositeConstruct %main_out %214
+               OpReturnValue %215
                OpFunctionEnd
        %main = OpFunction %void None %186
-        %215 = OpLabel
-        %216 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %216
-        %217 = OpFunctionCall %void %main_1
-        %219 = OpLoad %v4float %x_GLF_color
-        %220 = OpCompositeConstruct %main_out %219
-        %218 = OpFunctionCall %void %tint_symbol_3 %220
+        %217 = OpLabel
+        %219 = OpLoad %v4float %gl_FragCoord_param_1
+        %218 = OpFunctionCall %main_out %main_inner %219
+        %220 = OpCompositeExtract %v4float %218 0
+               OpStore %x_GLF_color_1_1 %220
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.wgsl.expected.spvasm
index d01b8b5..24b7928 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %202 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
@@ -15,8 +17,6 @@
                OpName %x_GLF_color "x_GLF_color"
                OpName %index "index"
                OpName %state "state"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %collision_vf2_vf4_ "collision_vf2_vf4_"
                OpName %pos "pos"
                OpName %quad "quad"
@@ -35,44 +35,44 @@
                OpName %param_2 "param_2"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_20 NonWritable
                OpDecorate %x_20 DescriptorSet 0
                OpDecorate %x_20 Binding 0
                OpDecorate %_arr_int_uint_16 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_8 ArrayStride 16
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_20 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
 %_ptr_Private_int = OpTypePointer Private %int
-         %14 = OpConstantNull %int
-      %index = OpVariable %_ptr_Private_int Private %14
+         %18 = OpConstantNull %int
+      %index = OpVariable %_ptr_Private_int Private %18
        %uint = OpTypeInt 32 0
     %uint_16 = OpConstant %uint 16
 %_arr_int_uint_16 = OpTypeArray %int %uint_16
 %_ptr_Private__arr_int_uint_16 = OpTypePointer Private %_arr_int_uint_16
-         %20 = OpConstantNull %_arr_int_uint_16
-      %state = OpVariable %_ptr_Private__arr_int_uint_16 Private %20
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+         %24 = OpConstantNull %_arr_int_uint_16
+      %state = OpVariable %_ptr_Private__arr_int_uint_16 Private %24
        %bool = OpTypeBool
 %_ptr_Function_v2float = OpTypePointer Function %v2float
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -142,7 +142,7 @@
 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
    %float_32 = OpConstant %float 32
    %main_out = OpTypeStruct %v4float
-        %208 = OpTypeFunction %void %main_out
+        %208 = OpTypeFunction %main_out %v4float
 %collision_vf2_vf4_ = OpFunction %bool None %25
         %pos = OpFunctionParameter %_ptr_Function_v2float
        %quad = OpFunctionParameter %_ptr_Function_v4float
@@ -198,10 +198,10 @@
  %match_vf2_ = OpFunction %v4float None %84
       %pos_1 = OpFunctionParameter %_ptr_Function_v2float
          %87 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %5
-          %i = OpVariable %_ptr_Function_int Function %14
+        %res = OpVariable %_ptr_Function_v4float Function %7
+          %i = OpVariable %_ptr_Function_int Function %18
       %param = OpVariable %_ptr_Function_v2float Function %92
-    %param_1 = OpVariable %_ptr_Function_v4float Function %5
+    %param_1 = OpVariable %_ptr_Function_v4float Function %7
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %98
 %indexable_1 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %98
 %indexable_2 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %98
@@ -287,20 +287,20 @@
                OpStore %x_GLF_color %206
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %208
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %208
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %212 = OpLabel
-        %213 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %213
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %213 = OpFunctionCall %void %main_1
+        %214 = OpLoad %v4float %x_GLF_color
+        %215 = OpCompositeConstruct %main_out %214
+               OpReturnValue %215
                OpFunctionEnd
        %main = OpFunction %void None %186
-        %215 = OpLabel
-        %216 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %216
-        %217 = OpFunctionCall %void %main_1
-        %219 = OpLoad %v4float %x_GLF_color
-        %220 = OpCompositeConstruct %main_out %219
-        %218 = OpFunctionCall %void %tint_symbol_3 %220
+        %217 = OpLabel
+        %219 = OpLoad %v4float %gl_FragCoord_param_1
+        %218 = OpFunctionCall %main_out %main_inner %219
+        %220 = OpCompositeExtract %v4float %218 0
+               OpStore %x_GLF_color_1_1 %220
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.spvasm.expected.spvasm
index 44345bd..78ad920 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %207 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
@@ -15,8 +17,6 @@
                OpName %x_GLF_color "x_GLF_color"
                OpName %index "index"
                OpName %state "state"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %collision_vf2_vf4_ "collision_vf2_vf4_"
                OpName %pos "pos"
                OpName %quad "quad"
@@ -36,44 +36,44 @@
                OpName %param_2 "param_2"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_20 NonWritable
                OpDecorate %x_20 DescriptorSet 0
                OpDecorate %x_20 Binding 0
                OpDecorate %_arr_int_uint_16 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_8 ArrayStride 16
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_20 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
 %_ptr_Private_int = OpTypePointer Private %int
-         %14 = OpConstantNull %int
-      %index = OpVariable %_ptr_Private_int Private %14
+         %18 = OpConstantNull %int
+      %index = OpVariable %_ptr_Private_int Private %18
        %uint = OpTypeInt 32 0
     %uint_16 = OpConstant %uint 16
 %_arr_int_uint_16 = OpTypeArray %int %uint_16
 %_ptr_Private__arr_int_uint_16 = OpTypePointer Private %_arr_int_uint_16
-         %20 = OpConstantNull %_arr_int_uint_16
-      %state = OpVariable %_ptr_Private__arr_int_uint_16 Private %20
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+         %24 = OpConstantNull %_arr_int_uint_16
+      %state = OpVariable %_ptr_Private__arr_int_uint_16 Private %24
        %bool = OpTypeBool
 %_ptr_Function_v2float = OpTypePointer Function %v2float
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -147,7 +147,7 @@
 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
    %float_32 = OpConstant %float 32
    %main_out = OpTypeStruct %v4float
-        %213 = OpTypeFunction %void %main_out
+        %213 = OpTypeFunction %main_out %v4float
 %collision_vf2_vf4_ = OpFunction %bool None %25
         %pos = OpFunctionParameter %_ptr_Function_v2float
        %quad = OpFunctionParameter %_ptr_Function_v4float
@@ -205,10 +205,10 @@
  %match_vf2_ = OpFunction %v4float None %89
       %pos_1 = OpFunctionParameter %_ptr_Function_v2float
          %92 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %5
-          %i = OpVariable %_ptr_Function_int Function %14
+        %res = OpVariable %_ptr_Function_v4float Function %7
+          %i = OpVariable %_ptr_Function_int Function %18
       %param = OpVariable %_ptr_Function_v2float Function %97
-    %param_1 = OpVariable %_ptr_Function_v4float Function %5
+    %param_1 = OpVariable %_ptr_Function_v4float Function %7
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %103
 %indexable_1 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %103
 %indexable_2 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %103
@@ -294,20 +294,20 @@
                OpStore %x_GLF_color %211
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %213
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %213
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %217 = OpLabel
-        %218 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %218
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %218 = OpFunctionCall %void %main_1
+        %219 = OpLoad %v4float %x_GLF_color
+        %220 = OpCompositeConstruct %main_out %219
+               OpReturnValue %220
                OpFunctionEnd
        %main = OpFunction %void None %191
-        %220 = OpLabel
-        %221 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %221
-        %222 = OpFunctionCall %void %main_1
-        %224 = OpLoad %v4float %x_GLF_color
-        %225 = OpCompositeConstruct %main_out %224
-        %223 = OpFunctionCall %void %tint_symbol_3 %225
+        %222 = OpLabel
+        %224 = OpLoad %v4float %gl_FragCoord_param_1
+        %223 = OpFunctionCall %main_out %main_inner %224
+        %225 = OpCompositeExtract %v4float %223 0
+               OpStore %x_GLF_color_1_1 %225
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.wgsl.expected.spvasm
index 44345bd..78ad920 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %207 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
@@ -15,8 +17,6 @@
                OpName %x_GLF_color "x_GLF_color"
                OpName %index "index"
                OpName %state "state"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %collision_vf2_vf4_ "collision_vf2_vf4_"
                OpName %pos "pos"
                OpName %quad "quad"
@@ -36,44 +36,44 @@
                OpName %param_2 "param_2"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_20 NonWritable
                OpDecorate %x_20 DescriptorSet 0
                OpDecorate %x_20 Binding 0
                OpDecorate %_arr_int_uint_16 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_8 ArrayStride 16
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_20 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
 %_ptr_Private_int = OpTypePointer Private %int
-         %14 = OpConstantNull %int
-      %index = OpVariable %_ptr_Private_int Private %14
+         %18 = OpConstantNull %int
+      %index = OpVariable %_ptr_Private_int Private %18
        %uint = OpTypeInt 32 0
     %uint_16 = OpConstant %uint 16
 %_arr_int_uint_16 = OpTypeArray %int %uint_16
 %_ptr_Private__arr_int_uint_16 = OpTypePointer Private %_arr_int_uint_16
-         %20 = OpConstantNull %_arr_int_uint_16
-      %state = OpVariable %_ptr_Private__arr_int_uint_16 Private %20
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+         %24 = OpConstantNull %_arr_int_uint_16
+      %state = OpVariable %_ptr_Private__arr_int_uint_16 Private %24
        %bool = OpTypeBool
 %_ptr_Function_v2float = OpTypePointer Function %v2float
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -147,7 +147,7 @@
 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
    %float_32 = OpConstant %float 32
    %main_out = OpTypeStruct %v4float
-        %213 = OpTypeFunction %void %main_out
+        %213 = OpTypeFunction %main_out %v4float
 %collision_vf2_vf4_ = OpFunction %bool None %25
         %pos = OpFunctionParameter %_ptr_Function_v2float
        %quad = OpFunctionParameter %_ptr_Function_v4float
@@ -205,10 +205,10 @@
  %match_vf2_ = OpFunction %v4float None %89
       %pos_1 = OpFunctionParameter %_ptr_Function_v2float
          %92 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %5
-          %i = OpVariable %_ptr_Function_int Function %14
+        %res = OpVariable %_ptr_Function_v4float Function %7
+          %i = OpVariable %_ptr_Function_int Function %18
       %param = OpVariable %_ptr_Function_v2float Function %97
-    %param_1 = OpVariable %_ptr_Function_v4float Function %5
+    %param_1 = OpVariable %_ptr_Function_v4float Function %7
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %103
 %indexable_1 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %103
 %indexable_2 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %103
@@ -294,20 +294,20 @@
                OpStore %x_GLF_color %211
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %213
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %213
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %217 = OpLabel
-        %218 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %218
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %218 = OpFunctionCall %void %main_1
+        %219 = OpLoad %v4float %x_GLF_color
+        %220 = OpCompositeConstruct %main_out %219
+               OpReturnValue %220
                OpFunctionEnd
        %main = OpFunction %void None %191
-        %220 = OpLabel
-        %221 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %221
-        %222 = OpFunctionCall %void %main_1
-        %224 = OpLoad %v4float %x_GLF_color
-        %225 = OpCompositeConstruct %main_out %224
-        %223 = OpFunctionCall %void %tint_symbol_3 %225
+        %222 = OpLabel
+        %224 = OpLoad %v4float %gl_FragCoord_param_1
+        %223 = OpFunctionCall %main_out %main_inner %224
+        %225 = OpCompositeExtract %v4float %223 0
+               OpStore %x_GLF_color_1_1 %225
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.spvasm
index b1e952c..b590ee6 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %176 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %data "data"
                OpName %temp "temp"
                OpName %buf0 "buf0"
@@ -18,8 +20,6 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "resolution"
                OpName %x_32 "x_32"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %merge_i1_i1_i1_ "merge_i1_i1_i1_"
                OpName %from "from"
                OpName %mid "mid"
@@ -45,9 +45,11 @@
                OpName %grey "grey"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
@@ -59,34 +61,32 @@
                OpDecorate %x_32 NonWritable
                OpDecorate %x_32 DescriptorSet 0
                OpDecorate %x_32 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %_ptr_Private__arr_int_uint_10 = OpTypePointer Private %_arr_int_uint_10
-          %7 = OpConstantNull %_arr_int_uint_10
-       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-      %float = OpTypeFloat 32
+         %14 = OpConstantNull %_arr_int_uint_10
+       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
+       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_28 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_32 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %26 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int %_ptr_Function_int
@@ -130,7 +130,7 @@
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %399 = OpTypeFunction %void %main_out
+        %399 = OpTypeFunction %main_out %v4float
 %merge_i1_i1_i1_ = OpFunction %void None %26
        %from = OpFunctionParameter %_ptr_Function_int
         %mid = OpFunctionParameter %_ptr_Function_int
@@ -619,20 +619,20 @@
                OpStore %x_GLF_color %398
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %399
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %399
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %403 = OpLabel
-        %404 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %404
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %404 = OpFunctionCall %void %main_1
+        %405 = OpLoad %v4float %x_GLF_color
+        %406 = OpCompositeConstruct %main_out %405
+               OpReturnValue %406
                OpFunctionEnd
        %main = OpFunction %void None %131
-        %406 = OpLabel
-        %407 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %407
-        %408 = OpFunctionCall %void %main_1
-        %410 = OpLoad %v4float %x_GLF_color
-        %411 = OpCompositeConstruct %main_out %410
-        %409 = OpFunctionCall %void %tint_symbol_3 %411
+        %408 = OpLabel
+        %410 = OpLoad %v4float %gl_FragCoord_param_1
+        %409 = OpFunctionCall %main_out %main_inner %410
+        %411 = OpCompositeExtract %v4float %409 0
+               OpStore %x_GLF_color_1_1 %411
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.wgsl.expected.spvasm
index 8ea9848..72c4199 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %180 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %data "data"
                OpName %temp "temp"
                OpName %buf0 "buf0"
@@ -18,8 +20,6 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "resolution"
                OpName %x_32 "x_32"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %merge_i1_i1_i1_ "merge_i1_i1_i1_"
                OpName %from "from"
                OpName %mid "mid"
@@ -45,9 +45,11 @@
                OpName %grey "grey"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
@@ -59,34 +61,32 @@
                OpDecorate %x_32 NonWritable
                OpDecorate %x_32 DescriptorSet 0
                OpDecorate %x_32 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %_ptr_Private__arr_int_uint_10 = OpTypePointer Private %_arr_int_uint_10
-          %7 = OpConstantNull %_arr_int_uint_10
-       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-      %float = OpTypeFloat 32
+         %14 = OpConstantNull %_arr_int_uint_10
+       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
+       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_28 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_32 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %26 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int %_ptr_Function_int
@@ -130,7 +130,7 @@
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %403 = OpTypeFunction %void %main_out
+        %403 = OpTypeFunction %main_out %v4float
 %merge_i1_i1_i1_ = OpFunction %void None %26
        %from = OpFunctionParameter %_ptr_Function_int
         %mid = OpFunctionParameter %_ptr_Function_int
@@ -629,20 +629,20 @@
                OpStore %x_GLF_color %402
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %403
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %403
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %407 = OpLabel
-        %408 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %408
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %408 = OpFunctionCall %void %main_1
+        %409 = OpLoad %v4float %x_GLF_color
+        %410 = OpCompositeConstruct %main_out %409
+               OpReturnValue %410
                OpFunctionEnd
        %main = OpFunction %void None %135
-        %410 = OpLabel
-        %411 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %411
-        %412 = OpFunctionCall %void %main_1
-        %414 = OpLoad %v4float %x_GLF_color
-        %415 = OpCompositeConstruct %main_out %414
-        %413 = OpFunctionCall %void %tint_symbol_3 %415
+        %412 = OpLabel
+        %414 = OpLoad %v4float %gl_FragCoord_param_1
+        %413 = OpFunctionCall %main_out %main_inner %414
+        %415 = OpCompositeExtract %v4float %413 0
+               OpStore %x_GLF_color_1_1 %415
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.spvasm
index 1930344..dc0ea2b 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %176 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %data "data"
                OpName %temp "temp"
                OpName %buf0 "buf0"
@@ -18,8 +20,6 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "resolution"
                OpName %x_32 "x_32"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %merge_i1_i1_i1_ "merge_i1_i1_i1_"
                OpName %from "from"
                OpName %mid "mid"
@@ -45,9 +45,11 @@
                OpName %grey "grey"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
@@ -59,34 +61,32 @@
                OpDecorate %x_32 NonWritable
                OpDecorate %x_32 DescriptorSet 0
                OpDecorate %x_32 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %_ptr_Private__arr_int_uint_10 = OpTypePointer Private %_arr_int_uint_10
-          %7 = OpConstantNull %_arr_int_uint_10
-       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-      %float = OpTypeFloat 32
+         %14 = OpConstantNull %_arr_int_uint_10
+       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
+       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_28 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_32 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %26 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int %_ptr_Function_int
@@ -131,7 +131,7 @@
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %403 = OpTypeFunction %void %main_out
+        %403 = OpTypeFunction %main_out %v4float
 %merge_i1_i1_i1_ = OpFunction %void None %26
        %from = OpFunctionParameter %_ptr_Function_int
         %mid = OpFunctionParameter %_ptr_Function_int
@@ -627,20 +627,20 @@
                OpStore %x_GLF_color %402
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %403
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %403
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %407 = OpLabel
-        %408 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %408
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %408 = OpFunctionCall %void %main_1
+        %409 = OpLoad %v4float %x_GLF_color
+        %410 = OpCompositeConstruct %main_out %409
+               OpReturnValue %410
                OpFunctionEnd
        %main = OpFunction %void None %131
-        %410 = OpLabel
-        %411 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %411
-        %412 = OpFunctionCall %void %main_1
-        %414 = OpLoad %v4float %x_GLF_color
-        %415 = OpCompositeConstruct %main_out %414
-        %413 = OpFunctionCall %void %tint_symbol_3 %415
+        %412 = OpLabel
+        %414 = OpLoad %v4float %gl_FragCoord_param_1
+        %413 = OpFunctionCall %main_out %main_inner %414
+        %415 = OpCompositeExtract %v4float %413 0
+               OpStore %x_GLF_color_1_1 %415
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.wgsl.expected.spvasm
index fbc9b39..01d6d84 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %180 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %data "data"
                OpName %temp "temp"
                OpName %buf0 "buf0"
@@ -18,8 +20,6 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "resolution"
                OpName %x_32 "x_32"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %merge_i1_i1_i1_ "merge_i1_i1_i1_"
                OpName %from "from"
                OpName %mid "mid"
@@ -45,9 +45,11 @@
                OpName %grey "grey"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
@@ -59,34 +61,32 @@
                OpDecorate %x_32 NonWritable
                OpDecorate %x_32 DescriptorSet 0
                OpDecorate %x_32 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %_ptr_Private__arr_int_uint_10 = OpTypePointer Private %_arr_int_uint_10
-          %7 = OpConstantNull %_arr_int_uint_10
-       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-      %float = OpTypeFloat 32
+         %14 = OpConstantNull %_arr_int_uint_10
+       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
+       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_28 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_32 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %26 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int %_ptr_Function_int
@@ -131,7 +131,7 @@
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %407 = OpTypeFunction %void %main_out
+        %407 = OpTypeFunction %main_out %v4float
 %merge_i1_i1_i1_ = OpFunction %void None %26
        %from = OpFunctionParameter %_ptr_Function_int
         %mid = OpFunctionParameter %_ptr_Function_int
@@ -637,20 +637,20 @@
                OpStore %x_GLF_color %406
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %407
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %407
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %411 = OpLabel
-        %412 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %412
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %412 = OpFunctionCall %void %main_1
+        %413 = OpLoad %v4float %x_GLF_color
+        %414 = OpCompositeConstruct %main_out %413
+               OpReturnValue %414
                OpFunctionEnd
        %main = OpFunction %void None %135
-        %414 = OpLabel
-        %415 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %415
-        %416 = OpFunctionCall %void %main_1
-        %418 = OpLoad %v4float %x_GLF_color
-        %419 = OpCompositeConstruct %main_out %418
-        %417 = OpFunctionCall %void %tint_symbol_3 %419
+        %416 = OpLabel
+        %418 = OpLoad %v4float %gl_FragCoord_param_1
+        %417 = OpFunctionCall %main_out %main_inner %418
+        %419 = OpCompositeExtract %v4float %417 0
+               OpStore %x_GLF_color_1_1 %419
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.spvasm.expected.spvasm
index 43b700f..83842cb 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "resolution"
@@ -15,8 +17,6 @@
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %data "data"
                OpName %x_40_phi "x_40_phi"
@@ -30,9 +30,11 @@
                OpName %x_84_phi "x_84_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_6 NonWritable
@@ -43,15 +45,17 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_float_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
@@ -59,11 +63,7 @@
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -91,7 +91,7 @@
 %float_0_100000001 = OpConstant %float 0.100000001
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %154 = OpTypeFunction %void %main_out
+        %154 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
        %data = OpVariable %_ptr_Function__arr_float_uint_10 Function %27
@@ -263,20 +263,20 @@
         %128 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %154
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %154
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %158 = OpLabel
-        %159 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %159
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %159 = OpFunctionCall %void %main_1
+        %160 = OpLoad %v4float %x_GLF_color
+        %161 = OpCompositeConstruct %main_out %160
+               OpReturnValue %161
                OpFunctionEnd
        %main = OpFunction %void None %18
-        %161 = OpLabel
-        %162 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %162
-        %163 = OpFunctionCall %void %main_1
-        %165 = OpLoad %v4float %x_GLF_color
-        %166 = OpCompositeConstruct %main_out %165
-        %164 = OpFunctionCall %void %tint_symbol_3 %166
+        %163 = OpLabel
+        %165 = OpLoad %v4float %gl_FragCoord_param_1
+        %164 = OpFunctionCall %main_out %main_inner %165
+        %166 = OpCompositeExtract %v4float %164 0
+               OpStore %x_GLF_color_1_1 %166
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.wgsl.expected.spvasm
index 43b700f..83842cb 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "resolution"
@@ -15,8 +17,6 @@
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %data "data"
                OpName %x_40_phi "x_40_phi"
@@ -30,9 +30,11 @@
                OpName %x_84_phi "x_84_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_6 NonWritable
@@ -43,15 +45,17 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_float_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
@@ -59,11 +63,7 @@
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -91,7 +91,7 @@
 %float_0_100000001 = OpConstant %float 0.100000001
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %154 = OpTypeFunction %void %main_out
+        %154 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
        %data = OpVariable %_ptr_Function__arr_float_uint_10 Function %27
@@ -263,20 +263,20 @@
         %128 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %154
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %154
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %158 = OpLabel
-        %159 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %159
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %159 = OpFunctionCall %void %main_1
+        %160 = OpLoad %v4float %x_GLF_color
+        %161 = OpCompositeConstruct %main_out %160
+               OpReturnValue %161
                OpFunctionEnd
        %main = OpFunction %void None %18
-        %161 = OpLabel
-        %162 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %162
-        %163 = OpFunctionCall %void %main_1
-        %165 = OpLoad %v4float %x_GLF_color
-        %166 = OpCompositeConstruct %main_out %165
-        %164 = OpFunctionCall %void %tint_symbol_3 %166
+        %163 = OpLabel
+        %165 = OpLoad %v4float %gl_FragCoord_param_1
+        %164 = OpFunctionCall %main_out %main_inner %165
+        %166 = OpCompositeExtract %v4float %164 0
+               OpStore %x_GLF_color_1_1 %166
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.spvasm.expected.spvasm
index 8a60eb4..71cd98b 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "resolution"
@@ -15,8 +17,6 @@
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %data "data"
                OpName %x_41_phi "x_41_phi"
@@ -30,9 +30,11 @@
                OpName %x_85_phi "x_85_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_6 NonWritable
@@ -43,15 +45,17 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_float_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
@@ -59,11 +63,7 @@
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -91,7 +91,7 @@
 %float_0_100000001 = OpConstant %float 0.100000001
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %154 = OpTypeFunction %void %main_out
+        %154 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
        %data = OpVariable %_ptr_Function__arr_float_uint_10 Function %27
@@ -263,20 +263,20 @@
         %128 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %154
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %154
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %158 = OpLabel
-        %159 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %159
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %159 = OpFunctionCall %void %main_1
+        %160 = OpLoad %v4float %x_GLF_color
+        %161 = OpCompositeConstruct %main_out %160
+               OpReturnValue %161
                OpFunctionEnd
        %main = OpFunction %void None %18
-        %161 = OpLabel
-        %162 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %162
-        %163 = OpFunctionCall %void %main_1
-        %165 = OpLoad %v4float %x_GLF_color
-        %166 = OpCompositeConstruct %main_out %165
-        %164 = OpFunctionCall %void %tint_symbol_3 %166
+        %163 = OpLabel
+        %165 = OpLoad %v4float %gl_FragCoord_param_1
+        %164 = OpFunctionCall %main_out %main_inner %165
+        %166 = OpCompositeExtract %v4float %164 0
+               OpStore %x_GLF_color_1_1 %166
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.wgsl.expected.spvasm
index 8a60eb4..71cd98b 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "resolution"
@@ -15,8 +17,6 @@
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %data "data"
                OpName %x_41_phi "x_41_phi"
@@ -30,9 +30,11 @@
                OpName %x_85_phi "x_85_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_6 NonWritable
@@ -43,15 +45,17 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_float_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
@@ -59,11 +63,7 @@
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -91,7 +91,7 @@
 %float_0_100000001 = OpConstant %float 0.100000001
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %154 = OpTypeFunction %void %main_out
+        %154 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
        %data = OpVariable %_ptr_Function__arr_float_uint_10 Function %27
@@ -263,20 +263,20 @@
         %128 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %154
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %154
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %158 = OpLabel
-        %159 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %159
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %159 = OpFunctionCall %void %main_1
+        %160 = OpLoad %v4float %x_GLF_color
+        %161 = OpCompositeConstruct %main_out %160
+               OpReturnValue %161
                OpFunctionEnd
        %main = OpFunction %void None %18
-        %161 = OpLabel
-        %162 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %162
-        %163 = OpFunctionCall %void %main_1
-        %165 = OpLoad %v4float %x_GLF_color
-        %166 = OpCompositeConstruct %main_out %165
-        %164 = OpFunctionCall %void %tint_symbol_3 %166
+        %163 = OpLabel
+        %165 = OpLoad %v4float %gl_FragCoord_param_1
+        %164 = OpFunctionCall %main_out %main_inner %165
+        %166 = OpCompositeExtract %v4float %164 0
+               OpStore %x_GLF_color_1_1 %166
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.spvasm
index 858be31..4202ee1 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %183 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %data "data"
                OpName %temp "temp"
                OpName %buf0 "buf0"
@@ -18,8 +20,6 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "resolution"
                OpName %x_32 "x_32"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %merge_i1_i1_i1_ "merge_i1_i1_i1_"
                OpName %from "from"
                OpName %mid "mid"
@@ -45,9 +45,11 @@
                OpName %grey "grey"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
@@ -59,34 +61,32 @@
                OpDecorate %x_32 NonWritable
                OpDecorate %x_32 DescriptorSet 0
                OpDecorate %x_32 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %_ptr_Private__arr_int_uint_10 = OpTypePointer Private %_arr_int_uint_10
-          %7 = OpConstantNull %_arr_int_uint_10
-       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-      %float = OpTypeFloat 32
+         %14 = OpConstantNull %_arr_int_uint_10
+       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
+       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_28 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_32 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %26 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int %_ptr_Function_int
@@ -131,7 +131,7 @@
       %int_8 = OpConstant %int 8
     %v3float = OpTypeVector %float 3
    %main_out = OpTypeStruct %v4float
-        %405 = OpTypeFunction %void %main_out
+        %405 = OpTypeFunction %main_out %v4float
 %merge_i1_i1_i1_ = OpFunction %void None %26
        %from = OpFunctionParameter %_ptr_Function_int
         %mid = OpFunctionParameter %_ptr_Function_int
@@ -629,20 +629,20 @@
                OpStore %x_GLF_color %404
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %405
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %405
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %409 = OpLabel
-        %410 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %410
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %410 = OpFunctionCall %void %main_1
+        %411 = OpLoad %v4float %x_GLF_color
+        %412 = OpCompositeConstruct %main_out %411
+               OpReturnValue %412
                OpFunctionEnd
        %main = OpFunction %void None %138
-        %412 = OpLabel
-        %413 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %413
-        %414 = OpFunctionCall %void %main_1
-        %416 = OpLoad %v4float %x_GLF_color
-        %417 = OpCompositeConstruct %main_out %416
-        %415 = OpFunctionCall %void %tint_symbol_3 %417
+        %414 = OpLabel
+        %416 = OpLoad %v4float %gl_FragCoord_param_1
+        %415 = OpFunctionCall %main_out %main_inner %416
+        %417 = OpCompositeExtract %v4float %415 0
+               OpStore %x_GLF_color_1_1 %417
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.wgsl.expected.spvasm
index b7687ce..6208764 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %187 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %data "data"
                OpName %temp "temp"
                OpName %buf0 "buf0"
@@ -18,8 +20,6 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "resolution"
                OpName %x_32 "x_32"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %merge_i1_i1_i1_ "merge_i1_i1_i1_"
                OpName %from "from"
                OpName %mid "mid"
@@ -45,9 +45,11 @@
                OpName %grey "grey"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
@@ -59,34 +61,32 @@
                OpDecorate %x_32 NonWritable
                OpDecorate %x_32 DescriptorSet 0
                OpDecorate %x_32 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %_ptr_Private__arr_int_uint_10 = OpTypePointer Private %_arr_int_uint_10
-          %7 = OpConstantNull %_arr_int_uint_10
-       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-      %float = OpTypeFloat 32
+         %14 = OpConstantNull %_arr_int_uint_10
+       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
+       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_28 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_32 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %26 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int %_ptr_Function_int
@@ -131,7 +131,7 @@
       %int_8 = OpConstant %int 8
     %v3float = OpTypeVector %float 3
    %main_out = OpTypeStruct %v4float
-        %409 = OpTypeFunction %void %main_out
+        %409 = OpTypeFunction %main_out %v4float
 %merge_i1_i1_i1_ = OpFunction %void None %26
        %from = OpFunctionParameter %_ptr_Function_int
         %mid = OpFunctionParameter %_ptr_Function_int
@@ -639,20 +639,20 @@
                OpStore %x_GLF_color %408
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %409
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %409
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %413 = OpLabel
-        %414 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %414
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %414 = OpFunctionCall %void %main_1
+        %415 = OpLoad %v4float %x_GLF_color
+        %416 = OpCompositeConstruct %main_out %415
+               OpReturnValue %416
                OpFunctionEnd
        %main = OpFunction %void None %142
-        %416 = OpLabel
-        %417 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %417
-        %418 = OpFunctionCall %void %main_1
-        %420 = OpLoad %v4float %x_GLF_color
-        %421 = OpCompositeConstruct %main_out %420
-        %419 = OpFunctionCall %void %tint_symbol_3 %421
+        %418 = OpLabel
+        %420 = OpLoad %v4float %gl_FragCoord_param_1
+        %419 = OpFunctionCall %main_out %main_inner %420
+        %421 = OpCompositeExtract %v4float %419 0
+               OpStore %x_GLF_color_1_1 %421
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.spvasm.expected.spvasm
index 9057c70..6884591 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.spvasm.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 627
+; Bound: 626
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %BST "BST"
                OpMemberName %BST 0 "data"
@@ -89,10 +89,9 @@
                OpName %x_407_phi "x_407_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %BST 0 Offset 0
                OpMemberDecorate %BST 1 Offset 4
                OpMemberDecorate %BST 2 Offset 8
@@ -100,11 +99,11 @@
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -158,7 +157,7 @@
         %613 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %614 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-        %615 = OpTypeFunction %void %main_out
+        %615 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
        %tree = OpVariable %_ptr_Function__arr_BST_uint_10 Function %19
@@ -1157,18 +1156,17 @@
         %608 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %615
-%tint_symbol = OpFunctionParameter %main_out
-        %619 = OpLabel
-        %620 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %620
-               OpReturn
+ %main_inner = OpFunction %main_out None %615
+        %618 = OpLabel
+        %619 = OpFunctionCall %void %main_1
+        %620 = OpLoad %v4float %x_GLF_color
+        %621 = OpCompositeConstruct %main_out %620
+               OpReturnValue %621
                OpFunctionEnd
        %main = OpFunction %void None %8
-        %622 = OpLabel
-        %623 = OpFunctionCall %void %main_1
-        %625 = OpLoad %v4float %x_GLF_color
-        %626 = OpCompositeConstruct %main_out %625
-        %624 = OpFunctionCall %void %tint_symbol_2 %626
+        %623 = OpLabel
+        %624 = OpFunctionCall %main_out %main_inner
+        %625 = OpCompositeExtract %v4float %624 0
+               OpStore %x_GLF_color_1_1 %625
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl.expected.spvasm
index 9057c70..6884591 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 627
+; Bound: 626
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %BST "BST"
                OpMemberName %BST 0 "data"
@@ -89,10 +89,9 @@
                OpName %x_407_phi "x_407_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %BST 0 Offset 0
                OpMemberDecorate %BST 1 Offset 4
                OpMemberDecorate %BST 2 Offset 8
@@ -100,11 +99,11 @@
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -158,7 +157,7 @@
         %613 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %614 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-        %615 = OpTypeFunction %void %main_out
+        %615 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
        %tree = OpVariable %_ptr_Function__arr_BST_uint_10 Function %19
@@ -1157,18 +1156,17 @@
         %608 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %615
-%tint_symbol = OpFunctionParameter %main_out
-        %619 = OpLabel
-        %620 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %620
-               OpReturn
+ %main_inner = OpFunction %main_out None %615
+        %618 = OpLabel
+        %619 = OpFunctionCall %void %main_1
+        %620 = OpLoad %v4float %x_GLF_color
+        %621 = OpCompositeConstruct %main_out %620
+               OpReturnValue %621
                OpFunctionEnd
        %main = OpFunction %void None %8
-        %622 = OpLabel
-        %623 = OpFunctionCall %void %main_1
-        %625 = OpLoad %v4float %x_GLF_color
-        %626 = OpCompositeConstruct %main_out %625
-        %624 = OpFunctionCall %void %tint_symbol_2 %626
+        %623 = OpLabel
+        %624 = OpFunctionCall %main_out %main_inner
+        %625 = OpCompositeExtract %v4float %624 0
+               OpStore %x_GLF_color_1_1 %625
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.spvasm.expected.spvasm
index 770f48a..000259e 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %45 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_77 "x_77"
                OpName %x_78 "x_78"
@@ -30,33 +30,33 @@
                OpName %x_98 "x_98"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_8 ArrayStride 16
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -128,21 +128,21 @@
      %int_16 = OpConstant %int 16
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-        %169 = OpTypeFunction %void %main_out
+        %169 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %x_77 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %24
        %x_78 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %24
        %x_79 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %24
        %x_80 = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %31
-       %x_89 = OpVariable %_ptr_Function_v4float Function %5
-   %x_89_phi = OpVariable %_ptr_Function_v4float Function %5
+       %x_89 = OpVariable %_ptr_Function_v4float Function %7
+   %x_89_phi = OpVariable %_ptr_Function_v4float Function %7
    %x_92_phi = OpVariable %_ptr_Function_int Function %38
-      %x_136 = OpVariable %_ptr_Function_v4float Function %5
+      %x_136 = OpVariable %_ptr_Function_v4float Function %7
        %x_93 = OpVariable %_ptr_Function_int Function %38
   %x_121_phi = OpVariable %_ptr_Function_bool Function %65
-   %x_90_phi = OpVariable %_ptr_Function_v4float Function %5
-       %x_98 = OpVariable %_ptr_Function_v4float Function %5
+   %x_90_phi = OpVariable %_ptr_Function_v4float Function %7
+       %x_98 = OpVariable %_ptr_Function_v4float Function %7
          %39 = OpLoad %v4float %gl_FragCoord
          %42 = OpAccessChain %_ptr_Uniform_v2float %x_6 %uint_0
          %43 = OpLoad %v2float %42
@@ -261,20 +261,20 @@
                OpStore %x_GLF_color %168
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %169
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %169
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %173 = OpLabel
-        %174 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %174
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %174 = OpFunctionCall %void %main_1
+        %175 = OpLoad %v4float %x_GLF_color
+        %176 = OpCompositeConstruct %main_out %175
+               OpReturnValue %176
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %176 = OpLabel
-        %177 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %177
-        %178 = OpFunctionCall %void %main_1
-        %180 = OpLoad %v4float %x_GLF_color
-        %181 = OpCompositeConstruct %main_out %180
-        %179 = OpFunctionCall %void %tint_symbol_3 %181
+        %178 = OpLabel
+        %180 = OpLoad %v4float %gl_FragCoord_param_1
+        %179 = OpFunctionCall %main_out %main_inner %180
+        %181 = OpCompositeExtract %v4float %179 0
+               OpStore %x_GLF_color_1_1 %181
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.wgsl.expected.spvasm
index 770f48a..000259e 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %45 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_77 "x_77"
                OpName %x_78 "x_78"
@@ -30,33 +30,33 @@
                OpName %x_98 "x_98"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_8 ArrayStride 16
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -128,21 +128,21 @@
      %int_16 = OpConstant %int 16
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-        %169 = OpTypeFunction %void %main_out
+        %169 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %x_77 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %24
        %x_78 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %24
        %x_79 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %24
        %x_80 = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %31
-       %x_89 = OpVariable %_ptr_Function_v4float Function %5
-   %x_89_phi = OpVariable %_ptr_Function_v4float Function %5
+       %x_89 = OpVariable %_ptr_Function_v4float Function %7
+   %x_89_phi = OpVariable %_ptr_Function_v4float Function %7
    %x_92_phi = OpVariable %_ptr_Function_int Function %38
-      %x_136 = OpVariable %_ptr_Function_v4float Function %5
+      %x_136 = OpVariable %_ptr_Function_v4float Function %7
        %x_93 = OpVariable %_ptr_Function_int Function %38
   %x_121_phi = OpVariable %_ptr_Function_bool Function %65
-   %x_90_phi = OpVariable %_ptr_Function_v4float Function %5
-       %x_98 = OpVariable %_ptr_Function_v4float Function %5
+   %x_90_phi = OpVariable %_ptr_Function_v4float Function %7
+       %x_98 = OpVariable %_ptr_Function_v4float Function %7
          %39 = OpLoad %v4float %gl_FragCoord
          %42 = OpAccessChain %_ptr_Uniform_v2float %x_6 %uint_0
          %43 = OpLoad %v2float %42
@@ -261,20 +261,20 @@
                OpStore %x_GLF_color %168
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %169
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %169
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %173 = OpLabel
-        %174 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %174
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %174 = OpFunctionCall %void %main_1
+        %175 = OpLoad %v4float %x_GLF_color
+        %176 = OpCompositeConstruct %main_out %175
+               OpReturnValue %176
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %176 = OpLabel
-        %177 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %177
-        %178 = OpFunctionCall %void %main_1
-        %180 = OpLoad %v4float %x_GLF_color
-        %181 = OpCompositeConstruct %main_out %180
-        %179 = OpFunctionCall %void %tint_symbol_3 %181
+        %178 = OpLabel
+        %180 = OpLoad %v4float %gl_FragCoord_param_1
+        %179 = OpFunctionCall %main_out %main_inner %180
+        %181 = OpCompositeExtract %v4float %179 0
+               OpStore %x_GLF_color_1_1 %181
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.spvasm.expected.spvasm
index 7dfa9c8..8630dfb 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %indexable "indexable"
                OpName %x_69 "x_69"
@@ -23,32 +23,32 @@
                OpName %x_73 "x_73"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -93,7 +93,7 @@
      %int_16 = OpConstant %int 16
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %111 = OpTypeFunction %void %main_out
+        %111 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %24
@@ -169,20 +169,20 @@
                OpStore %x_GLF_color %110
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %111
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %111
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %115 = OpLabel
-        %116 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %116
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %116 = OpFunctionCall %void %main_1
+        %117 = OpLoad %v4float %x_GLF_color
+        %118 = OpCompositeConstruct %main_out %117
+               OpReturnValue %118
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %118 = OpLabel
-        %119 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %119
-        %120 = OpFunctionCall %void %main_1
-        %122 = OpLoad %v4float %x_GLF_color
-        %123 = OpCompositeConstruct %main_out %122
-        %121 = OpFunctionCall %void %tint_symbol_3 %123
+        %120 = OpLabel
+        %122 = OpLoad %v4float %gl_FragCoord_param_1
+        %121 = OpFunctionCall %main_out %main_inner %122
+        %123 = OpCompositeExtract %v4float %121 0
+               OpStore %x_GLF_color_1_1 %123
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.wgsl.expected.spvasm
index 7dfa9c8..8630dfb 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %indexable "indexable"
                OpName %x_69 "x_69"
@@ -23,32 +23,32 @@
                OpName %x_73 "x_73"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -93,7 +93,7 @@
      %int_16 = OpConstant %int 16
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %111 = OpTypeFunction %void %main_out
+        %111 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %24
@@ -169,20 +169,20 @@
                OpStore %x_GLF_color %110
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %111
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %111
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %115 = OpLabel
-        %116 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %116
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %116 = OpFunctionCall %void %main_1
+        %117 = OpLoad %v4float %x_GLF_color
+        %118 = OpCompositeConstruct %main_out %117
+               OpReturnValue %118
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %118 = OpLabel
-        %119 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %119
-        %120 = OpFunctionCall %void %main_1
-        %122 = OpLoad %v4float %x_GLF_color
-        %123 = OpCompositeConstruct %main_out %122
-        %121 = OpFunctionCall %void %tint_symbol_3 %123
+        %120 = OpLabel
+        %122 = OpLoad %v4float %gl_FragCoord_param_1
+        %121 = OpFunctionCall %main_out %main_inner %122
+        %123 = OpCompositeExtract %v4float %121 0
+               OpStore %x_GLF_color_1_1 %123
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.spvasm.expected.spvasm
index 6899c03..d917257 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %indexable "indexable"
                OpName %x_69 "x_69"
@@ -23,32 +23,32 @@
                OpName %x_73 "x_73"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -91,7 +91,7 @@
      %int_16 = OpConstant %int 16
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %108 = OpTypeFunction %void %main_out
+        %108 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %24
@@ -164,20 +164,20 @@
                OpStore %x_GLF_color %107
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %108
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %108
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %112 = OpLabel
-        %113 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %113
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %113 = OpFunctionCall %void %main_1
+        %114 = OpLoad %v4float %x_GLF_color
+        %115 = OpCompositeConstruct %main_out %114
+               OpReturnValue %115
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %115 = OpLabel
-        %116 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %116
-        %117 = OpFunctionCall %void %main_1
-        %119 = OpLoad %v4float %x_GLF_color
-        %120 = OpCompositeConstruct %main_out %119
-        %118 = OpFunctionCall %void %tint_symbol_3 %120
+        %117 = OpLabel
+        %119 = OpLoad %v4float %gl_FragCoord_param_1
+        %118 = OpFunctionCall %main_out %main_inner %119
+        %120 = OpCompositeExtract %v4float %118 0
+               OpStore %x_GLF_color_1_1 %120
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.wgsl.expected.spvasm
index 6899c03..d917257 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %indexable "indexable"
                OpName %x_69 "x_69"
@@ -23,32 +23,32 @@
                OpName %x_73 "x_73"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -91,7 +91,7 @@
      %int_16 = OpConstant %int 16
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %108 = OpTypeFunction %void %main_out
+        %108 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %24
@@ -164,20 +164,20 @@
                OpStore %x_GLF_color %107
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %108
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %108
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %112 = OpLabel
-        %113 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %113
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %113 = OpFunctionCall %void %main_1
+        %114 = OpLoad %v4float %x_GLF_color
+        %115 = OpCompositeConstruct %main_out %114
+               OpReturnValue %115
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %115 = OpLabel
-        %116 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %116
-        %117 = OpFunctionCall %void %main_1
-        %119 = OpLoad %v4float %x_GLF_color
-        %120 = OpCompositeConstruct %main_out %119
-        %118 = OpFunctionCall %void %tint_symbol_3 %120
+        %117 = OpLabel
+        %119 = OpLoad %v4float %gl_FragCoord_param_1
+        %118 = OpFunctionCall %main_out %main_inner %119
+        %120 = OpCompositeExtract %v4float %118 0
+               OpStore %x_GLF_color_1_1 %120
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.spvasm.expected.spvasm
index d4767b3..c4002c2 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "resolution"
@@ -15,8 +17,6 @@
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_13 "x_13"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %checkSwap_f1_f1_ "checkSwap_f1_f1_"
                OpName %a "a"
                OpName %b "b"
@@ -32,9 +32,11 @@
                OpName %temp "temp"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_9 NonWritable
@@ -45,15 +47,17 @@
                OpDecorate %x_13 NonWritable
                OpDecorate %x_13 DescriptorSet 0
                OpDecorate %x_13 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_float_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
@@ -61,11 +65,7 @@
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_13 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %bool = OpTypeBool
 %_ptr_Function_float = OpTypePointer Function %float
          %18 = OpTypeFunction %bool %_ptr_Function_float %_ptr_Function_float
@@ -95,7 +95,7 @@
    %float_10 = OpConstant %float 10
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %180 = OpTypeFunction %void %main_out
+        %180 = OpTypeFunction %main_out %v4float
 %checkSwap_f1_f1_ = OpFunction %bool None %18
           %a = OpFunctionParameter %_ptr_Function_float
           %b = OpFunctionParameter %_ptr_Function_float
@@ -286,20 +286,20 @@
         %154 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %180
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %180
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %184 = OpLabel
-        %185 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %185
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %185 = OpFunctionCall %void %main_1
+        %186 = OpLoad %v4float %x_GLF_color
+        %187 = OpCompositeConstruct %main_out %186
+               OpReturnValue %187
                OpFunctionEnd
        %main = OpFunction %void None %54
-        %187 = OpLabel
-        %188 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %188
-        %189 = OpFunctionCall %void %main_1
-        %191 = OpLoad %v4float %x_GLF_color
-        %192 = OpCompositeConstruct %main_out %191
-        %190 = OpFunctionCall %void %tint_symbol_3 %192
+        %189 = OpLabel
+        %191 = OpLoad %v4float %gl_FragCoord_param_1
+        %190 = OpFunctionCall %main_out %main_inner %191
+        %192 = OpCompositeExtract %v4float %190 0
+               OpStore %x_GLF_color_1_1 %192
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.wgsl.expected.spvasm
index d4767b3..c4002c2 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "resolution"
@@ -15,8 +17,6 @@
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_13 "x_13"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %checkSwap_f1_f1_ "checkSwap_f1_f1_"
                OpName %a "a"
                OpName %b "b"
@@ -32,9 +32,11 @@
                OpName %temp "temp"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_9 NonWritable
@@ -45,15 +47,17 @@
                OpDecorate %x_13 NonWritable
                OpDecorate %x_13 DescriptorSet 0
                OpDecorate %x_13 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_float_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
@@ -61,11 +65,7 @@
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_13 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %bool = OpTypeBool
 %_ptr_Function_float = OpTypePointer Function %float
          %18 = OpTypeFunction %bool %_ptr_Function_float %_ptr_Function_float
@@ -95,7 +95,7 @@
    %float_10 = OpConstant %float 10
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %180 = OpTypeFunction %void %main_out
+        %180 = OpTypeFunction %main_out %v4float
 %checkSwap_f1_f1_ = OpFunction %bool None %18
           %a = OpFunctionParameter %_ptr_Function_float
           %b = OpFunctionParameter %_ptr_Function_float
@@ -286,20 +286,20 @@
         %154 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %180
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %180
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %184 = OpLabel
-        %185 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %185
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %185 = OpFunctionCall %void %main_1
+        %186 = OpLoad %v4float %x_GLF_color
+        %187 = OpCompositeConstruct %main_out %186
+               OpReturnValue %187
                OpFunctionEnd
        %main = OpFunction %void None %54
-        %187 = OpLabel
-        %188 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %188
-        %189 = OpFunctionCall %void %main_1
-        %191 = OpLoad %v4float %x_GLF_color
-        %192 = OpCompositeConstruct %main_out %191
-        %190 = OpFunctionCall %void %tint_symbol_3 %192
+        %189 = OpLabel
+        %191 = OpLoad %v4float %gl_FragCoord_param_1
+        %190 = OpFunctionCall %main_out %main_inner %191
+        %192 = OpCompositeExtract %v4float %190 0
+               OpStore %x_GLF_color_1_1 %192
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.spvasm.expected.spvasm
index 75d9c10..11e08b3 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "resolution"
@@ -15,8 +17,6 @@
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_13 "x_13"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %checkSwap_f1_f1_ "checkSwap_f1_f1_"
                OpName %a "a"
                OpName %b "b"
@@ -45,9 +45,11 @@
                OpName %temp "temp"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_9 NonWritable
@@ -58,15 +60,17 @@
                OpDecorate %x_13 NonWritable
                OpDecorate %x_13 DescriptorSet 0
                OpDecorate %x_13 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_float_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
@@ -74,11 +78,7 @@
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_13 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %bool = OpTypeBool
 %_ptr_Function_float = OpTypePointer Function %float
          %18 = OpTypeFunction %bool %_ptr_Function_float %_ptr_Function_float
@@ -111,7 +111,7 @@
    %float_10 = OpConstant %float 10
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %234 = OpTypeFunction %void %main_out
+        %234 = OpTypeFunction %main_out %v4float
 %checkSwap_f1_f1_ = OpFunction %bool None %18
           %a = OpFunctionParameter %_ptr_Function_float
           %b = OpFunctionParameter %_ptr_Function_float
@@ -405,20 +405,20 @@
         %208 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %234
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %234
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %238 = OpLabel
-        %239 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %239
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %239 = OpFunctionCall %void %main_1
+        %240 = OpLoad %v4float %x_GLF_color
+        %241 = OpCompositeConstruct %main_out %240
+               OpReturnValue %241
                OpFunctionEnd
        %main = OpFunction %void None %109
-        %241 = OpLabel
-        %242 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %242
-        %243 = OpFunctionCall %void %main_1
-        %245 = OpLoad %v4float %x_GLF_color
-        %246 = OpCompositeConstruct %main_out %245
-        %244 = OpFunctionCall %void %tint_symbol_3 %246
+        %243 = OpLabel
+        %245 = OpLoad %v4float %gl_FragCoord_param_1
+        %244 = OpFunctionCall %main_out %main_inner %245
+        %246 = OpCompositeExtract %v4float %244 0
+               OpStore %x_GLF_color_1_1 %246
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.wgsl.expected.spvasm
index 75d9c10..11e08b3 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "resolution"
@@ -15,8 +17,6 @@
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_13 "x_13"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %checkSwap_f1_f1_ "checkSwap_f1_f1_"
                OpName %a "a"
                OpName %b "b"
@@ -45,9 +45,11 @@
                OpName %temp "temp"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_9 NonWritable
@@ -58,15 +60,17 @@
                OpDecorate %x_13 NonWritable
                OpDecorate %x_13 DescriptorSet 0
                OpDecorate %x_13 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_float_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
@@ -74,11 +78,7 @@
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_13 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %bool = OpTypeBool
 %_ptr_Function_float = OpTypePointer Function %float
          %18 = OpTypeFunction %bool %_ptr_Function_float %_ptr_Function_float
@@ -111,7 +111,7 @@
    %float_10 = OpConstant %float 10
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %234 = OpTypeFunction %void %main_out
+        %234 = OpTypeFunction %main_out %v4float
 %checkSwap_f1_f1_ = OpFunction %bool None %18
           %a = OpFunctionParameter %_ptr_Function_float
           %b = OpFunctionParameter %_ptr_Function_float
@@ -405,20 +405,20 @@
         %208 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %234
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %234
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %238 = OpLabel
-        %239 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %239
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %239 = OpFunctionCall %void %main_1
+        %240 = OpLoad %v4float %x_GLF_color
+        %241 = OpCompositeConstruct %main_out %240
+               OpReturnValue %241
                OpFunctionEnd
        %main = OpFunction %void None %109
-        %241 = OpLabel
-        %242 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %242
-        %243 = OpFunctionCall %void %main_1
-        %245 = OpLoad %v4float %x_GLF_color
-        %246 = OpCompositeConstruct %main_out %245
-        %244 = OpFunctionCall %void %tint_symbol_3 %246
+        %243 = OpLabel
+        %245 = OpLoad %v4float %gl_FragCoord_param_1
+        %244 = OpFunctionCall %main_out %main_inner %245
+        %246 = OpCompositeExtract %v4float %244 0
+               OpStore %x_GLF_color_1_1 %246
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.spvasm.expected.spvasm
index 5b40919..4292706 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %37 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %indexable "indexable"
                OpName %x_65 "x_65"
@@ -25,32 +25,32 @@
                OpName %x_69_phi "x_69_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -92,7 +92,7 @@
      %int_16 = OpConstant %int 16
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %110 = OpTypeFunction %void %main_out
+        %110 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %24
@@ -173,20 +173,20 @@
                OpStore %x_GLF_color %109
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %110
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %110
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %114 = OpLabel
-        %115 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %115
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %115 = OpFunctionCall %void %main_1
+        %116 = OpLoad %v4float %x_GLF_color
+        %117 = OpCompositeConstruct %main_out %116
+               OpReturnValue %117
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %117 = OpLabel
-        %118 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %118
-        %119 = OpFunctionCall %void %main_1
-        %121 = OpLoad %v4float %x_GLF_color
-        %122 = OpCompositeConstruct %main_out %121
-        %120 = OpFunctionCall %void %tint_symbol_3 %122
+        %119 = OpLabel
+        %121 = OpLoad %v4float %gl_FragCoord_param_1
+        %120 = OpFunctionCall %main_out %main_inner %121
+        %122 = OpCompositeExtract %v4float %120 0
+               OpStore %x_GLF_color_1_1 %122
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.wgsl.expected.spvasm
index 5b40919..4292706 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %37 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %indexable "indexable"
                OpName %x_65 "x_65"
@@ -25,32 +25,32 @@
                OpName %x_69_phi "x_69_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -92,7 +92,7 @@
      %int_16 = OpConstant %int 16
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %110 = OpTypeFunction %void %main_out
+        %110 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %24
@@ -173,20 +173,20 @@
                OpStore %x_GLF_color %109
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %110
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %110
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %114 = OpLabel
-        %115 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %115
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %115 = OpFunctionCall %void %main_1
+        %116 = OpLoad %v4float %x_GLF_color
+        %117 = OpCompositeConstruct %main_out %116
+               OpReturnValue %117
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %117 = OpLabel
-        %118 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %118
-        %119 = OpFunctionCall %void %main_1
-        %121 = OpLoad %v4float %x_GLF_color
-        %122 = OpCompositeConstruct %main_out %121
-        %120 = OpFunctionCall %void %tint_symbol_3 %122
+        %119 = OpLabel
+        %121 = OpLoad %v4float %gl_FragCoord_param_1
+        %120 = OpFunctionCall %main_out %main_inner %121
+        %122 = OpCompositeExtract %v4float %120 0
+               OpStore %x_GLF_color_1_1 %122
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.spvasm.expected.spvasm
index 9edd5c3..be911ea 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %43 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %indexable "indexable"
                OpName %x_71 "x_71"
@@ -25,32 +25,32 @@
                OpName %x_75_phi "x_75_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -95,7 +95,7 @@
      %int_16 = OpConstant %int 16
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %123 = OpTypeFunction %void %main_out
+        %123 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %24
@@ -188,20 +188,20 @@
                OpStore %x_GLF_color %122
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %123
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %123
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %127 = OpLabel
-        %128 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %128
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %128 = OpFunctionCall %void %main_1
+        %129 = OpLoad %v4float %x_GLF_color
+        %130 = OpCompositeConstruct %main_out %129
+               OpReturnValue %130
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %130 = OpLabel
-        %131 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %131
-        %132 = OpFunctionCall %void %main_1
-        %134 = OpLoad %v4float %x_GLF_color
-        %135 = OpCompositeConstruct %main_out %134
-        %133 = OpFunctionCall %void %tint_symbol_3 %135
+        %132 = OpLabel
+        %134 = OpLoad %v4float %gl_FragCoord_param_1
+        %133 = OpFunctionCall %main_out %main_inner %134
+        %135 = OpCompositeExtract %v4float %133 0
+               OpStore %x_GLF_color_1_1 %135
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.wgsl.expected.spvasm
index 9edd5c3..be911ea 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %43 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %indexable "indexable"
                OpName %x_71 "x_71"
@@ -25,32 +25,32 @@
                OpName %x_75_phi "x_75_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -95,7 +95,7 @@
      %int_16 = OpConstant %int 16
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %123 = OpTypeFunction %void %main_out
+        %123 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %24
@@ -188,20 +188,20 @@
                OpStore %x_GLF_color %122
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %123
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %123
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %127 = OpLabel
-        %128 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %128
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %128 = OpFunctionCall %void %main_1
+        %129 = OpLoad %v4float %x_GLF_color
+        %130 = OpCompositeConstruct %main_out %129
+               OpReturnValue %130
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %130 = OpLabel
-        %131 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %131
-        %132 = OpFunctionCall %void %main_1
-        %134 = OpLoad %v4float %x_GLF_color
-        %135 = OpCompositeConstruct %main_out %134
-        %133 = OpFunctionCall %void %tint_symbol_3 %135
+        %132 = OpLabel
+        %134 = OpLoad %v4float %gl_FragCoord_param_1
+        %133 = OpFunctionCall %main_out %main_inner %134
+        %135 = OpCompositeExtract %v4float %133 0
+               OpStore %x_GLF_color_1_1 %135
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.spvasm.expected.spvasm
index 2af7e74..f873f32 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %56 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_7 "x_7"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %c "c"
                OpName %x_51 "x_51"
@@ -55,31 +55,31 @@
                OpName %x_130 "x_130"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -118,7 +118,7 @@
       %int_3 = OpConstant %int 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %251 = OpTypeFunction %void %main_out
+        %251 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %c = OpVariable %_ptr_Function_v3float Function %22
@@ -440,20 +440,20 @@
                OpStore %x_GLF_color %250
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %251
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %251
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %255 = OpLabel
-        %256 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %256
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %256 = OpFunctionCall %void %main_1
+        %257 = OpLoad %v4float %x_GLF_color
+        %258 = OpCompositeConstruct %main_out %257
+               OpReturnValue %258
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %258 = OpLabel
-        %259 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %259
-        %260 = OpFunctionCall %void %main_1
-        %262 = OpLoad %v4float %x_GLF_color
-        %263 = OpCompositeConstruct %main_out %262
-        %261 = OpFunctionCall %void %tint_symbol_3 %263
+        %260 = OpLabel
+        %262 = OpLoad %v4float %gl_FragCoord_param_1
+        %261 = OpFunctionCall %main_out %main_inner %262
+        %263 = OpCompositeExtract %v4float %261 0
+               OpStore %x_GLF_color_1_1 %263
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.wgsl.expected.spvasm
index d0770ba..eb782e5 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %56 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_7 "x_7"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %c "c"
                OpName %x_51 "x_51"
@@ -55,31 +55,31 @@
                OpName %x_130 "x_130"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -118,7 +118,7 @@
       %int_3 = OpConstant %int 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %241 = OpTypeFunction %void %main_out
+        %241 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %c = OpVariable %_ptr_Function_v3float Function %22
@@ -430,20 +430,20 @@
                OpStore %x_GLF_color %240
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %241
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %241
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %245 = OpLabel
-        %246 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %246
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %246 = OpFunctionCall %void %main_1
+        %247 = OpLoad %v4float %x_GLF_color
+        %248 = OpCompositeConstruct %main_out %247
+               OpReturnValue %248
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %248 = OpLabel
-        %249 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %249
-        %250 = OpFunctionCall %void %main_1
-        %252 = OpLoad %v4float %x_GLF_color
-        %253 = OpCompositeConstruct %main_out %252
-        %251 = OpFunctionCall %void %tint_symbol_3 %253
+        %250 = OpLabel
+        %252 = OpLoad %v4float %gl_FragCoord_param_1
+        %251 = OpFunctionCall %main_out %main_inner %252
+        %253 = OpCompositeExtract %v4float %251 0
+               OpStore %x_GLF_color_1_1 %253
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.spvasm.expected.spvasm
index 77bd5f4..de934f4 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.spvasm.expected.spvasm
@@ -5,16 +5,16 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_7 "x_7"
                OpName %map "map"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %pos "pos"
                OpName %ipos "ipos"
@@ -61,23 +61,27 @@
                OpName %x_425_phi "x_425_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
                OpDecorate %_arr_int_uint_256 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
@@ -87,13 +91,9 @@
    %uint_256 = OpConstant %uint 256
 %_arr_int_uint_256 = OpTypeArray %int %uint_256
 %_ptr_Private__arr_int_uint_256 = OpTypePointer Private %_arr_int_uint_256
-         %16 = OpConstantNull %_arr_int_uint_256
-        %map = OpVariable %_ptr_Private__arr_int_uint_256 Private %16
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+         %20 = OpConstantNull %_arr_int_uint_256
+        %map = OpVariable %_ptr_Private__arr_int_uint_256 Private %20
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_Function_v2float = OpTypePointer Function %v2float
@@ -129,7 +129,7 @@
     %float_0 = OpConstant %float 0
         %531 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %532 = OpTypeFunction %void %main_out
+        %532 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %22
          %25 = OpLabel
         %pos = OpVariable %_ptr_Function_v2float Function %28
@@ -156,8 +156,8 @@
       %x_289 = OpVariable %_ptr_Function_int Function %35
       %x_295 = OpVariable %_ptr_Function_int Function %35
       %x_296 = OpVariable %_ptr_Function_int Function %35
-      %x_303 = OpVariable %_ptr_Function__arr_int_uint_256 Function %16
-      %x_304 = OpVariable %_ptr_Function__arr_int_uint_256 Function %16
+      %x_303 = OpVariable %_ptr_Function__arr_int_uint_256 Function %20
+      %x_304 = OpVariable %_ptr_Function__arr_int_uint_256 Function %20
       %x_315 = OpVariable %_ptr_Function_int Function %35
       %x_316 = OpVariable %_ptr_Function_int Function %35
       %x_359 = OpVariable %_ptr_Function_bool Function %40
@@ -169,7 +169,7 @@
   %x_282_phi = OpVariable %_ptr_Function_bool Function %40
   %x_290_phi = OpVariable %_ptr_Function_int Function %35
   %x_297_phi = OpVariable %_ptr_Function_int Function %35
-  %x_305_phi = OpVariable %_ptr_Function__arr_int_uint_256 Function %16
+  %x_305_phi = OpVariable %_ptr_Function__arr_int_uint_256 Function %20
   %x_317_phi = OpVariable %_ptr_Function_int Function %35
   %x_360_phi = OpVariable %_ptr_Function_bool Function %40
   %x_373_phi = OpVariable %_ptr_Function_bool Function %40
@@ -829,20 +829,20 @@
                OpStore %x_GLF_color %531
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %532
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %532
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %536 = OpLabel
-        %537 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %537
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %537 = OpFunctionCall %void %main_1
+        %538 = OpLoad %v4float %x_GLF_color
+        %539 = OpCompositeConstruct %main_out %538
+               OpReturnValue %539
                OpFunctionEnd
        %main = OpFunction %void None %22
-        %539 = OpLabel
-        %540 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %540
-        %541 = OpFunctionCall %void %main_1
-        %543 = OpLoad %v4float %x_GLF_color
-        %544 = OpCompositeConstruct %main_out %543
-        %542 = OpFunctionCall %void %tint_symbol_3 %544
+        %541 = OpLabel
+        %543 = OpLoad %v4float %gl_FragCoord_param_1
+        %542 = OpFunctionCall %main_out %main_inner %543
+        %544 = OpCompositeExtract %v4float %542 0
+               OpStore %x_GLF_color_1_1 %544
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.wgsl.expected.spvasm
index 77bd5f4..de934f4 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.wgsl.expected.spvasm
@@ -5,16 +5,16 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_7 "x_7"
                OpName %map "map"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %pos "pos"
                OpName %ipos "ipos"
@@ -61,23 +61,27 @@
                OpName %x_425_phi "x_425_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
                OpDecorate %_arr_int_uint_256 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
@@ -87,13 +91,9 @@
    %uint_256 = OpConstant %uint 256
 %_arr_int_uint_256 = OpTypeArray %int %uint_256
 %_ptr_Private__arr_int_uint_256 = OpTypePointer Private %_arr_int_uint_256
-         %16 = OpConstantNull %_arr_int_uint_256
-        %map = OpVariable %_ptr_Private__arr_int_uint_256 Private %16
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+         %20 = OpConstantNull %_arr_int_uint_256
+        %map = OpVariable %_ptr_Private__arr_int_uint_256 Private %20
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_Function_v2float = OpTypePointer Function %v2float
@@ -129,7 +129,7 @@
     %float_0 = OpConstant %float 0
         %531 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %532 = OpTypeFunction %void %main_out
+        %532 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %22
          %25 = OpLabel
         %pos = OpVariable %_ptr_Function_v2float Function %28
@@ -156,8 +156,8 @@
       %x_289 = OpVariable %_ptr_Function_int Function %35
       %x_295 = OpVariable %_ptr_Function_int Function %35
       %x_296 = OpVariable %_ptr_Function_int Function %35
-      %x_303 = OpVariable %_ptr_Function__arr_int_uint_256 Function %16
-      %x_304 = OpVariable %_ptr_Function__arr_int_uint_256 Function %16
+      %x_303 = OpVariable %_ptr_Function__arr_int_uint_256 Function %20
+      %x_304 = OpVariable %_ptr_Function__arr_int_uint_256 Function %20
       %x_315 = OpVariable %_ptr_Function_int Function %35
       %x_316 = OpVariable %_ptr_Function_int Function %35
       %x_359 = OpVariable %_ptr_Function_bool Function %40
@@ -169,7 +169,7 @@
   %x_282_phi = OpVariable %_ptr_Function_bool Function %40
   %x_290_phi = OpVariable %_ptr_Function_int Function %35
   %x_297_phi = OpVariable %_ptr_Function_int Function %35
-  %x_305_phi = OpVariable %_ptr_Function__arr_int_uint_256 Function %16
+  %x_305_phi = OpVariable %_ptr_Function__arr_int_uint_256 Function %20
   %x_317_phi = OpVariable %_ptr_Function_int Function %35
   %x_360_phi = OpVariable %_ptr_Function_bool Function %40
   %x_373_phi = OpVariable %_ptr_Function_bool Function %40
@@ -829,20 +829,20 @@
                OpStore %x_GLF_color %531
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %532
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %532
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %536 = OpLabel
-        %537 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %537
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %537 = OpFunctionCall %void %main_1
+        %538 = OpLoad %v4float %x_GLF_color
+        %539 = OpCompositeConstruct %main_out %538
+               OpReturnValue %539
                OpFunctionEnd
        %main = OpFunction %void None %22
-        %539 = OpLabel
-        %540 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %540
-        %541 = OpFunctionCall %void %main_1
-        %543 = OpLoad %v4float %x_GLF_color
-        %544 = OpCompositeConstruct %main_out %543
-        %542 = OpFunctionCall %void %tint_symbol_3 %544
+        %541 = OpLabel
+        %543 = OpLoad %v4float %gl_FragCoord_param_1
+        %542 = OpFunctionCall %main_out %main_inner %543
+        %544 = OpCompositeExtract %v4float %542 0
+               OpStore %x_GLF_color_1_1 %544
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.spvasm.expected.spvasm
index 25009f4..2b6e8e1 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.spvasm.expected.spvasm
@@ -5,16 +5,16 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_7 "x_7"
                OpName %map "map"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %pos "pos"
                OpName %ipos "ipos"
@@ -51,23 +51,27 @@
                OpName %x_401_phi "x_401_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
                OpDecorate %_arr_int_uint_256 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
@@ -77,13 +81,9 @@
    %uint_256 = OpConstant %uint 256
 %_arr_int_uint_256 = OpTypeArray %int %uint_256
 %_ptr_Private__arr_int_uint_256 = OpTypePointer Private %_arr_int_uint_256
-         %16 = OpConstantNull %_arr_int_uint_256
-        %map = OpVariable %_ptr_Private__arr_int_uint_256 Private %16
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+         %20 = OpConstantNull %_arr_int_uint_256
+        %map = OpVariable %_ptr_Private__arr_int_uint_256 Private %20
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_Function_v2float = OpTypePointer Function %v2float
@@ -118,7 +118,7 @@
     %float_0 = OpConstant %float 0
         %495 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %496 = OpTypeFunction %void %main_out
+        %496 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %22
          %25 = OpLabel
         %pos = OpVariable %_ptr_Function_v2float Function %28
@@ -751,20 +751,20 @@
                OpStore %x_GLF_color %495
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %496
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %496
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %500 = OpLabel
-        %501 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %501
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %501 = OpFunctionCall %void %main_1
+        %502 = OpLoad %v4float %x_GLF_color
+        %503 = OpCompositeConstruct %main_out %502
+               OpReturnValue %503
                OpFunctionEnd
        %main = OpFunction %void None %22
-        %503 = OpLabel
-        %504 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %504
-        %505 = OpFunctionCall %void %main_1
-        %507 = OpLoad %v4float %x_GLF_color
-        %508 = OpCompositeConstruct %main_out %507
-        %506 = OpFunctionCall %void %tint_symbol_3 %508
+        %505 = OpLabel
+        %507 = OpLoad %v4float %gl_FragCoord_param_1
+        %506 = OpFunctionCall %main_out %main_inner %507
+        %508 = OpCompositeExtract %v4float %506 0
+               OpStore %x_GLF_color_1_1 %508
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.wgsl.expected.spvasm
index 25009f4..2b6e8e1 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.wgsl.expected.spvasm
@@ -5,16 +5,16 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_7 "x_7"
                OpName %map "map"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %pos "pos"
                OpName %ipos "ipos"
@@ -51,23 +51,27 @@
                OpName %x_401_phi "x_401_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
                OpDecorate %_arr_int_uint_256 ArrayStride 4
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
@@ -77,13 +81,9 @@
    %uint_256 = OpConstant %uint 256
 %_arr_int_uint_256 = OpTypeArray %int %uint_256
 %_ptr_Private__arr_int_uint_256 = OpTypePointer Private %_arr_int_uint_256
-         %16 = OpConstantNull %_arr_int_uint_256
-        %map = OpVariable %_ptr_Private__arr_int_uint_256 Private %16
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+         %20 = OpConstantNull %_arr_int_uint_256
+        %map = OpVariable %_ptr_Private__arr_int_uint_256 Private %20
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %22 = OpTypeFunction %void
 %_ptr_Function_v2float = OpTypePointer Function %v2float
@@ -118,7 +118,7 @@
     %float_0 = OpConstant %float 0
         %495 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %496 = OpTypeFunction %void %main_out
+        %496 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %22
          %25 = OpLabel
         %pos = OpVariable %_ptr_Function_v2float Function %28
@@ -751,20 +751,20 @@
                OpStore %x_GLF_color %495
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %496
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %496
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %500 = OpLabel
-        %501 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %501
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %501 = OpFunctionCall %void %main_1
+        %502 = OpLoad %v4float %x_GLF_color
+        %503 = OpCompositeConstruct %main_out %502
+               OpReturnValue %503
                OpFunctionEnd
        %main = OpFunction %void None %22
-        %503 = OpLabel
-        %504 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %504
-        %505 = OpFunctionCall %void %main_1
-        %507 = OpLoad %v4float %x_GLF_color
-        %508 = OpCompositeConstruct %main_out %507
-        %506 = OpFunctionCall %void %tint_symbol_3 %508
+        %505 = OpLabel
+        %507 = OpLoad %v4float %gl_FragCoord_param_1
+        %506 = OpFunctionCall %main_out %main_inner %507
+        %508 = OpCompositeExtract %v4float %506 0
+               OpStore %x_GLF_color_1_1 %508
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.spvasm
index dc5e13f..f1c11c2 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
         %166 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_8 "x_8"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %temp "temp"
                OpName %data "data"
@@ -74,32 +74,32 @@
                OpName %x_257_phi "x_257_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -147,7 +147,7 @@
       %int_8 = OpConstant %int 8
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %404 = OpTypeFunction %void %main_out
+        %404 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %temp = OpVariable %_ptr_Function__arr_int_uint_10 Function %25
@@ -705,20 +705,20 @@
                OpStore %x_GLF_color %403
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %404
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %404
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %408 = OpLabel
-        %409 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %409
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %409 = OpFunctionCall %void %main_1
+        %410 = OpLoad %v4float %x_GLF_color
+        %411 = OpCompositeConstruct %main_out %410
+               OpReturnValue %411
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %411 = OpLabel
-        %412 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %412
-        %413 = OpFunctionCall %void %main_1
-        %415 = OpLoad %v4float %x_GLF_color
-        %416 = OpCompositeConstruct %main_out %415
-        %414 = OpFunctionCall %void %tint_symbol_3 %416
+        %413 = OpLabel
+        %415 = OpLoad %v4float %gl_FragCoord_param_1
+        %414 = OpFunctionCall %main_out %main_inner %415
+        %416 = OpCompositeExtract %v4float %414 0
+               OpStore %x_GLF_color_1_1 %416
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.wgsl.expected.spvasm
index 62be4a8..09fcfae 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
         %166 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_8 "x_8"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %temp "temp"
                OpName %data "data"
@@ -74,32 +74,32 @@
                OpName %x_257_phi "x_257_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -147,7 +147,7 @@
       %int_8 = OpConstant %int 8
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %408 = OpTypeFunction %void %main_out
+        %408 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %temp = OpVariable %_ptr_Function__arr_int_uint_10 Function %25
@@ -715,20 +715,20 @@
                OpStore %x_GLF_color %407
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %408
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %408
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %412 = OpLabel
-        %413 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %413
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %413 = OpFunctionCall %void %main_1
+        %414 = OpLoad %v4float %x_GLF_color
+        %415 = OpCompositeConstruct %main_out %414
+               OpReturnValue %415
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %415 = OpLabel
-        %416 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %416
-        %417 = OpFunctionCall %void %main_1
-        %419 = OpLoad %v4float %x_GLF_color
-        %420 = OpCompositeConstruct %main_out %419
-        %418 = OpFunctionCall %void %tint_symbol_3 %420
+        %417 = OpLabel
+        %419 = OpLoad %v4float %gl_FragCoord_param_1
+        %418 = OpFunctionCall %main_out %main_inner %419
+        %420 = OpCompositeExtract %v4float %418 0
+               OpStore %x_GLF_color_1_1 %420
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.spvasm
index 2cc6c8d..e95f0ce 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
         %164 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_8 "x_8"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %temp "temp"
                OpName %data "data"
@@ -74,32 +74,32 @@
                OpName %x_256_phi "x_256_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -146,7 +146,7 @@
       %int_8 = OpConstant %int 8
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %402 = OpTypeFunction %void %main_out
+        %402 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %temp = OpVariable %_ptr_Function__arr_int_uint_10 Function %25
@@ -701,20 +701,20 @@
                OpStore %x_GLF_color %401
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %402
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %402
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %406 = OpLabel
-        %407 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %407
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %407 = OpFunctionCall %void %main_1
+        %408 = OpLoad %v4float %x_GLF_color
+        %409 = OpCompositeConstruct %main_out %408
+               OpReturnValue %409
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %409 = OpLabel
-        %410 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %410
-        %411 = OpFunctionCall %void %main_1
-        %413 = OpLoad %v4float %x_GLF_color
-        %414 = OpCompositeConstruct %main_out %413
-        %412 = OpFunctionCall %void %tint_symbol_3 %414
+        %411 = OpLabel
+        %413 = OpLoad %v4float %gl_FragCoord_param_1
+        %412 = OpFunctionCall %main_out %main_inner %413
+        %414 = OpCompositeExtract %v4float %412 0
+               OpStore %x_GLF_color_1_1 %414
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.wgsl.expected.spvasm
index 4e098fd..95cd58b 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
         %164 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_8 "x_8"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %temp "temp"
                OpName %data "data"
@@ -74,32 +74,32 @@
                OpName %x_256_phi "x_256_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -146,7 +146,7 @@
       %int_8 = OpConstant %int 8
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %406 = OpTypeFunction %void %main_out
+        %406 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %temp = OpVariable %_ptr_Function__arr_int_uint_10 Function %25
@@ -711,20 +711,20 @@
                OpStore %x_GLF_color %405
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %406
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %406
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %410 = OpLabel
-        %411 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %411
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %411 = OpFunctionCall %void %main_1
+        %412 = OpLoad %v4float %x_GLF_color
+        %413 = OpCompositeConstruct %main_out %412
+               OpReturnValue %413
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %413 = OpLabel
-        %414 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %414
-        %415 = OpFunctionCall %void %main_1
-        %417 = OpLoad %v4float %x_GLF_color
-        %418 = OpCompositeConstruct %main_out %417
-        %416 = OpFunctionCall %void %tint_symbol_3 %418
+        %415 = OpLabel
+        %417 = OpLoad %v4float %gl_FragCoord_param_1
+        %416 = OpFunctionCall %main_out %main_inner %417
+        %418 = OpCompositeExtract %v4float %416 0
+               OpStore %x_GLF_color_1_1 %418
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.spvasm
index 446ddb5..6ec2be4 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %173 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %data "data"
                OpName %temp "temp"
                OpName %buf0 "buf0"
@@ -15,8 +17,6 @@
                OpName %x_28 "x_28"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %merge_i1_i1_i1_ "merge_i1_i1_i1_"
                OpName %from "from"
                OpName %mid "mid"
@@ -42,40 +42,40 @@
                OpName %grey "grey"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_28 NonWritable
                OpDecorate %x_28 DescriptorSet 0
                OpDecorate %x_28 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %_ptr_Private__arr_int_uint_10 = OpTypePointer Private %_arr_int_uint_10
-          %7 = OpConstantNull %_arr_int_uint_10
-       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-      %float = OpTypeFloat 32
+         %14 = OpConstantNull %_arr_int_uint_10
+       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
+       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_28 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int %_ptr_Function_int
@@ -119,7 +119,7 @@
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %396 = OpTypeFunction %void %main_out
+        %396 = OpTypeFunction %main_out %v4float
 %merge_i1_i1_i1_ = OpFunction %void None %23
        %from = OpFunctionParameter %_ptr_Function_int
         %mid = OpFunctionParameter %_ptr_Function_int
@@ -608,20 +608,20 @@
                OpStore %x_GLF_color %395
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %396
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %396
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %400 = OpLabel
-        %401 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %401
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %401 = OpFunctionCall %void %main_1
+        %402 = OpLoad %v4float %x_GLF_color
+        %403 = OpCompositeConstruct %main_out %402
+               OpReturnValue %403
                OpFunctionEnd
        %main = OpFunction %void None %128
-        %403 = OpLabel
-        %404 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %404
-        %405 = OpFunctionCall %void %main_1
-        %407 = OpLoad %v4float %x_GLF_color
-        %408 = OpCompositeConstruct %main_out %407
-        %406 = OpFunctionCall %void %tint_symbol_3 %408
+        %405 = OpLabel
+        %407 = OpLoad %v4float %gl_FragCoord_param_1
+        %406 = OpFunctionCall %main_out %main_inner %407
+        %408 = OpCompositeExtract %v4float %406 0
+               OpStore %x_GLF_color_1_1 %408
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.wgsl.expected.spvasm
index f7dffbe..25a6bc2 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %177 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %data "data"
                OpName %temp "temp"
                OpName %buf0 "buf0"
@@ -15,8 +17,6 @@
                OpName %x_28 "x_28"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %merge_i1_i1_i1_ "merge_i1_i1_i1_"
                OpName %from "from"
                OpName %mid "mid"
@@ -42,40 +42,40 @@
                OpName %grey "grey"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_28 NonWritable
                OpDecorate %x_28 DescriptorSet 0
                OpDecorate %x_28 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %_ptr_Private__arr_int_uint_10 = OpTypePointer Private %_arr_int_uint_10
-          %7 = OpConstantNull %_arr_int_uint_10
-       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-      %float = OpTypeFloat 32
+         %14 = OpConstantNull %_arr_int_uint_10
+       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
+       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_28 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int %_ptr_Function_int
@@ -119,7 +119,7 @@
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %400 = OpTypeFunction %void %main_out
+        %400 = OpTypeFunction %main_out %v4float
 %merge_i1_i1_i1_ = OpFunction %void None %23
        %from = OpFunctionParameter %_ptr_Function_int
         %mid = OpFunctionParameter %_ptr_Function_int
@@ -618,20 +618,20 @@
                OpStore %x_GLF_color %399
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %400
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %400
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %404 = OpLabel
-        %405 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %405
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %405 = OpFunctionCall %void %main_1
+        %406 = OpLoad %v4float %x_GLF_color
+        %407 = OpCompositeConstruct %main_out %406
+               OpReturnValue %407
                OpFunctionEnd
        %main = OpFunction %void None %132
-        %407 = OpLabel
-        %408 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %408
-        %409 = OpFunctionCall %void %main_1
-        %411 = OpLoad %v4float %x_GLF_color
-        %412 = OpCompositeConstruct %main_out %411
-        %410 = OpFunctionCall %void %tint_symbol_3 %412
+        %409 = OpLabel
+        %411 = OpLoad %v4float %gl_FragCoord_param_1
+        %410 = OpFunctionCall %main_out %main_inner %411
+        %412 = OpCompositeExtract %v4float %410 0
+               OpStore %x_GLF_color_1_1 %412
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.spvasm
index 9168706..bd5121d 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %173 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %data "data"
                OpName %temp "temp"
                OpName %buf0 "buf0"
@@ -15,8 +17,6 @@
                OpName %x_28 "x_28"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %merge_i1_i1_i1_ "merge_i1_i1_i1_"
                OpName %from "from"
                OpName %mid "mid"
@@ -43,40 +43,40 @@
                OpName %guard233 "guard233"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_28 NonWritable
                OpDecorate %x_28 DescriptorSet 0
                OpDecorate %x_28 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %_ptr_Private__arr_int_uint_10 = OpTypePointer Private %_arr_int_uint_10
-          %7 = OpConstantNull %_arr_int_uint_10
-       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-      %float = OpTypeFloat 32
+         %14 = OpConstantNull %_arr_int_uint_10
+       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
+       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_28 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int %_ptr_Function_int
@@ -125,7 +125,7 @@
     %float_0 = OpConstant %float 0
     %v3float = OpTypeVector %float 3
    %main_out = OpTypeStruct %v4float
-        %420 = OpTypeFunction %void %main_out
+        %420 = OpTypeFunction %main_out %v4float
 %merge_i1_i1_i1_ = OpFunction %void None %23
        %from = OpFunctionParameter %_ptr_Function_int
         %mid = OpFunctionParameter %_ptr_Function_int
@@ -649,20 +649,20 @@
                OpStore %x_GLF_color %419
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %420
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %420
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %424 = OpLabel
-        %425 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %425
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %425 = OpFunctionCall %void %main_1
+        %426 = OpLoad %v4float %x_GLF_color
+        %427 = OpCompositeConstruct %main_out %426
+               OpReturnValue %427
                OpFunctionEnd
        %main = OpFunction %void None %128
-        %427 = OpLabel
-        %428 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %428
-        %429 = OpFunctionCall %void %main_1
-        %431 = OpLoad %v4float %x_GLF_color
-        %432 = OpCompositeConstruct %main_out %431
-        %430 = OpFunctionCall %void %tint_symbol_3 %432
+        %429 = OpLabel
+        %431 = OpLoad %v4float %gl_FragCoord_param_1
+        %430 = OpFunctionCall %main_out %main_inner %431
+        %432 = OpCompositeExtract %v4float %430 0
+               OpStore %x_GLF_color_1_1 %432
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.wgsl.expected.spvasm
index 2f3113f..62814e3 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %177 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %data "data"
                OpName %temp "temp"
                OpName %buf0 "buf0"
@@ -15,8 +17,6 @@
                OpName %x_28 "x_28"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %merge_i1_i1_i1_ "merge_i1_i1_i1_"
                OpName %from "from"
                OpName %mid "mid"
@@ -43,40 +43,40 @@
                OpName %guard233 "guard233"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_28 NonWritable
                OpDecorate %x_28 DescriptorSet 0
                OpDecorate %x_28 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %_ptr_Private__arr_int_uint_10 = OpTypePointer Private %_arr_int_uint_10
-          %7 = OpConstantNull %_arr_int_uint_10
-       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-      %float = OpTypeFloat 32
+         %14 = OpConstantNull %_arr_int_uint_10
+       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
+       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_28 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int %_ptr_Function_int
@@ -125,7 +125,7 @@
     %float_0 = OpConstant %float 0
     %v3float = OpTypeVector %float 3
    %main_out = OpTypeStruct %v4float
-        %424 = OpTypeFunction %void %main_out
+        %424 = OpTypeFunction %main_out %v4float
 %merge_i1_i1_i1_ = OpFunction %void None %23
        %from = OpFunctionParameter %_ptr_Function_int
         %mid = OpFunctionParameter %_ptr_Function_int
@@ -659,20 +659,20 @@
                OpStore %x_GLF_color %423
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %424
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %424
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %428 = OpLabel
-        %429 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %429
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %429 = OpFunctionCall %void %main_1
+        %430 = OpLoad %v4float %x_GLF_color
+        %431 = OpCompositeConstruct %main_out %430
+               OpReturnValue %431
                OpFunctionEnd
        %main = OpFunction %void None %132
-        %431 = OpLabel
-        %432 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %432
-        %433 = OpFunctionCall %void %main_1
-        %435 = OpLoad %v4float %x_GLF_color
-        %436 = OpCompositeConstruct %main_out %435
-        %434 = OpFunctionCall %void %tint_symbol_3 %436
+        %433 = OpLabel
+        %435 = OpLoad %v4float %gl_FragCoord_param_1
+        %434 = OpFunctionCall %main_out %main_inner %435
+        %436 = OpCompositeExtract %v4float %434 0
+               OpStore %x_GLF_color_1_1 %436
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.spvasm
index 0fda3bd..63aeb8c 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %286 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %data "data"
                OpName %temp "temp"
                OpName %buf0 "buf0"
@@ -15,8 +17,6 @@
                OpName %x_28 "x_28"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %merge_i1_i1_i1_ "merge_i1_i1_i1_"
                OpName %from "from"
                OpName %mid "mid"
@@ -60,40 +60,40 @@
                OpName %grey "grey"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_28 NonWritable
                OpDecorate %x_28 DescriptorSet 0
                OpDecorate %x_28 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %_ptr_Private__arr_int_uint_10 = OpTypePointer Private %_arr_int_uint_10
-          %7 = OpConstantNull %_arr_int_uint_10
-       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-      %float = OpTypeFloat 32
+         %14 = OpConstantNull %_arr_int_uint_10
+       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
+       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_28 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int %_ptr_Function_int
@@ -138,7 +138,7 @@
       %int_8 = OpConstant %int 8
     %v3float = OpTypeVector %float 3
    %main_out = OpTypeStruct %v4float
-        %505 = OpTypeFunction %void %main_out
+        %505 = OpTypeFunction %main_out %v4float
 %merge_i1_i1_i1_ = OpFunction %void None %23
        %from = OpFunctionParameter %_ptr_Function_int
         %mid = OpFunctionParameter %_ptr_Function_int
@@ -823,20 +823,20 @@
                OpStore %x_GLF_color %504
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %505
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %505
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %509 = OpLabel
-        %510 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %510
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %510 = OpFunctionCall %void %main_1
+        %511 = OpLoad %v4float %x_GLF_color
+        %512 = OpCompositeConstruct %main_out %511
+               OpReturnValue %512
                OpFunctionEnd
        %main = OpFunction %void None %242
-        %512 = OpLabel
-        %513 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %513
-        %514 = OpFunctionCall %void %main_1
-        %516 = OpLoad %v4float %x_GLF_color
-        %517 = OpCompositeConstruct %main_out %516
-        %515 = OpFunctionCall %void %tint_symbol_3 %517
+        %514 = OpLabel
+        %516 = OpLoad %v4float %gl_FragCoord_param_1
+        %515 = OpFunctionCall %main_out %main_inner %516
+        %517 = OpCompositeExtract %v4float %515 0
+               OpStore %x_GLF_color_1_1 %517
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.wgsl.expected.spvasm
index 77c510c..592eb4f 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %290 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %data "data"
                OpName %temp "temp"
                OpName %buf0 "buf0"
@@ -15,8 +17,6 @@
                OpName %x_28 "x_28"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %merge_i1_i1_i1_ "merge_i1_i1_i1_"
                OpName %from "from"
                OpName %mid "mid"
@@ -60,40 +60,40 @@
                OpName %grey "grey"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_28 NonWritable
                OpDecorate %x_28 DescriptorSet 0
                OpDecorate %x_28 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %_ptr_Private__arr_int_uint_10 = OpTypePointer Private %_arr_int_uint_10
-          %7 = OpConstantNull %_arr_int_uint_10
-       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-      %float = OpTypeFloat 32
+         %14 = OpConstantNull %_arr_int_uint_10
+       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
+       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_28 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int %_ptr_Function_int
@@ -138,7 +138,7 @@
       %int_8 = OpConstant %int 8
     %v3float = OpTypeVector %float 3
    %main_out = OpTypeStruct %v4float
-        %509 = OpTypeFunction %void %main_out
+        %509 = OpTypeFunction %main_out %v4float
 %merge_i1_i1_i1_ = OpFunction %void None %23
        %from = OpFunctionParameter %_ptr_Function_int
         %mid = OpFunctionParameter %_ptr_Function_int
@@ -833,20 +833,20 @@
                OpStore %x_GLF_color %508
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %509
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %509
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %513 = OpLabel
-        %514 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %514
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %514 = OpFunctionCall %void %main_1
+        %515 = OpLoad %v4float %x_GLF_color
+        %516 = OpCompositeConstruct %main_out %515
+               OpReturnValue %516
                OpFunctionEnd
        %main = OpFunction %void None %246
-        %516 = OpLabel
-        %517 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %517
-        %518 = OpFunctionCall %void %main_1
-        %520 = OpLoad %v4float %x_GLF_color
-        %521 = OpCompositeConstruct %main_out %520
-        %519 = OpFunctionCall %void %tint_symbol_3 %521
+        %518 = OpLabel
+        %520 = OpLoad %v4float %gl_FragCoord_param_1
+        %519 = OpFunctionCall %main_out %main_inner %520
+        %521 = OpCompositeExtract %v4float %519 0
+               OpStore %x_GLF_color_1_1 %521
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.spvasm
index b0327f0..3f88a65 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %284 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %data "data"
                OpName %temp "temp"
                OpName %buf0 "buf0"
@@ -15,8 +17,6 @@
                OpName %x_28 "x_28"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %merge_i1_i1_i1_ "merge_i1_i1_i1_"
                OpName %from "from"
                OpName %mid "mid"
@@ -60,40 +60,40 @@
                OpName %grey "grey"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_28 NonWritable
                OpDecorate %x_28 DescriptorSet 0
                OpDecorate %x_28 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %_ptr_Private__arr_int_uint_10 = OpTypePointer Private %_arr_int_uint_10
-          %7 = OpConstantNull %_arr_int_uint_10
-       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-      %float = OpTypeFloat 32
+         %14 = OpConstantNull %_arr_int_uint_10
+       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
+       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_28 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int %_ptr_Function_int
@@ -138,7 +138,7 @@
       %int_8 = OpConstant %int 8
     %v3float = OpTypeVector %float 3
    %main_out = OpTypeStruct %v4float
-        %503 = OpTypeFunction %void %main_out
+        %503 = OpTypeFunction %main_out %v4float
 %merge_i1_i1_i1_ = OpFunction %void None %23
        %from = OpFunctionParameter %_ptr_Function_int
         %mid = OpFunctionParameter %_ptr_Function_int
@@ -821,20 +821,20 @@
                OpStore %x_GLF_color %502
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %503
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %503
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %507 = OpLabel
-        %508 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %508
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %508 = OpFunctionCall %void %main_1
+        %509 = OpLoad %v4float %x_GLF_color
+        %510 = OpCompositeConstruct %main_out %509
+               OpReturnValue %510
                OpFunctionEnd
        %main = OpFunction %void None %240
-        %510 = OpLabel
-        %511 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %511
-        %512 = OpFunctionCall %void %main_1
-        %514 = OpLoad %v4float %x_GLF_color
-        %515 = OpCompositeConstruct %main_out %514
-        %513 = OpFunctionCall %void %tint_symbol_3 %515
+        %512 = OpLabel
+        %514 = OpLoad %v4float %gl_FragCoord_param_1
+        %513 = OpFunctionCall %main_out %main_inner %514
+        %515 = OpCompositeExtract %v4float %513 0
+               OpStore %x_GLF_color_1_1 %515
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.wgsl.expected.spvasm
index 0bab964..64bc0c1 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %288 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %data "data"
                OpName %temp "temp"
                OpName %buf0 "buf0"
@@ -15,8 +17,6 @@
                OpName %x_28 "x_28"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %merge_i1_i1_i1_ "merge_i1_i1_i1_"
                OpName %from "from"
                OpName %mid "mid"
@@ -60,40 +60,40 @@
                OpName %grey "grey"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_28 NonWritable
                OpDecorate %x_28 DescriptorSet 0
                OpDecorate %x_28 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %_ptr_Private__arr_int_uint_10 = OpTypePointer Private %_arr_int_uint_10
-          %7 = OpConstantNull %_arr_int_uint_10
-       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-      %float = OpTypeFloat 32
+         %14 = OpConstantNull %_arr_int_uint_10
+       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
+       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_28 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int %_ptr_Function_int
@@ -138,7 +138,7 @@
       %int_8 = OpConstant %int 8
     %v3float = OpTypeVector %float 3
    %main_out = OpTypeStruct %v4float
-        %507 = OpTypeFunction %void %main_out
+        %507 = OpTypeFunction %main_out %v4float
 %merge_i1_i1_i1_ = OpFunction %void None %23
        %from = OpFunctionParameter %_ptr_Function_int
         %mid = OpFunctionParameter %_ptr_Function_int
@@ -831,20 +831,20 @@
                OpStore %x_GLF_color %506
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %507
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %507
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %511 = OpLabel
-        %512 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %512
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %512 = OpFunctionCall %void %main_1
+        %513 = OpLoad %v4float %x_GLF_color
+        %514 = OpCompositeConstruct %main_out %513
+               OpReturnValue %514
                OpFunctionEnd
        %main = OpFunction %void None %244
-        %514 = OpLabel
-        %515 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %515
-        %516 = OpFunctionCall %void %main_1
-        %518 = OpLoad %v4float %x_GLF_color
-        %519 = OpCompositeConstruct %main_out %518
-        %517 = OpFunctionCall %void %tint_symbol_3 %519
+        %516 = OpLabel
+        %518 = OpLoad %v4float %gl_FragCoord_param_1
+        %517 = OpFunctionCall %main_out %main_inner %518
+        %519 = OpCompositeExtract %v4float %517 0
+               OpStore %x_GLF_color_1_1 %519
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.spvasm
index b86fd08..f5ab977 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %250 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %data "data"
                OpName %temp "temp"
                OpName %buf0 "buf0"
@@ -15,8 +17,6 @@
                OpName %x_28 "x_28"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %merge_i1_i1_i1_ "merge_i1_i1_i1_"
                OpName %from "from"
                OpName %mid "mid"
@@ -41,8 +41,8 @@
                OpName %grey "grey"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
                OpName %mergeSort_ "mergeSort_"
                OpName %low "low"
@@ -55,37 +55,37 @@
                OpName %param "param"
                OpName %param_1 "param_1"
                OpName %param_2 "param_2"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_28 NonWritable
                OpDecorate %x_28 DescriptorSet 0
                OpDecorate %x_28 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %_ptr_Private__arr_int_uint_10 = OpTypePointer Private %_arr_int_uint_10
-          %7 = OpConstantNull %_arr_int_uint_10
-       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-      %float = OpTypeFloat 32
+         %14 = OpConstantNull %_arr_int_uint_10
+       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
+       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_28 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int %_ptr_Function_int
@@ -130,7 +130,7 @@
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %395 = OpTypeFunction %void %main_out
+        %395 = OpTypeFunction %main_out %v4float
 %merge_i1_i1_i1_ = OpFunction %void None %23
        %from = OpFunctionParameter %_ptr_Function_int
         %mid = OpFunctionParameter %_ptr_Function_int
@@ -617,21 +617,21 @@
                OpStore %x_GLF_color %394
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %395
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %395
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %399 = OpLabel
-        %400 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %400
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %400 = OpFunctionCall %void %main_1
+        %401 = OpLoad %v4float %x_GLF_color
+        %402 = OpCompositeConstruct %main_out %401
+               OpReturnValue %402
                OpFunctionEnd
        %main = OpFunction %void None %128
-        %402 = OpLabel
-        %403 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %403
-        %404 = OpFunctionCall %void %main_1
-        %406 = OpLoad %v4float %x_GLF_color
-        %407 = OpCompositeConstruct %main_out %406
-        %405 = OpFunctionCall %void %tint_symbol_3 %407
+        %404 = OpLabel
+        %406 = OpLoad %v4float %gl_FragCoord_param_1
+        %405 = OpFunctionCall %main_out %main_inner %406
+        %407 = OpCompositeExtract %v4float %405 0
+               OpStore %x_GLF_color_1_1 %407
                OpReturn
                OpFunctionEnd
  %mergeSort_ = OpFunction %void None %128
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.wgsl.expected.spvasm
index 6f99e9f..34a9af0 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %254 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %data "data"
                OpName %temp "temp"
                OpName %buf0 "buf0"
@@ -15,8 +17,6 @@
                OpName %x_28 "x_28"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %merge_i1_i1_i1_ "merge_i1_i1_i1_"
                OpName %from "from"
                OpName %mid "mid"
@@ -41,8 +41,8 @@
                OpName %grey "grey"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
                OpName %mergeSort_ "mergeSort_"
                OpName %low "low"
@@ -55,37 +55,37 @@
                OpName %param "param"
                OpName %param_1 "param_1"
                OpName %param_2 "param_2"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_28 NonWritable
                OpDecorate %x_28 DescriptorSet 0
                OpDecorate %x_28 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %_ptr_Private__arr_int_uint_10 = OpTypePointer Private %_arr_int_uint_10
-          %7 = OpConstantNull %_arr_int_uint_10
-       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-      %float = OpTypeFloat 32
+         %14 = OpConstantNull %_arr_int_uint_10
+       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
+       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_28 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int %_ptr_Function_int
@@ -130,7 +130,7 @@
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %399 = OpTypeFunction %void %main_out
+        %399 = OpTypeFunction %main_out %v4float
 %merge_i1_i1_i1_ = OpFunction %void None %23
        %from = OpFunctionParameter %_ptr_Function_int
         %mid = OpFunctionParameter %_ptr_Function_int
@@ -627,21 +627,21 @@
                OpStore %x_GLF_color %398
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %399
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %399
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %403 = OpLabel
-        %404 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %404
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %404 = OpFunctionCall %void %main_1
+        %405 = OpLoad %v4float %x_GLF_color
+        %406 = OpCompositeConstruct %main_out %405
+               OpReturnValue %406
                OpFunctionEnd
        %main = OpFunction %void None %132
-        %406 = OpLabel
-        %407 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %407
-        %408 = OpFunctionCall %void %main_1
-        %410 = OpLoad %v4float %x_GLF_color
-        %411 = OpCompositeConstruct %main_out %410
-        %409 = OpFunctionCall %void %tint_symbol_3 %411
+        %408 = OpLabel
+        %410 = OpLoad %v4float %gl_FragCoord_param_1
+        %409 = OpFunctionCall %main_out %main_inner %410
+        %411 = OpCompositeExtract %v4float %409 0
+               OpStore %x_GLF_color_1_1 %411
                OpReturn
                OpFunctionEnd
  %mergeSort_ = OpFunction %void None %132
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.spvasm
index 06e5ba8..cd54ca6 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %248 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %data "data"
                OpName %temp "temp"
                OpName %buf0 "buf0"
@@ -15,8 +17,6 @@
                OpName %x_28 "x_28"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %merge_i1_i1_i1_ "merge_i1_i1_i1_"
                OpName %from "from"
                OpName %mid "mid"
@@ -41,8 +41,8 @@
                OpName %grey "grey"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
                OpName %mergeSort_ "mergeSort_"
                OpName %low "low"
@@ -55,37 +55,37 @@
                OpName %param "param"
                OpName %param_1 "param_1"
                OpName %param_2 "param_2"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_28 NonWritable
                OpDecorate %x_28 DescriptorSet 0
                OpDecorate %x_28 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %_ptr_Private__arr_int_uint_10 = OpTypePointer Private %_arr_int_uint_10
-          %7 = OpConstantNull %_arr_int_uint_10
-       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-      %float = OpTypeFloat 32
+         %14 = OpConstantNull %_arr_int_uint_10
+       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
+       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_28 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int %_ptr_Function_int
@@ -129,7 +129,7 @@
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %393 = OpTypeFunction %void %main_out
+        %393 = OpTypeFunction %main_out %v4float
 %merge_i1_i1_i1_ = OpFunction %void None %23
        %from = OpFunctionParameter %_ptr_Function_int
         %mid = OpFunctionParameter %_ptr_Function_int
@@ -613,21 +613,21 @@
                OpStore %x_GLF_color %392
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %393
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %393
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %397 = OpLabel
-        %398 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %398
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %398 = OpFunctionCall %void %main_1
+        %399 = OpLoad %v4float %x_GLF_color
+        %400 = OpCompositeConstruct %main_out %399
+               OpReturnValue %400
                OpFunctionEnd
        %main = OpFunction %void None %128
-        %400 = OpLabel
-        %401 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %401
-        %402 = OpFunctionCall %void %main_1
-        %404 = OpLoad %v4float %x_GLF_color
-        %405 = OpCompositeConstruct %main_out %404
-        %403 = OpFunctionCall %void %tint_symbol_3 %405
+        %402 = OpLabel
+        %404 = OpLoad %v4float %gl_FragCoord_param_1
+        %403 = OpFunctionCall %main_out %main_inner %404
+        %405 = OpCompositeExtract %v4float %403 0
+               OpStore %x_GLF_color_1_1 %405
                OpReturn
                OpFunctionEnd
  %mergeSort_ = OpFunction %void None %128
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.wgsl.expected.spvasm
index a502034..5965e67 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %252 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %data "data"
                OpName %temp "temp"
                OpName %buf0 "buf0"
@@ -15,8 +17,6 @@
                OpName %x_28 "x_28"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %merge_i1_i1_i1_ "merge_i1_i1_i1_"
                OpName %from "from"
                OpName %mid "mid"
@@ -41,8 +41,8 @@
                OpName %grey "grey"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
                OpName %mergeSort_ "mergeSort_"
                OpName %low "low"
@@ -55,37 +55,37 @@
                OpName %param "param"
                OpName %param_1 "param_1"
                OpName %param_2 "param_2"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_28 NonWritable
                OpDecorate %x_28 DescriptorSet 0
                OpDecorate %x_28 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %_ptr_Private__arr_int_uint_10 = OpTypePointer Private %_arr_int_uint_10
-          %7 = OpConstantNull %_arr_int_uint_10
-       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-      %float = OpTypeFloat 32
+         %14 = OpConstantNull %_arr_int_uint_10
+       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
+       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_28 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int %_ptr_Function_int
@@ -129,7 +129,7 @@
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %397 = OpTypeFunction %void %main_out
+        %397 = OpTypeFunction %main_out %v4float
 %merge_i1_i1_i1_ = OpFunction %void None %23
        %from = OpFunctionParameter %_ptr_Function_int
         %mid = OpFunctionParameter %_ptr_Function_int
@@ -623,21 +623,21 @@
                OpStore %x_GLF_color %396
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %397
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %397
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %401 = OpLabel
-        %402 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %402
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %402 = OpFunctionCall %void %main_1
+        %403 = OpLoad %v4float %x_GLF_color
+        %404 = OpCompositeConstruct %main_out %403
+               OpReturnValue %404
                OpFunctionEnd
        %main = OpFunction %void None %132
-        %404 = OpLabel
-        %405 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %405
-        %406 = OpFunctionCall %void %main_1
-        %408 = OpLoad %v4float %x_GLF_color
-        %409 = OpCompositeConstruct %main_out %408
-        %407 = OpFunctionCall %void %tint_symbol_3 %409
+        %406 = OpLabel
+        %408 = OpLoad %v4float %gl_FragCoord_param_1
+        %407 = OpFunctionCall %main_out %main_inner %408
+        %409 = OpCompositeExtract %v4float %407 0
+               OpStore %x_GLF_color_1_1 %409
                OpReturn
                OpFunctionEnd
  %mergeSort_ = OpFunction %void None %132
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.spvasm.expected.spvasm
index d89e65c..1040dc6 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %indexable "indexable"
                OpName %x_77 "x_77"
@@ -32,32 +32,32 @@
                OpName %x_114 "x_114"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -107,7 +107,7 @@
         %167 = OpConstantComposite %_arr_v4float_uint_16 %151 %153 %154 %155 %156 %157 %158 %159 %151 %160 %161 %162 %163 %164 %165 %166
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %172 = OpTypeFunction %void %main_out
+        %172 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %24
@@ -273,20 +273,20 @@
                OpStore %x_GLF_color %171
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %172
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %172
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %176 = OpLabel
-        %177 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %177
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %177 = OpFunctionCall %void %main_1
+        %178 = OpLoad %v4float %x_GLF_color
+        %179 = OpCompositeConstruct %main_out %178
+               OpReturnValue %179
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %179 = OpLabel
-        %180 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %180
-        %181 = OpFunctionCall %void %main_1
-        %183 = OpLoad %v4float %x_GLF_color
-        %184 = OpCompositeConstruct %main_out %183
-        %182 = OpFunctionCall %void %tint_symbol_3 %184
+        %181 = OpLabel
+        %183 = OpLoad %v4float %gl_FragCoord_param_1
+        %182 = OpFunctionCall %main_out %main_inner %183
+        %184 = OpCompositeExtract %v4float %182 0
+               OpStore %x_GLF_color_1_1 %184
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.wgsl.expected.spvasm
index d89e65c..1040dc6 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %indexable "indexable"
                OpName %x_77 "x_77"
@@ -32,32 +32,32 @@
                OpName %x_114 "x_114"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -107,7 +107,7 @@
         %167 = OpConstantComposite %_arr_v4float_uint_16 %151 %153 %154 %155 %156 %157 %158 %159 %151 %160 %161 %162 %163 %164 %165 %166
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %172 = OpTypeFunction %void %main_out
+        %172 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %24
@@ -273,20 +273,20 @@
                OpStore %x_GLF_color %171
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %172
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %172
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %176 = OpLabel
-        %177 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %177
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %177 = OpFunctionCall %void %main_1
+        %178 = OpLoad %v4float %x_GLF_color
+        %179 = OpCompositeConstruct %main_out %178
+               OpReturnValue %179
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %179 = OpLabel
-        %180 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %180
-        %181 = OpFunctionCall %void %main_1
-        %183 = OpLoad %v4float %x_GLF_color
-        %184 = OpCompositeConstruct %main_out %183
-        %182 = OpFunctionCall %void %tint_symbol_3 %184
+        %181 = OpLabel
+        %183 = OpLoad %v4float %gl_FragCoord_param_1
+        %182 = OpFunctionCall %main_out %main_inner %183
+        %184 = OpCompositeExtract %v4float %182 0
+               OpStore %x_GLF_color_1_1 %184
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.spvasm.expected.spvasm
index 0b49352..56656ad 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %indexable "indexable"
                OpName %x_80 "x_80"
@@ -32,32 +32,32 @@
                OpName %x_117 "x_117"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -109,7 +109,7 @@
         %170 = OpConstantComposite %_arr_v4float_uint_16 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %175 = OpTypeFunction %void %main_out
+        %175 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %24
@@ -278,20 +278,20 @@
                OpStore %x_GLF_color %174
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %175
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %175
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %179 = OpLabel
-        %180 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %180
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %180 = OpFunctionCall %void %main_1
+        %181 = OpLoad %v4float %x_GLF_color
+        %182 = OpCompositeConstruct %main_out %181
+               OpReturnValue %182
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %182 = OpLabel
-        %183 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %183
-        %184 = OpFunctionCall %void %main_1
-        %186 = OpLoad %v4float %x_GLF_color
-        %187 = OpCompositeConstruct %main_out %186
-        %185 = OpFunctionCall %void %tint_symbol_3 %187
+        %184 = OpLabel
+        %186 = OpLoad %v4float %gl_FragCoord_param_1
+        %185 = OpFunctionCall %main_out %main_inner %186
+        %187 = OpCompositeExtract %v4float %185 0
+               OpStore %x_GLF_color_1_1 %187
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.wgsl.expected.spvasm
index 0b49352..56656ad 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %indexable "indexable"
                OpName %x_80 "x_80"
@@ -32,32 +32,32 @@
                OpName %x_117 "x_117"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -109,7 +109,7 @@
         %170 = OpConstantComposite %_arr_v4float_uint_16 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %175 = OpTypeFunction %void %main_out
+        %175 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %24
@@ -278,20 +278,20 @@
                OpStore %x_GLF_color %174
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %175
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %175
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %179 = OpLabel
-        %180 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %180
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %180 = OpFunctionCall %void %main_1
+        %181 = OpLoad %v4float %x_GLF_color
+        %182 = OpCompositeConstruct %main_out %181
+               OpReturnValue %182
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %182 = OpLabel
-        %183 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %183
-        %184 = OpFunctionCall %void %main_1
-        %186 = OpLoad %v4float %x_GLF_color
-        %187 = OpCompositeConstruct %main_out %186
-        %185 = OpFunctionCall %void %tint_symbol_3 %187
+        %184 = OpLabel
+        %186 = OpLoad %v4float %gl_FragCoord_param_1
+        %185 = OpFunctionCall %main_out %main_inner %186
+        %187 = OpCompositeExtract %v4float %185 0
+               OpStore %x_GLF_color_1_1 %187
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.spvasm.expected.spvasm
index 2951010..4dc817a 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %indexable "indexable"
                OpName %x_76 "x_76"
@@ -32,32 +32,32 @@
                OpName %x_113 "x_113"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -106,7 +106,7 @@
         %167 = OpConstantComposite %_arr_v4float_uint_16 %151 %153 %154 %155 %156 %157 %158 %159 %151 %160 %161 %162 %163 %164 %165 %166
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %172 = OpTypeFunction %void %main_out
+        %172 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %24
@@ -273,20 +273,20 @@
                OpStore %x_GLF_color %171
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %172
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %172
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %176 = OpLabel
-        %177 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %177
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %177 = OpFunctionCall %void %main_1
+        %178 = OpLoad %v4float %x_GLF_color
+        %179 = OpCompositeConstruct %main_out %178
+               OpReturnValue %179
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %179 = OpLabel
-        %180 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %180
-        %181 = OpFunctionCall %void %main_1
-        %183 = OpLoad %v4float %x_GLF_color
-        %184 = OpCompositeConstruct %main_out %183
-        %182 = OpFunctionCall %void %tint_symbol_3 %184
+        %181 = OpLabel
+        %183 = OpLoad %v4float %gl_FragCoord_param_1
+        %182 = OpFunctionCall %main_out %main_inner %183
+        %184 = OpCompositeExtract %v4float %182 0
+               OpStore %x_GLF_color_1_1 %184
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.wgsl.expected.spvasm
index 2951010..4dc817a 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %indexable "indexable"
                OpName %x_76 "x_76"
@@ -32,32 +32,32 @@
                OpName %x_113 "x_113"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -106,7 +106,7 @@
         %167 = OpConstantComposite %_arr_v4float_uint_16 %151 %153 %154 %155 %156 %157 %158 %159 %151 %160 %161 %162 %163 %164 %165 %166
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %172 = OpTypeFunction %void %main_out
+        %172 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %24
@@ -273,20 +273,20 @@
                OpStore %x_GLF_color %171
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %172
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %172
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %176 = OpLabel
-        %177 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %177
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %177 = OpFunctionCall %void %main_1
+        %178 = OpLoad %v4float %x_GLF_color
+        %179 = OpCompositeConstruct %main_out %178
+               OpReturnValue %179
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %179 = OpLabel
-        %180 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %180
-        %181 = OpFunctionCall %void %main_1
-        %183 = OpLoad %v4float %x_GLF_color
-        %184 = OpCompositeConstruct %main_out %183
-        %182 = OpFunctionCall %void %tint_symbol_3 %184
+        %181 = OpLabel
+        %183 = OpLoad %v4float %gl_FragCoord_param_1
+        %182 = OpFunctionCall %main_out %main_inner %183
+        %184 = OpCompositeExtract %v4float %182 0
+               OpStore %x_GLF_color_1_1 %184
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.spvasm.expected.spvasm
index af0b70a..ab775fd 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %indexable "indexable"
                OpName %x_80 "x_80"
@@ -32,32 +32,32 @@
                OpName %x_117 "x_117"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -108,7 +108,7 @@
         %170 = OpConstantComposite %_arr_v4float_uint_16 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %175 = OpTypeFunction %void %main_out
+        %175 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %24
@@ -278,20 +278,20 @@
                OpStore %x_GLF_color %174
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %175
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %175
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %179 = OpLabel
-        %180 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %180
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %180 = OpFunctionCall %void %main_1
+        %181 = OpLoad %v4float %x_GLF_color
+        %182 = OpCompositeConstruct %main_out %181
+               OpReturnValue %182
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %182 = OpLabel
-        %183 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %183
-        %184 = OpFunctionCall %void %main_1
-        %186 = OpLoad %v4float %x_GLF_color
-        %187 = OpCompositeConstruct %main_out %186
-        %185 = OpFunctionCall %void %tint_symbol_3 %187
+        %184 = OpLabel
+        %186 = OpLoad %v4float %gl_FragCoord_param_1
+        %185 = OpFunctionCall %main_out %main_inner %186
+        %187 = OpCompositeExtract %v4float %185 0
+               OpStore %x_GLF_color_1_1 %187
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.wgsl.expected.spvasm
index af0b70a..ab775fd 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %indexable "indexable"
                OpName %x_80 "x_80"
@@ -32,32 +32,32 @@
                OpName %x_117 "x_117"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -108,7 +108,7 @@
         %170 = OpConstantComposite %_arr_v4float_uint_16 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169 %169
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %175 = OpTypeFunction %void %main_out
+        %175 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %24
@@ -278,20 +278,20 @@
                OpStore %x_GLF_color %174
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %175
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %175
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %179 = OpLabel
-        %180 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %180
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %180 = OpFunctionCall %void %main_1
+        %181 = OpLoad %v4float %x_GLF_color
+        %182 = OpCompositeConstruct %main_out %181
+               OpReturnValue %182
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %182 = OpLabel
-        %183 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %183
-        %184 = OpFunctionCall %void %main_1
-        %186 = OpLoad %v4float %x_GLF_color
-        %187 = OpCompositeConstruct %main_out %186
-        %185 = OpFunctionCall %void %tint_symbol_3 %187
+        %184 = OpLabel
+        %186 = OpLoad %v4float %gl_FragCoord_param_1
+        %185 = OpFunctionCall %main_out %main_inner %186
+        %187 = OpCompositeExtract %v4float %185 0
+               OpStore %x_GLF_color_1_1 %187
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.spvasm.expected.spvasm
index 657d9eb..b6999e2 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %indexable "indexable"
                OpName %x_80 "x_80"
@@ -32,32 +32,32 @@
                OpName %x_117 "x_117"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -106,7 +106,7 @@
         %167 = OpConstantComposite %_arr_v4float_uint_16 %151 %153 %154 %155 %156 %157 %158 %159 %151 %160 %161 %162 %163 %164 %165 %166
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %172 = OpTypeFunction %void %main_out
+        %172 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %24
@@ -273,20 +273,20 @@
                OpStore %x_GLF_color %171
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %172
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %172
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %176 = OpLabel
-        %177 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %177
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %177 = OpFunctionCall %void %main_1
+        %178 = OpLoad %v4float %x_GLF_color
+        %179 = OpCompositeConstruct %main_out %178
+               OpReturnValue %179
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %179 = OpLabel
-        %180 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %180
-        %181 = OpFunctionCall %void %main_1
-        %183 = OpLoad %v4float %x_GLF_color
-        %184 = OpCompositeConstruct %main_out %183
-        %182 = OpFunctionCall %void %tint_symbol_3 %184
+        %181 = OpLabel
+        %183 = OpLoad %v4float %gl_FragCoord_param_1
+        %182 = OpFunctionCall %main_out %main_inner %183
+        %184 = OpCompositeExtract %v4float %182 0
+               OpStore %x_GLF_color_1_1 %184
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.wgsl.expected.spvasm
index 657d9eb..b6999e2 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %indexable "indexable"
                OpName %x_80 "x_80"
@@ -32,32 +32,32 @@
                OpName %x_117 "x_117"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -106,7 +106,7 @@
         %167 = OpConstantComposite %_arr_v4float_uint_16 %151 %153 %154 %155 %156 %157 %158 %159 %151 %160 %161 %162 %163 %164 %165 %166
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %172 = OpTypeFunction %void %main_out
+        %172 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %24
@@ -273,20 +273,20 @@
                OpStore %x_GLF_color %171
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %172
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %172
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %176 = OpLabel
-        %177 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %177
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %177 = OpFunctionCall %void %main_1
+        %178 = OpLoad %v4float %x_GLF_color
+        %179 = OpCompositeConstruct %main_out %178
+               OpReturnValue %179
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %179 = OpLabel
-        %180 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %180
-        %181 = OpFunctionCall %void %main_1
-        %183 = OpLoad %v4float %x_GLF_color
-        %184 = OpCompositeConstruct %main_out %183
-        %182 = OpFunctionCall %void %tint_symbol_3 %184
+        %181 = OpLabel
+        %183 = OpLoad %v4float %gl_FragCoord_param_1
+        %182 = OpFunctionCall %main_out %main_inner %183
+        %184 = OpCompositeExtract %v4float %182 0
+               OpStore %x_GLF_color_1_1 %184
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.spvasm.expected.spvasm
index cc6b7b1..d649091 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
         %267 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_196 "x_196"
                OpName %x_197 "x_197"
@@ -33,32 +33,32 @@
                OpName %x_215_1 "x_215_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_256 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -249,19 +249,19 @@
       %int_1 = OpConstant %int 1
         %288 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %290 = OpTypeFunction %void %main_out
+        %290 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
       %x_196 = OpVariable %_ptr_Function__arr_int_uint_256 Function %25
       %x_197 = OpVariable %_ptr_Function__arr_int_uint_256 Function %25
       %x_198 = OpVariable %_ptr_Function__arr_int_uint_256 Function %25
       %x_210 = OpVariable %_ptr_Function_v2int Function %31
-      %x_251 = OpVariable %_ptr_Function_v4float Function %5
-      %x_253 = OpVariable %_ptr_Function_v4float Function %5
+      %x_251 = OpVariable %_ptr_Function_v4float Function %7
+      %x_253 = OpVariable %_ptr_Function_v4float Function %7
   %x_214_phi = OpVariable %_ptr_Function_v2int Function %31
-  %x_253_phi = OpVariable %_ptr_Function_v4float Function %5
+  %x_253_phi = OpVariable %_ptr_Function_v4float Function %7
   %x_254_phi = OpVariable %_ptr_Function_bool Function %40
-  %x_256_phi = OpVariable %_ptr_Function_v4float Function %5
+  %x_256_phi = OpVariable %_ptr_Function_v4float Function %7
       %x_233 = OpVariable %_ptr_Function_int Function %68
       %x_234 = OpVariable %_ptr_Function_int Function %68
   %x_235_phi = OpVariable %_ptr_Function_int Function %68
@@ -389,20 +389,20 @@
                OpStore %x_GLF_color %289
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %290
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %290
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %294 = OpLabel
-        %295 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %295
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %295 = OpFunctionCall %void %main_1
+        %296 = OpLoad %v4float %x_GLF_color
+        %297 = OpCompositeConstruct %main_out %296
+               OpReturnValue %297
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %297 = OpLabel
-        %298 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %298
-        %299 = OpFunctionCall %void %main_1
-        %301 = OpLoad %v4float %x_GLF_color
-        %302 = OpCompositeConstruct %main_out %301
-        %300 = OpFunctionCall %void %tint_symbol_3 %302
+        %299 = OpLabel
+        %301 = OpLoad %v4float %gl_FragCoord_param_1
+        %300 = OpFunctionCall %main_out %main_inner %301
+        %302 = OpCompositeExtract %v4float %300 0
+               OpStore %x_GLF_color_1_1 %302
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.wgsl.expected.spvasm
index cc6b7b1..d649091 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
         %267 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_196 "x_196"
                OpName %x_197 "x_197"
@@ -33,32 +33,32 @@
                OpName %x_215_1 "x_215_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_256 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -249,19 +249,19 @@
       %int_1 = OpConstant %int 1
         %288 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %290 = OpTypeFunction %void %main_out
+        %290 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
       %x_196 = OpVariable %_ptr_Function__arr_int_uint_256 Function %25
       %x_197 = OpVariable %_ptr_Function__arr_int_uint_256 Function %25
       %x_198 = OpVariable %_ptr_Function__arr_int_uint_256 Function %25
       %x_210 = OpVariable %_ptr_Function_v2int Function %31
-      %x_251 = OpVariable %_ptr_Function_v4float Function %5
-      %x_253 = OpVariable %_ptr_Function_v4float Function %5
+      %x_251 = OpVariable %_ptr_Function_v4float Function %7
+      %x_253 = OpVariable %_ptr_Function_v4float Function %7
   %x_214_phi = OpVariable %_ptr_Function_v2int Function %31
-  %x_253_phi = OpVariable %_ptr_Function_v4float Function %5
+  %x_253_phi = OpVariable %_ptr_Function_v4float Function %7
   %x_254_phi = OpVariable %_ptr_Function_bool Function %40
-  %x_256_phi = OpVariable %_ptr_Function_v4float Function %5
+  %x_256_phi = OpVariable %_ptr_Function_v4float Function %7
       %x_233 = OpVariable %_ptr_Function_int Function %68
       %x_234 = OpVariable %_ptr_Function_int Function %68
   %x_235_phi = OpVariable %_ptr_Function_int Function %68
@@ -389,20 +389,20 @@
                OpStore %x_GLF_color %289
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %290
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %290
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %294 = OpLabel
-        %295 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %295
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %295 = OpFunctionCall %void %main_1
+        %296 = OpLoad %v4float %x_GLF_color
+        %297 = OpCompositeConstruct %main_out %296
+               OpReturnValue %297
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %297 = OpLabel
-        %298 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %298
-        %299 = OpFunctionCall %void %main_1
-        %301 = OpLoad %v4float %x_GLF_color
-        %302 = OpCompositeConstruct %main_out %301
-        %300 = OpFunctionCall %void %tint_symbol_3 %302
+        %299 = OpLabel
+        %301 = OpLoad %v4float %gl_FragCoord_param_1
+        %300 = OpFunctionCall %main_out %main_inner %301
+        %302 = OpCompositeExtract %v4float %300 0
+               OpStore %x_GLF_color_1_1 %302
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.spvasm.expected.spvasm
index ace8cfb..cbcac4d 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
         %263 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_196 "x_196"
                OpName %x_197 "x_197"
@@ -32,32 +32,32 @@
                OpName %x_215_1 "x_215_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_256 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -248,19 +248,19 @@
       %int_1 = OpConstant %int 1
         %284 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %286 = OpTypeFunction %void %main_out
+        %286 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
       %x_196 = OpVariable %_ptr_Function__arr_int_uint_256 Function %25
       %x_197 = OpVariable %_ptr_Function__arr_int_uint_256 Function %25
       %x_198 = OpVariable %_ptr_Function__arr_int_uint_256 Function %25
       %x_210 = OpVariable %_ptr_Function_v2int Function %31
-      %x_249 = OpVariable %_ptr_Function_v4float Function %5
-      %x_251 = OpVariable %_ptr_Function_v4float Function %5
+      %x_249 = OpVariable %_ptr_Function_v4float Function %7
+      %x_251 = OpVariable %_ptr_Function_v4float Function %7
   %x_214_phi = OpVariable %_ptr_Function_v2int Function %31
-  %x_251_phi = OpVariable %_ptr_Function_v4float Function %5
+  %x_251_phi = OpVariable %_ptr_Function_v4float Function %7
   %x_252_phi = OpVariable %_ptr_Function_bool Function %40
-  %x_254_phi = OpVariable %_ptr_Function_v4float Function %5
+  %x_254_phi = OpVariable %_ptr_Function_v4float Function %7
       %x_233 = OpVariable %_ptr_Function_int Function %68
       %x_234 = OpVariable %_ptr_Function_int Function %68
   %x_235_phi = OpVariable %_ptr_Function_int Function %68
@@ -378,20 +378,20 @@
                OpStore %x_GLF_color %285
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %286
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %286
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %290 = OpLabel
-        %291 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %291
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %291 = OpFunctionCall %void %main_1
+        %292 = OpLoad %v4float %x_GLF_color
+        %293 = OpCompositeConstruct %main_out %292
+               OpReturnValue %293
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %293 = OpLabel
-        %294 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %294
-        %295 = OpFunctionCall %void %main_1
-        %297 = OpLoad %v4float %x_GLF_color
-        %298 = OpCompositeConstruct %main_out %297
-        %296 = OpFunctionCall %void %tint_symbol_3 %298
+        %295 = OpLabel
+        %297 = OpLoad %v4float %gl_FragCoord_param_1
+        %296 = OpFunctionCall %main_out %main_inner %297
+        %298 = OpCompositeExtract %v4float %296 0
+               OpStore %x_GLF_color_1_1 %298
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.wgsl.expected.spvasm
index ace8cfb..cbcac4d 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
         %263 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_196 "x_196"
                OpName %x_197 "x_197"
@@ -32,32 +32,32 @@
                OpName %x_215_1 "x_215_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_256 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -248,19 +248,19 @@
       %int_1 = OpConstant %int 1
         %284 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %286 = OpTypeFunction %void %main_out
+        %286 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
       %x_196 = OpVariable %_ptr_Function__arr_int_uint_256 Function %25
       %x_197 = OpVariable %_ptr_Function__arr_int_uint_256 Function %25
       %x_198 = OpVariable %_ptr_Function__arr_int_uint_256 Function %25
       %x_210 = OpVariable %_ptr_Function_v2int Function %31
-      %x_249 = OpVariable %_ptr_Function_v4float Function %5
-      %x_251 = OpVariable %_ptr_Function_v4float Function %5
+      %x_249 = OpVariable %_ptr_Function_v4float Function %7
+      %x_251 = OpVariable %_ptr_Function_v4float Function %7
   %x_214_phi = OpVariable %_ptr_Function_v2int Function %31
-  %x_251_phi = OpVariable %_ptr_Function_v4float Function %5
+  %x_251_phi = OpVariable %_ptr_Function_v4float Function %7
   %x_252_phi = OpVariable %_ptr_Function_bool Function %40
-  %x_254_phi = OpVariable %_ptr_Function_v4float Function %5
+  %x_254_phi = OpVariable %_ptr_Function_v4float Function %7
       %x_233 = OpVariable %_ptr_Function_int Function %68
       %x_234 = OpVariable %_ptr_Function_int Function %68
   %x_235_phi = OpVariable %_ptr_Function_int Function %68
@@ -378,20 +378,20 @@
                OpStore %x_GLF_color %285
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %286
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %286
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %290 = OpLabel
-        %291 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %291
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %291 = OpFunctionCall %void %main_1
+        %292 = OpLoad %v4float %x_GLF_color
+        %293 = OpCompositeConstruct %main_out %292
+               OpReturnValue %293
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %293 = OpLabel
-        %294 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %294
-        %295 = OpFunctionCall %void %main_1
-        %297 = OpLoad %v4float %x_GLF_color
-        %298 = OpCompositeConstruct %main_out %297
-        %296 = OpFunctionCall %void %tint_symbol_3 %298
+        %295 = OpLabel
+        %297 = OpLoad %v4float %gl_FragCoord_param_1
+        %296 = OpFunctionCall %main_out %main_inner %297
+        %298 = OpCompositeExtract %v4float %296 0
+               OpStore %x_GLF_color_1_1 %298
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.spvasm.expected.spvasm
index 1bc7c3e..0c45b13 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
         %247 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_13 "x_13"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %trace_vi2_ "trace_vi2_"
                OpName %pos "pos"
                OpName %indexable "indexable"
@@ -29,32 +29,32 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_13 NonWritable
                OpDecorate %x_13 DescriptorSet 0
                OpDecorate %x_13 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_256 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_13 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
 %_ptr_Function_v2int = OpTypePointer Function %v2int
@@ -244,7 +244,7 @@
 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
   %float_256 = OpConstant %float 256
    %main_out = OpTypeStruct %v4float
-        %297 = OpTypeFunction %void %main_out
+        %297 = OpTypeFunction %main_out %v4float
  %trace_vi2_ = OpFunction %v4float None %15
         %pos = OpFunctionParameter %_ptr_Function_v2int
          %21 = OpLabel
@@ -359,20 +359,20 @@
                OpStore %x_GLF_color %295
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %297
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %297
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %301 = OpLabel
-        %302 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %302
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %302 = OpFunctionCall %void %main_1
+        %303 = OpLoad %v4float %x_GLF_color
+        %304 = OpCompositeConstruct %main_out %303
+               OpReturnValue %304
                OpFunctionEnd
        %main = OpFunction %void None %266
-        %304 = OpLabel
-        %305 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %305
-        %306 = OpFunctionCall %void %main_1
-        %308 = OpLoad %v4float %x_GLF_color
-        %309 = OpCompositeConstruct %main_out %308
-        %307 = OpFunctionCall %void %tint_symbol_3 %309
+        %306 = OpLabel
+        %308 = OpLoad %v4float %gl_FragCoord_param_1
+        %307 = OpFunctionCall %main_out %main_inner %308
+        %309 = OpCompositeExtract %v4float %307 0
+               OpStore %x_GLF_color_1_1 %309
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.wgsl.expected.spvasm
index 1bc7c3e..0c45b13 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
         %247 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_13 "x_13"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %trace_vi2_ "trace_vi2_"
                OpName %pos "pos"
                OpName %indexable "indexable"
@@ -29,32 +29,32 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_13 NonWritable
                OpDecorate %x_13 DescriptorSet 0
                OpDecorate %x_13 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_256 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_13 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
 %_ptr_Function_v2int = OpTypePointer Function %v2int
@@ -244,7 +244,7 @@
 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
   %float_256 = OpConstant %float 256
    %main_out = OpTypeStruct %v4float
-        %297 = OpTypeFunction %void %main_out
+        %297 = OpTypeFunction %main_out %v4float
  %trace_vi2_ = OpFunction %v4float None %15
         %pos = OpFunctionParameter %_ptr_Function_v2int
          %21 = OpLabel
@@ -359,20 +359,20 @@
                OpStore %x_GLF_color %295
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %297
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %297
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %301 = OpLabel
-        %302 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %302
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %302 = OpFunctionCall %void %main_1
+        %303 = OpLoad %v4float %x_GLF_color
+        %304 = OpCompositeConstruct %main_out %303
+               OpReturnValue %304
                OpFunctionEnd
        %main = OpFunction %void None %266
-        %304 = OpLabel
-        %305 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %305
-        %306 = OpFunctionCall %void %main_1
-        %308 = OpLoad %v4float %x_GLF_color
-        %309 = OpCompositeConstruct %main_out %308
-        %307 = OpFunctionCall %void %tint_symbol_3 %309
+        %306 = OpLabel
+        %308 = OpLoad %v4float %gl_FragCoord_param_1
+        %307 = OpFunctionCall %main_out %main_inner %308
+        %309 = OpCompositeExtract %v4float %307 0
+               OpStore %x_GLF_color_1_1 %309
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.spvasm.expected.spvasm
index 5d77d9b..da642c3 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
         %256 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_13 "x_13"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %trace_vi2_ "trace_vi2_"
                OpName %pos "pos"
                OpName %indexable "indexable"
@@ -29,32 +29,32 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_13 NonWritable
                OpDecorate %x_13 DescriptorSet 0
                OpDecorate %x_13 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_256 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_13 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
 %_ptr_Function_v2int = OpTypePointer Function %v2int
@@ -245,7 +245,7 @@
 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
   %float_256 = OpConstant %float 256
    %main_out = OpTypeStruct %v4float
-        %306 = OpTypeFunction %void %main_out
+        %306 = OpTypeFunction %main_out %v4float
  %trace_vi2_ = OpFunction %v4float None %15
         %pos = OpFunctionParameter %_ptr_Function_v2int
          %21 = OpLabel
@@ -369,20 +369,20 @@
                OpStore %x_GLF_color %304
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %306
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %306
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %310 = OpLabel
-        %311 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %311
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %311 = OpFunctionCall %void %main_1
+        %312 = OpLoad %v4float %x_GLF_color
+        %313 = OpCompositeConstruct %main_out %312
+               OpReturnValue %313
                OpFunctionEnd
        %main = OpFunction %void None %275
-        %313 = OpLabel
-        %314 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %314
-        %315 = OpFunctionCall %void %main_1
-        %317 = OpLoad %v4float %x_GLF_color
-        %318 = OpCompositeConstruct %main_out %317
-        %316 = OpFunctionCall %void %tint_symbol_3 %318
+        %315 = OpLabel
+        %317 = OpLoad %v4float %gl_FragCoord_param_1
+        %316 = OpFunctionCall %main_out %main_inner %317
+        %318 = OpCompositeExtract %v4float %316 0
+               OpStore %x_GLF_color_1_1 %318
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.wgsl.expected.spvasm
index 5d77d9b..da642c3 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
         %256 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_13 "x_13"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %trace_vi2_ "trace_vi2_"
                OpName %pos "pos"
                OpName %indexable "indexable"
@@ -29,32 +29,32 @@
                OpName %param "param"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_13 NonWritable
                OpDecorate %x_13 DescriptorSet 0
                OpDecorate %x_13 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_256 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_13 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
 %_ptr_Function_v2int = OpTypePointer Function %v2int
@@ -245,7 +245,7 @@
 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
   %float_256 = OpConstant %float 256
    %main_out = OpTypeStruct %v4float
-        %306 = OpTypeFunction %void %main_out
+        %306 = OpTypeFunction %main_out %v4float
  %trace_vi2_ = OpFunction %v4float None %15
         %pos = OpFunctionParameter %_ptr_Function_v2int
          %21 = OpLabel
@@ -369,20 +369,20 @@
                OpStore %x_GLF_color %304
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %306
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %306
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %310 = OpLabel
-        %311 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %311
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %311 = OpFunctionCall %void %main_1
+        %312 = OpLoad %v4float %x_GLF_color
+        %313 = OpCompositeConstruct %main_out %312
+               OpReturnValue %313
                OpFunctionEnd
        %main = OpFunction %void None %275
-        %313 = OpLabel
-        %314 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %314
-        %315 = OpFunctionCall %void %main_1
-        %317 = OpLoad %v4float %x_GLF_color
-        %318 = OpCompositeConstruct %main_out %317
-        %316 = OpFunctionCall %void %tint_symbol_3 %318
+        %315 = OpLabel
+        %317 = OpLoad %v4float %gl_FragCoord_param_1
+        %316 = OpFunctionCall %main_out %main_inner %317
+        %318 = OpCompositeExtract %v4float %316 0
+               OpStore %x_GLF_color_1_1 %318
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.spvasm.expected.spvasm
index dfd34c5..1685711 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %343 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %QuicksortObject "QuicksortObject"
                OpMemberName %QuicksortObject 0 "numbers"
                OpName %obj "obj"
@@ -16,8 +18,6 @@
                OpMemberName %buf0 0 "resolution"
                OpName %x_32 "x_32"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %swap_i1_i1_ "swap_i1_i1_"
                OpName %i "i"
                OpName %j "j"
@@ -46,9 +46,11 @@
                OpName %color "color"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %QuicksortObject 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
@@ -56,31 +58,29 @@
                OpDecorate %x_32 NonWritable
                OpDecorate %x_32 DescriptorSet 0
                OpDecorate %x_32 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %QuicksortObject = OpTypeStruct %_arr_int_uint_10
 %_ptr_Private_QuicksortObject = OpTypePointer Private %QuicksortObject
-          %8 = OpConstantNull %QuicksortObject
-        %obj = OpVariable %_ptr_Private_QuicksortObject Private %8
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
+         %15 = OpConstantNull %QuicksortObject
+        %obj = OpVariable %_ptr_Private_QuicksortObject Private %15
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %13 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %13
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_32 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %13
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %13
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int
@@ -121,7 +121,7 @@
       %int_7 = OpConstant %int 7
       %int_8 = OpConstant %int 8
    %main_out = OpTypeStruct %v4float
-        %361 = OpTypeFunction %void %main_out
+        %361 = OpTypeFunction %main_out %v4float
 %swap_i1_i1_ = OpFunction %void None %23
           %i = OpFunctionParameter %_ptr_Function_int
           %j = OpFunctionParameter %_ptr_Function_int
@@ -522,20 +522,20 @@
                OpStore %x_GLF_color %360
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %361
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %361
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %365 = OpLabel
-        %366 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %366
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %366 = OpFunctionCall %void %main_1
+        %367 = OpLoad %v4float %x_GLF_color
+        %368 = OpCompositeConstruct %main_out %367
+               OpReturnValue %368
                OpFunctionEnd
        %main = OpFunction %void None %109
-        %368 = OpLabel
-        %369 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %369
-        %370 = OpFunctionCall %void %main_1
-        %372 = OpLoad %v4float %x_GLF_color
-        %373 = OpCompositeConstruct %main_out %372
-        %371 = OpFunctionCall %void %tint_symbol_3 %373
+        %370 = OpLabel
+        %372 = OpLoad %v4float %gl_FragCoord_param_1
+        %371 = OpFunctionCall %main_out %main_inner %372
+        %373 = OpCompositeExtract %v4float %371 0
+               OpStore %x_GLF_color_1_1 %373
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.wgsl.expected.spvasm
index dfd34c5..1685711 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %343 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %QuicksortObject "QuicksortObject"
                OpMemberName %QuicksortObject 0 "numbers"
                OpName %obj "obj"
@@ -16,8 +18,6 @@
                OpMemberName %buf0 0 "resolution"
                OpName %x_32 "x_32"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %swap_i1_i1_ "swap_i1_i1_"
                OpName %i "i"
                OpName %j "j"
@@ -46,9 +46,11 @@
                OpName %color "color"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %QuicksortObject 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
@@ -56,31 +58,29 @@
                OpDecorate %x_32 NonWritable
                OpDecorate %x_32 DescriptorSet 0
                OpDecorate %x_32 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %QuicksortObject = OpTypeStruct %_arr_int_uint_10
 %_ptr_Private_QuicksortObject = OpTypePointer Private %QuicksortObject
-          %8 = OpConstantNull %QuicksortObject
-        %obj = OpVariable %_ptr_Private_QuicksortObject Private %8
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
+         %15 = OpConstantNull %QuicksortObject
+        %obj = OpVariable %_ptr_Private_QuicksortObject Private %15
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %13 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %13
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_32 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %13
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %13
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int
@@ -121,7 +121,7 @@
       %int_7 = OpConstant %int 7
       %int_8 = OpConstant %int 8
    %main_out = OpTypeStruct %v4float
-        %361 = OpTypeFunction %void %main_out
+        %361 = OpTypeFunction %main_out %v4float
 %swap_i1_i1_ = OpFunction %void None %23
           %i = OpFunctionParameter %_ptr_Function_int
           %j = OpFunctionParameter %_ptr_Function_int
@@ -522,20 +522,20 @@
                OpStore %x_GLF_color %360
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %361
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %361
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %365 = OpLabel
-        %366 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %366
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %366 = OpFunctionCall %void %main_1
+        %367 = OpLoad %v4float %x_GLF_color
+        %368 = OpCompositeConstruct %main_out %367
+               OpReturnValue %368
                OpFunctionEnd
        %main = OpFunction %void None %109
-        %368 = OpLabel
-        %369 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %369
-        %370 = OpFunctionCall %void %main_1
-        %372 = OpLoad %v4float %x_GLF_color
-        %373 = OpCompositeConstruct %main_out %372
-        %371 = OpFunctionCall %void %tint_symbol_3 %373
+        %370 = OpLabel
+        %372 = OpLoad %v4float %gl_FragCoord_param_1
+        %371 = OpFunctionCall %main_out %main_inner %372
+        %373 = OpCompositeExtract %v4float %371 0
+               OpStore %x_GLF_color_1_1 %373
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.spvasm.expected.spvasm
index 2c8db03..c09bea6 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %348 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %QuicksortObject "QuicksortObject"
                OpMemberName %QuicksortObject 0 "numbers"
                OpName %obj "obj"
@@ -16,8 +18,6 @@
                OpMemberName %buf0 0 "resolution"
                OpName %x_32 "x_32"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %swap_i1_i1_ "swap_i1_i1_"
                OpName %i "i"
                OpName %j "j"
@@ -47,9 +47,11 @@
                OpName %color "color"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %QuicksortObject 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
@@ -57,31 +59,29 @@
                OpDecorate %x_32 NonWritable
                OpDecorate %x_32 DescriptorSet 0
                OpDecorate %x_32 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %QuicksortObject = OpTypeStruct %_arr_int_uint_10
 %_ptr_Private_QuicksortObject = OpTypePointer Private %QuicksortObject
-          %8 = OpConstantNull %QuicksortObject
-        %obj = OpVariable %_ptr_Private_QuicksortObject Private %8
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
+         %15 = OpConstantNull %QuicksortObject
+        %obj = OpVariable %_ptr_Private_QuicksortObject Private %15
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %13 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %13
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_32 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %13
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %13
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
     %v3float = OpTypeVector %float 3
@@ -126,7 +126,7 @@
       %int_7 = OpConstant %int 7
       %int_8 = OpConstant %int 8
    %main_out = OpTypeStruct %v4float
-        %366 = OpTypeFunction %void %main_out
+        %366 = OpTypeFunction %main_out %v4float
 %swap_i1_i1_ = OpFunction %void None %23
           %i = OpFunctionParameter %_ptr_Function_int
           %j = OpFunctionParameter %_ptr_Function_int
@@ -528,20 +528,20 @@
                OpStore %x_GLF_color %365
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %366
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %366
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %370 = OpLabel
-        %371 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %371
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %371 = OpFunctionCall %void %main_1
+        %372 = OpLoad %v4float %x_GLF_color
+        %373 = OpCompositeConstruct %main_out %372
+               OpReturnValue %373
                OpFunctionEnd
        %main = OpFunction %void None %115
-        %373 = OpLabel
-        %374 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %374
-        %375 = OpFunctionCall %void %main_1
-        %377 = OpLoad %v4float %x_GLF_color
-        %378 = OpCompositeConstruct %main_out %377
-        %376 = OpFunctionCall %void %tint_symbol_3 %378
+        %375 = OpLabel
+        %377 = OpLoad %v4float %gl_FragCoord_param_1
+        %376 = OpFunctionCall %main_out %main_inner %377
+        %378 = OpCompositeExtract %v4float %376 0
+               OpStore %x_GLF_color_1_1 %378
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.wgsl.expected.spvasm
index 2c8db03..c09bea6 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %348 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %QuicksortObject "QuicksortObject"
                OpMemberName %QuicksortObject 0 "numbers"
                OpName %obj "obj"
@@ -16,8 +18,6 @@
                OpMemberName %buf0 0 "resolution"
                OpName %x_32 "x_32"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %swap_i1_i1_ "swap_i1_i1_"
                OpName %i "i"
                OpName %j "j"
@@ -47,9 +47,11 @@
                OpName %color "color"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %QuicksortObject 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
@@ -57,31 +59,29 @@
                OpDecorate %x_32 NonWritable
                OpDecorate %x_32 DescriptorSet 0
                OpDecorate %x_32 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %QuicksortObject = OpTypeStruct %_arr_int_uint_10
 %_ptr_Private_QuicksortObject = OpTypePointer Private %QuicksortObject
-          %8 = OpConstantNull %QuicksortObject
-        %obj = OpVariable %_ptr_Private_QuicksortObject Private %8
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
+         %15 = OpConstantNull %QuicksortObject
+        %obj = OpVariable %_ptr_Private_QuicksortObject Private %15
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %13 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %13
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_32 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %13
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %13
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
     %v3float = OpTypeVector %float 3
@@ -126,7 +126,7 @@
       %int_7 = OpConstant %int 7
       %int_8 = OpConstant %int 8
    %main_out = OpTypeStruct %v4float
-        %366 = OpTypeFunction %void %main_out
+        %366 = OpTypeFunction %main_out %v4float
 %swap_i1_i1_ = OpFunction %void None %23
           %i = OpFunctionParameter %_ptr_Function_int
           %j = OpFunctionParameter %_ptr_Function_int
@@ -528,20 +528,20 @@
                OpStore %x_GLF_color %365
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %366
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %366
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %370 = OpLabel
-        %371 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %371
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %371 = OpFunctionCall %void %main_1
+        %372 = OpLoad %v4float %x_GLF_color
+        %373 = OpCompositeConstruct %main_out %372
+               OpReturnValue %373
                OpFunctionEnd
        %main = OpFunction %void None %115
-        %373 = OpLabel
-        %374 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %374
-        %375 = OpFunctionCall %void %main_1
-        %377 = OpLoad %v4float %x_GLF_color
-        %378 = OpCompositeConstruct %main_out %377
-        %376 = OpFunctionCall %void %tint_symbol_3 %378
+        %375 = OpLabel
+        %377 = OpLoad %v4float %gl_FragCoord_param_1
+        %376 = OpFunctionCall %main_out %main_inner %377
+        %378 = OpCompositeExtract %v4float %376 0
+               OpStore %x_GLF_color_1_1 %378
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.spvasm.expected.spvasm
index 5d0f00b..7ae9ae4 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %67 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_81 "x_81"
                OpName %x_82 "x_82"
@@ -31,33 +31,33 @@
                OpName %x_104 "x_104"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_8 ArrayStride 16
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -131,7 +131,7 @@
      %int_16 = OpConstant %int 16
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-        %174 = OpTypeFunction %void %main_out
+        %174 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %x_81 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %27
@@ -139,14 +139,14 @@
        %x_83 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %27
        %x_84 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %27
        %x_85 = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %35
-       %x_95 = OpVariable %_ptr_Function_v4float Function %5
-   %x_95_phi = OpVariable %_ptr_Function_v4float Function %5
+       %x_95 = OpVariable %_ptr_Function_v4float Function %7
+   %x_95_phi = OpVariable %_ptr_Function_v4float Function %7
    %x_98_phi = OpVariable %_ptr_Function_int Function %42
-      %x_143 = OpVariable %_ptr_Function_v4float Function %5
+      %x_143 = OpVariable %_ptr_Function_v4float Function %7
        %x_99 = OpVariable %_ptr_Function_int Function %42
   %x_127_phi = OpVariable %_ptr_Function_bool Function %87
-   %x_96_phi = OpVariable %_ptr_Function_v4float Function %5
-      %x_104 = OpVariable %_ptr_Function_v4float Function %5
+   %x_96_phi = OpVariable %_ptr_Function_v4float Function %7
+      %x_104 = OpVariable %_ptr_Function_v4float Function %7
                OpStore %x_81 %24
                OpStore %x_81 %59
          %60 = OpLoad %_arr_v4float_uint_8 %x_81
@@ -271,20 +271,20 @@
                OpStore %x_GLF_color %173
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %174
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %174
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %178 = OpLabel
-        %179 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %179
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %179 = OpFunctionCall %void %main_1
+        %180 = OpLoad %v4float %x_GLF_color
+        %181 = OpCompositeConstruct %main_out %180
+               OpReturnValue %181
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %181 = OpLabel
-        %182 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %182
-        %183 = OpFunctionCall %void %main_1
-        %185 = OpLoad %v4float %x_GLF_color
-        %186 = OpCompositeConstruct %main_out %185
-        %184 = OpFunctionCall %void %tint_symbol_3 %186
+        %183 = OpLabel
+        %185 = OpLoad %v4float %gl_FragCoord_param_1
+        %184 = OpFunctionCall %main_out %main_inner %185
+        %186 = OpCompositeExtract %v4float %184 0
+               OpStore %x_GLF_color_1_1 %186
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.wgsl.expected.spvasm
index 5d0f00b..7ae9ae4 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %67 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_81 "x_81"
                OpName %x_82 "x_82"
@@ -31,33 +31,33 @@
                OpName %x_104 "x_104"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_8 ArrayStride 16
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -131,7 +131,7 @@
      %int_16 = OpConstant %int 16
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-        %174 = OpTypeFunction %void %main_out
+        %174 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %x_81 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %27
@@ -139,14 +139,14 @@
        %x_83 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %27
        %x_84 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %27
        %x_85 = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %35
-       %x_95 = OpVariable %_ptr_Function_v4float Function %5
-   %x_95_phi = OpVariable %_ptr_Function_v4float Function %5
+       %x_95 = OpVariable %_ptr_Function_v4float Function %7
+   %x_95_phi = OpVariable %_ptr_Function_v4float Function %7
    %x_98_phi = OpVariable %_ptr_Function_int Function %42
-      %x_143 = OpVariable %_ptr_Function_v4float Function %5
+      %x_143 = OpVariable %_ptr_Function_v4float Function %7
        %x_99 = OpVariable %_ptr_Function_int Function %42
   %x_127_phi = OpVariable %_ptr_Function_bool Function %87
-   %x_96_phi = OpVariable %_ptr_Function_v4float Function %5
-      %x_104 = OpVariable %_ptr_Function_v4float Function %5
+   %x_96_phi = OpVariable %_ptr_Function_v4float Function %7
+      %x_104 = OpVariable %_ptr_Function_v4float Function %7
                OpStore %x_81 %24
                OpStore %x_81 %59
          %60 = OpLoad %_arr_v4float_uint_8 %x_81
@@ -271,20 +271,20 @@
                OpStore %x_GLF_color %173
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %174
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %174
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %178 = OpLabel
-        %179 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %179
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %179 = OpFunctionCall %void %main_1
+        %180 = OpLoad %v4float %x_GLF_color
+        %181 = OpCompositeConstruct %main_out %180
+               OpReturnValue %181
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %181 = OpLabel
-        %182 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %182
-        %183 = OpFunctionCall %void %main_1
-        %185 = OpLoad %v4float %x_GLF_color
-        %186 = OpCompositeConstruct %main_out %185
-        %184 = OpFunctionCall %void %tint_symbol_3 %186
+        %183 = OpLabel
+        %185 = OpLoad %v4float %gl_FragCoord_param_1
+        %184 = OpFunctionCall %main_out %main_inner %185
+        %186 = OpCompositeExtract %v4float %184 0
+               OpStore %x_GLF_color_1_1 %186
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.spvasm.expected.spvasm
index 4ef0500..f0b1639 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %67 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_81 "x_81"
                OpName %x_82 "x_82"
@@ -31,33 +31,33 @@
                OpName %x_104 "x_104"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_8 ArrayStride 16
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -131,7 +131,7 @@
      %int_16 = OpConstant %int 16
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-        %173 = OpTypeFunction %void %main_out
+        %173 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %x_81 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %27
@@ -139,14 +139,14 @@
        %x_83 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %27
        %x_84 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %27
        %x_85 = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %35
-       %x_95 = OpVariable %_ptr_Function_v4float Function %5
-   %x_95_phi = OpVariable %_ptr_Function_v4float Function %5
+       %x_95 = OpVariable %_ptr_Function_v4float Function %7
+   %x_95_phi = OpVariable %_ptr_Function_v4float Function %7
    %x_98_phi = OpVariable %_ptr_Function_int Function %42
-      %x_142 = OpVariable %_ptr_Function_v4float Function %5
+      %x_142 = OpVariable %_ptr_Function_v4float Function %7
        %x_99 = OpVariable %_ptr_Function_int Function %42
   %x_127_phi = OpVariable %_ptr_Function_bool Function %87
-   %x_96_phi = OpVariable %_ptr_Function_v4float Function %5
-      %x_104 = OpVariable %_ptr_Function_v4float Function %5
+   %x_96_phi = OpVariable %_ptr_Function_v4float Function %7
+      %x_104 = OpVariable %_ptr_Function_v4float Function %7
                OpStore %x_81 %24
                OpStore %x_81 %59
          %60 = OpLoad %_arr_v4float_uint_8 %x_81
@@ -268,20 +268,20 @@
                OpStore %x_GLF_color %172
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %173
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %173
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %177 = OpLabel
-        %178 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %178
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %178 = OpFunctionCall %void %main_1
+        %179 = OpLoad %v4float %x_GLF_color
+        %180 = OpCompositeConstruct %main_out %179
+               OpReturnValue %180
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %180 = OpLabel
-        %181 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %181
-        %182 = OpFunctionCall %void %main_1
-        %184 = OpLoad %v4float %x_GLF_color
-        %185 = OpCompositeConstruct %main_out %184
-        %183 = OpFunctionCall %void %tint_symbol_3 %185
+        %182 = OpLabel
+        %184 = OpLoad %v4float %gl_FragCoord_param_1
+        %183 = OpFunctionCall %main_out %main_inner %184
+        %185 = OpCompositeExtract %v4float %183 0
+               OpStore %x_GLF_color_1_1 %185
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.wgsl.expected.spvasm
index 4ef0500..f0b1639 100644
--- a/test/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %67 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_81 "x_81"
                OpName %x_82 "x_82"
@@ -31,33 +31,33 @@
                OpName %x_104 "x_104"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_8 ArrayStride 16
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -131,7 +131,7 @@
      %int_16 = OpConstant %int 16
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-        %173 = OpTypeFunction %void %main_out
+        %173 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %x_81 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %27
@@ -139,14 +139,14 @@
        %x_83 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %27
        %x_84 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %27
        %x_85 = OpVariable %_ptr_Function__arr_v4float_uint_16 Function %35
-       %x_95 = OpVariable %_ptr_Function_v4float Function %5
-   %x_95_phi = OpVariable %_ptr_Function_v4float Function %5
+       %x_95 = OpVariable %_ptr_Function_v4float Function %7
+   %x_95_phi = OpVariable %_ptr_Function_v4float Function %7
    %x_98_phi = OpVariable %_ptr_Function_int Function %42
-      %x_142 = OpVariable %_ptr_Function_v4float Function %5
+      %x_142 = OpVariable %_ptr_Function_v4float Function %7
        %x_99 = OpVariable %_ptr_Function_int Function %42
   %x_127_phi = OpVariable %_ptr_Function_bool Function %87
-   %x_96_phi = OpVariable %_ptr_Function_v4float Function %5
-      %x_104 = OpVariable %_ptr_Function_v4float Function %5
+   %x_96_phi = OpVariable %_ptr_Function_v4float Function %7
+      %x_104 = OpVariable %_ptr_Function_v4float Function %7
                OpStore %x_81 %24
                OpStore %x_81 %59
          %60 = OpLoad %_arr_v4float_uint_8 %x_81
@@ -268,20 +268,20 @@
                OpStore %x_GLF_color %172
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %173
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %173
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %177 = OpLabel
-        %178 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %178
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %178 = OpFunctionCall %void %main_1
+        %179 = OpLoad %v4float %x_GLF_color
+        %180 = OpCompositeConstruct %main_out %179
+               OpReturnValue %180
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %180 = OpLabel
-        %181 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %181
-        %182 = OpFunctionCall %void %main_1
-        %184 = OpLoad %v4float %x_GLF_color
-        %185 = OpCompositeConstruct %main_out %184
-        %183 = OpFunctionCall %void %tint_symbol_3 %185
+        %182 = OpLabel
+        %184 = OpLoad %v4float %gl_FragCoord_param_1
+        %183 = OpFunctionCall %main_out %main_inner %184
+        %185 = OpCompositeExtract %v4float %183 0
+               OpStore %x_GLF_color_1_1 %185
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.spvasm.expected.spvasm
index 9ea3312..2b27a7a 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.spvasm.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 619
+; Bound: 618
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %BST "BST"
                OpMemberName %BST 0 "data"
@@ -89,10 +89,9 @@
                OpName %x_396_phi "x_396_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %BST 0 Offset 0
                OpMemberDecorate %BST 1 Offset 4
                OpMemberDecorate %BST 2 Offset 8
@@ -100,11 +99,11 @@
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -156,7 +155,7 @@
         %605 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %606 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-        %607 = OpTypeFunction %void %main_out
+        %607 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
        %tree = OpVariable %_ptr_Function__arr_BST_uint_10 Function %19
@@ -1149,18 +1148,17 @@
         %600 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %607
-%tint_symbol = OpFunctionParameter %main_out
-        %611 = OpLabel
-        %612 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %612
-               OpReturn
+ %main_inner = OpFunction %main_out None %607
+        %610 = OpLabel
+        %611 = OpFunctionCall %void %main_1
+        %612 = OpLoad %v4float %x_GLF_color
+        %613 = OpCompositeConstruct %main_out %612
+               OpReturnValue %613
                OpFunctionEnd
        %main = OpFunction %void None %8
-        %614 = OpLabel
-        %615 = OpFunctionCall %void %main_1
-        %617 = OpLoad %v4float %x_GLF_color
-        %618 = OpCompositeConstruct %main_out %617
-        %616 = OpFunctionCall %void %tint_symbol_2 %618
+        %615 = OpLabel
+        %616 = OpFunctionCall %main_out %main_inner
+        %617 = OpCompositeExtract %v4float %616 0
+               OpStore %x_GLF_color_1_1 %617
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl.expected.spvasm
index 9ea3312..2b27a7a 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 619
+; Bound: 618
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %BST "BST"
                OpMemberName %BST 0 "data"
@@ -89,10 +89,9 @@
                OpName %x_396_phi "x_396_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %BST 0 Offset 0
                OpMemberDecorate %BST 1 Offset 4
                OpMemberDecorate %BST 2 Offset 8
@@ -100,11 +99,11 @@
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -156,7 +155,7 @@
         %605 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %606 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-        %607 = OpTypeFunction %void %main_out
+        %607 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
        %tree = OpVariable %_ptr_Function__arr_BST_uint_10 Function %19
@@ -1149,18 +1148,17 @@
         %600 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %607
-%tint_symbol = OpFunctionParameter %main_out
-        %611 = OpLabel
-        %612 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %612
-               OpReturn
+ %main_inner = OpFunction %main_out None %607
+        %610 = OpLabel
+        %611 = OpFunctionCall %void %main_1
+        %612 = OpLoad %v4float %x_GLF_color
+        %613 = OpCompositeConstruct %main_out %612
+               OpReturnValue %613
                OpFunctionEnd
        %main = OpFunction %void None %8
-        %614 = OpLabel
-        %615 = OpFunctionCall %void %main_1
-        %617 = OpLoad %v4float %x_GLF_color
-        %618 = OpCompositeConstruct %main_out %617
-        %616 = OpFunctionCall %void %tint_symbol_2 %618
+        %615 = OpLabel
+        %616 = OpFunctionCall %main_out %main_inner
+        %617 = OpCompositeExtract %v4float %616 0
+               OpStore %x_GLF_color_1_1 %617
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/1.spvasm.expected.spvasm
index 41d75a5..15d09a8 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/1.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_8 "x_8"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %BST "BST"
                OpMemberName %BST 0 "data"
@@ -152,35 +152,35 @@
                OpName %x_612_phi "x_612_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %BST 0 Offset 0
                OpMemberDecorate %BST 1 Offset 4
                OpMemberDecorate %BST 2 Offset 8
                OpDecorate %_arr_BST_uint_10 ArrayStride 12
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -234,7 +234,7 @@
         %991 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %992 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-        %993 = OpTypeFunction %void %main_out
+        %993 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %tree = OpVariable %_ptr_Function__arr_BST_uint_10 Function %26
@@ -1901,20 +1901,20 @@
         %987 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %993
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %993
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %997 = OpLabel
-        %998 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %998
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %998 = OpFunctionCall %void %main_1
+        %999 = OpLoad %v4float %x_GLF_color
+       %1000 = OpCompositeConstruct %main_out %999
+               OpReturnValue %1000
                OpFunctionEnd
        %main = OpFunction %void None %15
-       %1000 = OpLabel
-       %1001 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %1001
-       %1002 = OpFunctionCall %void %main_1
-       %1004 = OpLoad %v4float %x_GLF_color
-       %1005 = OpCompositeConstruct %main_out %1004
-       %1003 = OpFunctionCall %void %tint_symbol_3 %1005
+       %1002 = OpLabel
+       %1004 = OpLoad %v4float %gl_FragCoord_param_1
+       %1003 = OpFunctionCall %main_out %main_inner %1004
+       %1005 = OpCompositeExtract %v4float %1003 0
+               OpStore %x_GLF_color_1_1 %1005
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/1.wgsl.expected.spvasm
index 41d75a5..15d09a8 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/1.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_8 "x_8"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %BST "BST"
                OpMemberName %BST 0 "data"
@@ -152,35 +152,35 @@
                OpName %x_612_phi "x_612_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %BST 0 Offset 0
                OpMemberDecorate %BST 1 Offset 4
                OpMemberDecorate %BST 2 Offset 8
                OpDecorate %_arr_BST_uint_10 ArrayStride 12
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -234,7 +234,7 @@
         %991 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %992 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-        %993 = OpTypeFunction %void %main_out
+        %993 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %tree = OpVariable %_ptr_Function__arr_BST_uint_10 Function %26
@@ -1901,20 +1901,20 @@
         %987 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %993
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %993
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %997 = OpLabel
-        %998 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %998
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %998 = OpFunctionCall %void %main_1
+        %999 = OpLoad %v4float %x_GLF_color
+       %1000 = OpCompositeConstruct %main_out %999
+               OpReturnValue %1000
                OpFunctionEnd
        %main = OpFunction %void None %15
-       %1000 = OpLabel
-       %1001 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %1001
-       %1002 = OpFunctionCall %void %main_1
-       %1004 = OpLoad %v4float %x_GLF_color
-       %1005 = OpCompositeConstruct %main_out %1004
-       %1003 = OpFunctionCall %void %tint_symbol_3 %1005
+       %1002 = OpLabel
+       %1004 = OpLoad %v4float %gl_FragCoord_param_1
+       %1003 = OpFunctionCall %main_out %main_inner %1004
+       %1005 = OpCompositeExtract %v4float %1003 0
+               OpStore %x_GLF_color_1_1 %1005
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.spvasm.expected.spvasm
index 3d85c3b..f512823 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.spvasm.expected.spvasm
@@ -1,19 +1,19 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 316
+; Bound: 315
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %BST "BST"
                OpMemberName %BST 0 "data"
                OpMemberName %BST 1 "leftIndex"
                OpMemberName %BST 2 "rightIndex"
                OpName %tree_1 "tree_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %makeTreeNode_struct_BST_i1_i1_i11_i1_ "makeTreeNode_struct_BST_i1_i1_i11_i1_"
                OpName %tree "tree"
                OpName %data "data"
@@ -58,30 +58,29 @@
                OpName %param_24 "param_24"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %BST 0 Offset 0
                OpMemberDecorate %BST 1 Offset 4
                OpMemberDecorate %BST 2 Offset 8
                OpDecorate %_arr_BST_uint_10 ArrayStride 12
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
         %BST = OpTypeStruct %int %int %int
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_BST_uint_10 = OpTypeArray %BST %uint_10
 %_ptr_Private__arr_BST_uint_10 = OpTypePointer Private %_arr_BST_uint_10
-          %8 = OpConstantNull %_arr_BST_uint_10
-     %tree_1 = OpVariable %_ptr_Private__arr_BST_uint_10 Private %8
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
+         %13 = OpConstantNull %_arr_BST_uint_10
+     %tree_1 = OpVariable %_ptr_Private__arr_BST_uint_10 Private %13
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %13 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %13
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %13
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
 %_ptr_Function_BST = OpTypePointer Function %BST
 %_ptr_Function_int = OpTypePointer Function %int
@@ -116,7 +115,7 @@
         %302 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %303 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-        %304 = OpTypeFunction %void %main_out
+        %304 = OpTypeFunction %main_out
 %makeTreeNode_struct_BST_i1_i1_i11_i1_ = OpFunction %void None %16
        %tree = OpFunctionParameter %_ptr_Function_BST
        %data = OpFunctionParameter %_ptr_Function_int
@@ -459,18 +458,17 @@
         %297 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %304
-%tint_symbol = OpFunctionParameter %main_out
-        %308 = OpLabel
-        %309 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %309
-               OpReturn
+ %main_inner = OpFunction %main_out None %304
+        %307 = OpLabel
+        %308 = OpFunctionCall %void %main_1
+        %309 = OpLoad %v4float %x_GLF_color
+        %310 = OpCompositeConstruct %main_out %309
+               OpReturnValue %310
                OpFunctionEnd
        %main = OpFunction %void None %163
-        %311 = OpLabel
-        %312 = OpFunctionCall %void %main_1
-        %314 = OpLoad %v4float %x_GLF_color
-        %315 = OpCompositeConstruct %main_out %314
-        %313 = OpFunctionCall %void %tint_symbol_2 %315
+        %312 = OpLabel
+        %313 = OpFunctionCall %main_out %main_inner
+        %314 = OpCompositeExtract %v4float %313 0
+               OpStore %x_GLF_color_1_1 %314
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.wgsl.expected.spvasm
index 3d85c3b..f512823 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.wgsl.expected.spvasm
@@ -1,19 +1,19 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 316
+; Bound: 315
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %BST "BST"
                OpMemberName %BST 0 "data"
                OpMemberName %BST 1 "leftIndex"
                OpMemberName %BST 2 "rightIndex"
                OpName %tree_1 "tree_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %makeTreeNode_struct_BST_i1_i1_i11_i1_ "makeTreeNode_struct_BST_i1_i1_i11_i1_"
                OpName %tree "tree"
                OpName %data "data"
@@ -58,30 +58,29 @@
                OpName %param_24 "param_24"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %BST 0 Offset 0
                OpMemberDecorate %BST 1 Offset 4
                OpMemberDecorate %BST 2 Offset 8
                OpDecorate %_arr_BST_uint_10 ArrayStride 12
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
         %BST = OpTypeStruct %int %int %int
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_BST_uint_10 = OpTypeArray %BST %uint_10
 %_ptr_Private__arr_BST_uint_10 = OpTypePointer Private %_arr_BST_uint_10
-          %8 = OpConstantNull %_arr_BST_uint_10
-     %tree_1 = OpVariable %_ptr_Private__arr_BST_uint_10 Private %8
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
+         %13 = OpConstantNull %_arr_BST_uint_10
+     %tree_1 = OpVariable %_ptr_Private__arr_BST_uint_10 Private %13
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %13 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %13
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %13
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
 %_ptr_Function_BST = OpTypePointer Function %BST
 %_ptr_Function_int = OpTypePointer Function %int
@@ -116,7 +115,7 @@
         %302 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %303 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-        %304 = OpTypeFunction %void %main_out
+        %304 = OpTypeFunction %main_out
 %makeTreeNode_struct_BST_i1_i1_i11_i1_ = OpFunction %void None %16
        %tree = OpFunctionParameter %_ptr_Function_BST
        %data = OpFunctionParameter %_ptr_Function_int
@@ -459,18 +458,17 @@
         %297 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %304
-%tint_symbol = OpFunctionParameter %main_out
-        %308 = OpLabel
-        %309 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %309
-               OpReturn
+ %main_inner = OpFunction %main_out None %304
+        %307 = OpLabel
+        %308 = OpFunctionCall %void %main_1
+        %309 = OpLoad %v4float %x_GLF_color
+        %310 = OpCompositeConstruct %main_out %309
+               OpReturnValue %310
                OpFunctionEnd
        %main = OpFunction %void None %163
-        %311 = OpLabel
-        %312 = OpFunctionCall %void %main_1
-        %314 = OpLoad %v4float %x_GLF_color
-        %315 = OpCompositeConstruct %main_out %314
-        %313 = OpFunctionCall %void %tint_symbol_2 %315
+        %312 = OpLabel
+        %313 = OpFunctionCall %main_out %main_inner
+        %314 = OpCompositeExtract %v4float %313 0
+               OpStore %x_GLF_color_1_1 %314
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.spvasm.expected.spvasm
index b62cb2f..1173db6 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %BST "BST"
                OpMemberName %BST 0 "data"
                OpMemberName %BST 1 "leftIndex"
@@ -14,8 +16,6 @@
                OpName %tree_1 "tree_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %makeTreeNode_struct_BST_i1_i1_i11_i1_ "makeTreeNode_struct_BST_i1_i1_i11_i1_"
                OpName %tree "tree"
                OpName %data "data"
@@ -62,34 +62,34 @@
                OpName %x_156_phi "x_156_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %BST 0 Offset 0
                OpMemberDecorate %BST 1 Offset 4
                OpMemberDecorate %BST 2 Offset 8
                OpDecorate %_arr_BST_uint_10 ArrayStride 12
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
         %BST = OpTypeStruct %int %int %int
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_BST_uint_10 = OpTypeArray %BST %uint_10
 %_ptr_Private__arr_BST_uint_10 = OpTypePointer Private %_arr_BST_uint_10
-          %8 = OpConstantNull %_arr_BST_uint_10
-     %tree_1 = OpVariable %_ptr_Private__arr_BST_uint_10 Private %8
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
+         %15 = OpConstantNull %_arr_BST_uint_10
+     %tree_1 = OpVariable %_ptr_Private__arr_BST_uint_10 Private %15
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %13 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %13
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %13
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %13
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_BST = OpTypePointer Function %BST
 %_ptr_Function_int = OpTypePointer Function %int
@@ -127,7 +127,7 @@
         %318 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %319 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-        %320 = OpTypeFunction %void %main_out
+        %320 = OpTypeFunction %main_out %v4float
 %makeTreeNode_struct_BST_i1_i1_i11_i1_ = OpFunction %void None %19
        %tree = OpFunctionParameter %_ptr_Function_BST
        %data = OpFunctionParameter %_ptr_Function_int
@@ -486,20 +486,20 @@
         %314 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %320
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %320
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %324 = OpLabel
-        %325 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %325
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %325 = OpFunctionCall %void %main_1
+        %326 = OpLoad %v4float %x_GLF_color
+        %327 = OpCompositeConstruct %main_out %326
+               OpReturnValue %327
                OpFunctionEnd
        %main = OpFunction %void None %166
-        %327 = OpLabel
-        %328 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %328
-        %329 = OpFunctionCall %void %main_1
-        %331 = OpLoad %v4float %x_GLF_color
-        %332 = OpCompositeConstruct %main_out %331
-        %330 = OpFunctionCall %void %tint_symbol_3 %332
+        %329 = OpLabel
+        %331 = OpLoad %v4float %gl_FragCoord_param_1
+        %330 = OpFunctionCall %main_out %main_inner %331
+        %332 = OpCompositeExtract %v4float %330 0
+               OpStore %x_GLF_color_1_1 %332
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.wgsl.expected.spvasm
index b62cb2f..1173db6 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %BST "BST"
                OpMemberName %BST 0 "data"
                OpMemberName %BST 1 "leftIndex"
@@ -14,8 +16,6 @@
                OpName %tree_1 "tree_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %makeTreeNode_struct_BST_i1_i1_i11_i1_ "makeTreeNode_struct_BST_i1_i1_i11_i1_"
                OpName %tree "tree"
                OpName %data "data"
@@ -62,34 +62,34 @@
                OpName %x_156_phi "x_156_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %BST 0 Offset 0
                OpMemberDecorate %BST 1 Offset 4
                OpMemberDecorate %BST 2 Offset 8
                OpDecorate %_arr_BST_uint_10 ArrayStride 12
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
         %BST = OpTypeStruct %int %int %int
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_BST_uint_10 = OpTypeArray %BST %uint_10
 %_ptr_Private__arr_BST_uint_10 = OpTypePointer Private %_arr_BST_uint_10
-          %8 = OpConstantNull %_arr_BST_uint_10
-     %tree_1 = OpVariable %_ptr_Private__arr_BST_uint_10 Private %8
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
+         %15 = OpConstantNull %_arr_BST_uint_10
+     %tree_1 = OpVariable %_ptr_Private__arr_BST_uint_10 Private %15
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %13 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %13
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %13
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %13
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_BST = OpTypePointer Function %BST
 %_ptr_Function_int = OpTypePointer Function %int
@@ -127,7 +127,7 @@
         %318 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %319 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-        %320 = OpTypeFunction %void %main_out
+        %320 = OpTypeFunction %main_out %v4float
 %makeTreeNode_struct_BST_i1_i1_i11_i1_ = OpFunction %void None %19
        %tree = OpFunctionParameter %_ptr_Function_BST
        %data = OpFunctionParameter %_ptr_Function_int
@@ -486,20 +486,20 @@
         %314 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %320
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %320
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %324 = OpLabel
-        %325 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %325
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %325 = OpFunctionCall %void %main_1
+        %326 = OpLoad %v4float %x_GLF_color
+        %327 = OpCompositeConstruct %main_out %326
+               OpReturnValue %327
                OpFunctionEnd
        %main = OpFunction %void None %166
-        %327 = OpLabel
-        %328 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %328
-        %329 = OpFunctionCall %void %main_1
-        %331 = OpLoad %v4float %x_GLF_color
-        %332 = OpCompositeConstruct %main_out %331
-        %330 = OpFunctionCall %void %tint_symbol_3 %332
+        %329 = OpLabel
+        %331 = OpLoad %v4float %gl_FragCoord_param_1
+        %330 = OpFunctionCall %main_out %main_inner %331
+        %332 = OpCompositeExtract %v4float %330 0
+               OpStore %x_GLF_color_1_1 %332
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.spvasm.expected.spvasm
index 990bb9a..25d57df 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 355
+; Bound: 354
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %BST "BST"
                OpMemberName %BST 0 "data"
                OpMemberName %BST 1 "leftIndex"
@@ -16,7 +17,6 @@
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_16 "x_16"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %makeTreeNode_struct_BST_i1_i1_i11_i1_ "makeTreeNode_struct_BST_i1_i1_i11_i1_"
                OpName %tree "tree"
                OpName %data "data"
@@ -62,9 +62,9 @@
                OpName %param_24 "param_24"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %BST 0 Offset 0
                OpMemberDecorate %BST 1 Offset 4
                OpMemberDecorate %BST 2 Offset 8
@@ -74,27 +74,26 @@
                OpDecorate %x_16 NonWritable
                OpDecorate %x_16 DescriptorSet 0
                OpDecorate %x_16 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
         %BST = OpTypeStruct %int %int %int
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_BST_uint_10 = OpTypeArray %BST %uint_10
 %_ptr_Private__arr_BST_uint_10 = OpTypePointer Private %_arr_BST_uint_10
-          %8 = OpConstantNull %_arr_BST_uint_10
-     %tree_1 = OpVariable %_ptr_Private__arr_BST_uint_10 Private %8
-      %float = OpTypeFloat 32
+         %13 = OpConstantNull %_arr_BST_uint_10
+     %tree_1 = OpVariable %_ptr_Private__arr_BST_uint_10 Private %13
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_16 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
 %_ptr_Function_BST = OpTypePointer Function %BST
 %_ptr_Function_int = OpTypePointer Function %int
@@ -130,7 +129,7 @@
         %341 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %342 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-        %343 = OpTypeFunction %void %main_out
+        %343 = OpTypeFunction %main_out
 %makeTreeNode_struct_BST_i1_i1_i11_i1_ = OpFunction %void None %20
        %tree = OpFunctionParameter %_ptr_Function_BST
        %data = OpFunctionParameter %_ptr_Function_int
@@ -522,18 +521,17 @@
         %336 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %343
-%tint_symbol = OpFunctionParameter %main_out
-        %347 = OpLabel
-        %348 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %348
-               OpReturn
+ %main_inner = OpFunction %main_out None %343
+        %346 = OpLabel
+        %347 = OpFunctionCall %void %main_1
+        %348 = OpLoad %v4float %x_GLF_color
+        %349 = OpCompositeConstruct %main_out %348
+               OpReturnValue %349
                OpFunctionEnd
        %main = OpFunction %void None %202
-        %350 = OpLabel
-        %351 = OpFunctionCall %void %main_1
-        %353 = OpLoad %v4float %x_GLF_color
-        %354 = OpCompositeConstruct %main_out %353
-        %352 = OpFunctionCall %void %tint_symbol_2 %354
+        %351 = OpLabel
+        %352 = OpFunctionCall %main_out %main_inner
+        %353 = OpCompositeExtract %v4float %352 0
+               OpStore %x_GLF_color_1_1 %353
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.wgsl.expected.spvasm
index 990bb9a..25d57df 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 355
+; Bound: 354
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %BST "BST"
                OpMemberName %BST 0 "data"
                OpMemberName %BST 1 "leftIndex"
@@ -16,7 +17,6 @@
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_16 "x_16"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %makeTreeNode_struct_BST_i1_i1_i11_i1_ "makeTreeNode_struct_BST_i1_i1_i11_i1_"
                OpName %tree "tree"
                OpName %data "data"
@@ -62,9 +62,9 @@
                OpName %param_24 "param_24"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %BST 0 Offset 0
                OpMemberDecorate %BST 1 Offset 4
                OpMemberDecorate %BST 2 Offset 8
@@ -74,27 +74,26 @@
                OpDecorate %x_16 NonWritable
                OpDecorate %x_16 DescriptorSet 0
                OpDecorate %x_16 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
         %BST = OpTypeStruct %int %int %int
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_BST_uint_10 = OpTypeArray %BST %uint_10
 %_ptr_Private__arr_BST_uint_10 = OpTypePointer Private %_arr_BST_uint_10
-          %8 = OpConstantNull %_arr_BST_uint_10
-     %tree_1 = OpVariable %_ptr_Private__arr_BST_uint_10 Private %8
-      %float = OpTypeFloat 32
+         %13 = OpConstantNull %_arr_BST_uint_10
+     %tree_1 = OpVariable %_ptr_Private__arr_BST_uint_10 Private %13
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_16 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
 %_ptr_Function_BST = OpTypePointer Function %BST
 %_ptr_Function_int = OpTypePointer Function %int
@@ -130,7 +129,7 @@
         %341 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %342 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-        %343 = OpTypeFunction %void %main_out
+        %343 = OpTypeFunction %main_out
 %makeTreeNode_struct_BST_i1_i1_i11_i1_ = OpFunction %void None %20
        %tree = OpFunctionParameter %_ptr_Function_BST
        %data = OpFunctionParameter %_ptr_Function_int
@@ -522,18 +521,17 @@
         %336 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %343
-%tint_symbol = OpFunctionParameter %main_out
-        %347 = OpLabel
-        %348 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %348
-               OpReturn
+ %main_inner = OpFunction %main_out None %343
+        %346 = OpLabel
+        %347 = OpFunctionCall %void %main_1
+        %348 = OpLoad %v4float %x_GLF_color
+        %349 = OpCompositeConstruct %main_out %348
+               OpReturnValue %349
                OpFunctionEnd
        %main = OpFunction %void None %202
-        %350 = OpLabel
-        %351 = OpFunctionCall %void %main_1
-        %353 = OpLoad %v4float %x_GLF_color
-        %354 = OpCompositeConstruct %main_out %353
-        %352 = OpFunctionCall %void %tint_symbol_2 %354
+        %351 = OpLabel
+        %352 = OpFunctionCall %main_out %main_inner
+        %353 = OpCompositeExtract %v4float %352 0
+               OpStore %x_GLF_color_1_1 %353
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.spvasm.expected.spvasm
index 68b226d..0f01d3e 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.spvasm.expected.spvasm
@@ -1,19 +1,19 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 316
+; Bound: 315
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %BST "BST"
                OpMemberName %BST 0 "data"
                OpMemberName %BST 1 "leftIndex"
                OpMemberName %BST 2 "rightIndex"
                OpName %tree "tree"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %makeTreeNode_struct_BST_i1_i1_i11_i1_ "makeTreeNode_struct_BST_i1_i1_i11_i1_"
                OpName %node "node"
                OpName %data "data"
@@ -58,30 +58,29 @@
                OpName %param_24 "param_24"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %BST 0 Offset 0
                OpMemberDecorate %BST 1 Offset 4
                OpMemberDecorate %BST 2 Offset 8
                OpDecorate %_arr_BST_uint_10 ArrayStride 12
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
         %BST = OpTypeStruct %int %int %int
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_BST_uint_10 = OpTypeArray %BST %uint_10
 %_ptr_Private__arr_BST_uint_10 = OpTypePointer Private %_arr_BST_uint_10
-          %8 = OpConstantNull %_arr_BST_uint_10
-       %tree = OpVariable %_ptr_Private__arr_BST_uint_10 Private %8
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
+         %13 = OpConstantNull %_arr_BST_uint_10
+       %tree = OpVariable %_ptr_Private__arr_BST_uint_10 Private %13
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %13 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %13
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %13
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
 %_ptr_Function_BST = OpTypePointer Function %BST
 %_ptr_Function_int = OpTypePointer Function %int
@@ -116,7 +115,7 @@
         %302 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %303 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-        %304 = OpTypeFunction %void %main_out
+        %304 = OpTypeFunction %main_out
 %makeTreeNode_struct_BST_i1_i1_i11_i1_ = OpFunction %void None %16
        %node = OpFunctionParameter %_ptr_Function_BST
        %data = OpFunctionParameter %_ptr_Function_int
@@ -459,18 +458,17 @@
         %297 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %304
-%tint_symbol = OpFunctionParameter %main_out
-        %308 = OpLabel
-        %309 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %309
-               OpReturn
+ %main_inner = OpFunction %main_out None %304
+        %307 = OpLabel
+        %308 = OpFunctionCall %void %main_1
+        %309 = OpLoad %v4float %x_GLF_color
+        %310 = OpCompositeConstruct %main_out %309
+               OpReturnValue %310
                OpFunctionEnd
        %main = OpFunction %void None %163
-        %311 = OpLabel
-        %312 = OpFunctionCall %void %main_1
-        %314 = OpLoad %v4float %x_GLF_color
-        %315 = OpCompositeConstruct %main_out %314
-        %313 = OpFunctionCall %void %tint_symbol_2 %315
+        %312 = OpLabel
+        %313 = OpFunctionCall %main_out %main_inner
+        %314 = OpCompositeExtract %v4float %313 0
+               OpStore %x_GLF_color_1_1 %314
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.wgsl.expected.spvasm
index 68b226d..0f01d3e 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.wgsl.expected.spvasm
@@ -1,19 +1,19 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 316
+; Bound: 315
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %BST "BST"
                OpMemberName %BST 0 "data"
                OpMemberName %BST 1 "leftIndex"
                OpMemberName %BST 2 "rightIndex"
                OpName %tree "tree"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %makeTreeNode_struct_BST_i1_i1_i11_i1_ "makeTreeNode_struct_BST_i1_i1_i11_i1_"
                OpName %node "node"
                OpName %data "data"
@@ -58,30 +58,29 @@
                OpName %param_24 "param_24"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %BST 0 Offset 0
                OpMemberDecorate %BST 1 Offset 4
                OpMemberDecorate %BST 2 Offset 8
                OpDecorate %_arr_BST_uint_10 ArrayStride 12
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
         %BST = OpTypeStruct %int %int %int
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_BST_uint_10 = OpTypeArray %BST %uint_10
 %_ptr_Private__arr_BST_uint_10 = OpTypePointer Private %_arr_BST_uint_10
-          %8 = OpConstantNull %_arr_BST_uint_10
-       %tree = OpVariable %_ptr_Private__arr_BST_uint_10 Private %8
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
+         %13 = OpConstantNull %_arr_BST_uint_10
+       %tree = OpVariable %_ptr_Private__arr_BST_uint_10 Private %13
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %13 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %13
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %13
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
 %_ptr_Function_BST = OpTypePointer Function %BST
 %_ptr_Function_int = OpTypePointer Function %int
@@ -116,7 +115,7 @@
         %302 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %303 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-        %304 = OpTypeFunction %void %main_out
+        %304 = OpTypeFunction %main_out
 %makeTreeNode_struct_BST_i1_i1_i11_i1_ = OpFunction %void None %16
        %node = OpFunctionParameter %_ptr_Function_BST
        %data = OpFunctionParameter %_ptr_Function_int
@@ -459,18 +458,17 @@
         %297 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %304
-%tint_symbol = OpFunctionParameter %main_out
-        %308 = OpLabel
-        %309 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %309
-               OpReturn
+ %main_inner = OpFunction %main_out None %304
+        %307 = OpLabel
+        %308 = OpFunctionCall %void %main_1
+        %309 = OpLoad %v4float %x_GLF_color
+        %310 = OpCompositeConstruct %main_out %309
+               OpReturnValue %310
                OpFunctionEnd
        %main = OpFunction %void None %163
-        %311 = OpLabel
-        %312 = OpFunctionCall %void %main_1
-        %314 = OpLoad %v4float %x_GLF_color
-        %315 = OpCompositeConstruct %main_out %314
-        %313 = OpFunctionCall %void %tint_symbol_2 %315
+        %312 = OpLabel
+        %313 = OpFunctionCall %main_out %main_inner
+        %314 = OpCompositeExtract %v4float %313 0
+               OpStore %x_GLF_color_1_1 %314
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.spvasm.expected.spvasm
index 885a0ba..b8f0ad9 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 371
+; Bound: 370
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %QuicksortObject "QuicksortObject"
                OpMemberName %QuicksortObject 0 "numbers"
                OpName %obj "obj"
@@ -19,7 +20,6 @@
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_50 "x_50"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %makeTreeNode_struct_BST_i1_i1_i11_i1_ "makeTreeNode_struct_BST_i1_i1_i11_i1_"
                OpName %node "node"
                OpName %data "data"
@@ -70,9 +70,9 @@
                OpName %param_25 "param_25"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %QuicksortObject 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpMemberDecorate %BST 0 Offset 0
@@ -84,32 +84,31 @@
                OpDecorate %x_50 NonWritable
                OpDecorate %x_50 DescriptorSet 0
                OpDecorate %x_50 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %QuicksortObject = OpTypeStruct %_arr_int_uint_10
 %_ptr_Private_QuicksortObject = OpTypePointer Private %QuicksortObject
-          %8 = OpConstantNull %QuicksortObject
-        %obj = OpVariable %_ptr_Private_QuicksortObject Private %8
+         %13 = OpConstantNull %QuicksortObject
+        %obj = OpVariable %_ptr_Private_QuicksortObject Private %13
         %BST = OpTypeStruct %int %int %int
 %_arr_BST_uint_10 = OpTypeArray %BST %uint_10
 %_ptr_Private__arr_BST_uint_10 = OpTypePointer Private %_arr_BST_uint_10
-         %13 = OpConstantNull %_arr_BST_uint_10
-       %tree = OpVariable %_ptr_Private__arr_BST_uint_10 Private %13
-      %float = OpTypeFloat 32
+         %18 = OpConstantNull %_arr_BST_uint_10
+       %tree = OpVariable %_ptr_Private__arr_BST_uint_10 Private %18
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_50 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %22 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %22
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %22
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
 %_ptr_Function_BST = OpTypePointer Function %BST
 %_ptr_Function_int = OpTypePointer Function %int
@@ -146,7 +145,7 @@
         %357 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %358 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-        %359 = OpTypeFunction %void %main_out
+        %359 = OpTypeFunction %main_out
 %makeTreeNode_struct_BST_i1_i1_i11_i1_ = OpFunction %void None %25
        %node = OpFunctionParameter %_ptr_Function_BST
        %data = OpFunctionParameter %_ptr_Function_int
@@ -555,18 +554,17 @@
         %352 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %359
-%tint_symbol = OpFunctionParameter %main_out
-        %363 = OpLabel
-        %364 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %364
-               OpReturn
+ %main_inner = OpFunction %main_out None %359
+        %362 = OpLabel
+        %363 = OpFunctionCall %void %main_1
+        %364 = OpLoad %v4float %x_GLF_color
+        %365 = OpCompositeConstruct %main_out %364
+               OpReturnValue %365
                OpFunctionEnd
        %main = OpFunction %void None %183
-        %366 = OpLabel
-        %367 = OpFunctionCall %void %main_1
-        %369 = OpLoad %v4float %x_GLF_color
-        %370 = OpCompositeConstruct %main_out %369
-        %368 = OpFunctionCall %void %tint_symbol_2 %370
+        %367 = OpLabel
+        %368 = OpFunctionCall %main_out %main_inner
+        %369 = OpCompositeExtract %v4float %368 0
+               OpStore %x_GLF_color_1_1 %369
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.wgsl.expected.spvasm
index 885a0ba..b8f0ad9 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 371
+; Bound: 370
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %QuicksortObject "QuicksortObject"
                OpMemberName %QuicksortObject 0 "numbers"
                OpName %obj "obj"
@@ -19,7 +20,6 @@
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_50 "x_50"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %makeTreeNode_struct_BST_i1_i1_i11_i1_ "makeTreeNode_struct_BST_i1_i1_i11_i1_"
                OpName %node "node"
                OpName %data "data"
@@ -70,9 +70,9 @@
                OpName %param_25 "param_25"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %QuicksortObject 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpMemberDecorate %BST 0 Offset 0
@@ -84,32 +84,31 @@
                OpDecorate %x_50 NonWritable
                OpDecorate %x_50 DescriptorSet 0
                OpDecorate %x_50 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %QuicksortObject = OpTypeStruct %_arr_int_uint_10
 %_ptr_Private_QuicksortObject = OpTypePointer Private %QuicksortObject
-          %8 = OpConstantNull %QuicksortObject
-        %obj = OpVariable %_ptr_Private_QuicksortObject Private %8
+         %13 = OpConstantNull %QuicksortObject
+        %obj = OpVariable %_ptr_Private_QuicksortObject Private %13
         %BST = OpTypeStruct %int %int %int
 %_arr_BST_uint_10 = OpTypeArray %BST %uint_10
 %_ptr_Private__arr_BST_uint_10 = OpTypePointer Private %_arr_BST_uint_10
-         %13 = OpConstantNull %_arr_BST_uint_10
-       %tree = OpVariable %_ptr_Private__arr_BST_uint_10 Private %13
-      %float = OpTypeFloat 32
+         %18 = OpConstantNull %_arr_BST_uint_10
+       %tree = OpVariable %_ptr_Private__arr_BST_uint_10 Private %18
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_50 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %22 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %22
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %22
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
 %_ptr_Function_BST = OpTypePointer Function %BST
 %_ptr_Function_int = OpTypePointer Function %int
@@ -146,7 +145,7 @@
         %357 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %358 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-        %359 = OpTypeFunction %void %main_out
+        %359 = OpTypeFunction %main_out
 %makeTreeNode_struct_BST_i1_i1_i11_i1_ = OpFunction %void None %25
        %node = OpFunctionParameter %_ptr_Function_BST
        %data = OpFunctionParameter %_ptr_Function_int
@@ -555,18 +554,17 @@
         %352 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %359
-%tint_symbol = OpFunctionParameter %main_out
-        %363 = OpLabel
-        %364 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %364
-               OpReturn
+ %main_inner = OpFunction %main_out None %359
+        %362 = OpLabel
+        %363 = OpFunctionCall %void %main_1
+        %364 = OpLoad %v4float %x_GLF_color
+        %365 = OpCompositeConstruct %main_out %364
+               OpReturnValue %365
                OpFunctionEnd
        %main = OpFunction %void None %183
-        %366 = OpLabel
-        %367 = OpFunctionCall %void %main_1
-        %369 = OpLoad %v4float %x_GLF_color
-        %370 = OpCompositeConstruct %main_out %369
-        %368 = OpFunctionCall %void %tint_symbol_2 %370
+        %367 = OpLabel
+        %368 = OpFunctionCall %main_out %main_inner
+        %369 = OpCompositeExtract %v4float %368 0
+               OpStore %x_GLF_color_1_1 %369
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.spvasm.expected.spvasm
index d892d09..4742393 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %83 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %collatz_i1_ "collatz_i1_"
                OpName %v "v"
                OpName %count "count"
@@ -25,32 +25,32 @@
                OpName %indexable "indexable"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
          %15 = OpTypeFunction %int %_ptr_Function_int
@@ -97,7 +97,7 @@
      %int_16 = OpConstant %int 16
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %124 = OpTypeFunction %void %main_out
+        %124 = OpTypeFunction %main_out %v4float
 %collatz_i1_ = OpFunction %int None %15
           %v = OpFunctionParameter %_ptr_Function_int
          %20 = OpLabel
@@ -181,20 +181,20 @@
                OpStore %x_GLF_color %123
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %124
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %124
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %128 = OpLabel
-        %129 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %129
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %129 = OpFunctionCall %void %main_1
+        %130 = OpLoad %v4float %x_GLF_color
+        %131 = OpCompositeConstruct %main_out %130
+               OpReturnValue %131
                OpFunctionEnd
        %main = OpFunction %void None %57
-        %131 = OpLabel
-        %132 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %132
-        %133 = OpFunctionCall %void %main_1
-        %135 = OpLoad %v4float %x_GLF_color
-        %136 = OpCompositeConstruct %main_out %135
-        %134 = OpFunctionCall %void %tint_symbol_3 %136
+        %133 = OpLabel
+        %135 = OpLoad %v4float %gl_FragCoord_param_1
+        %134 = OpFunctionCall %main_out %main_inner %135
+        %136 = OpCompositeExtract %v4float %134 0
+               OpStore %x_GLF_color_1_1 %136
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.wgsl.expected.spvasm
index d892d09..4742393 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %83 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %collatz_i1_ "collatz_i1_"
                OpName %v "v"
                OpName %count "count"
@@ -25,32 +25,32 @@
                OpName %indexable "indexable"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
 %_ptr_Function_int = OpTypePointer Function %int
          %15 = OpTypeFunction %int %_ptr_Function_int
@@ -97,7 +97,7 @@
      %int_16 = OpConstant %int 16
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-        %124 = OpTypeFunction %void %main_out
+        %124 = OpTypeFunction %main_out %v4float
 %collatz_i1_ = OpFunction %int None %15
           %v = OpFunctionParameter %_ptr_Function_int
          %20 = OpLabel
@@ -181,20 +181,20 @@
                OpStore %x_GLF_color %123
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %124
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %124
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %128 = OpLabel
-        %129 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %129
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %129 = OpFunctionCall %void %main_1
+        %130 = OpLoad %v4float %x_GLF_color
+        %131 = OpCompositeConstruct %main_out %130
+               OpReturnValue %131
                OpFunctionEnd
        %main = OpFunction %void None %57
-        %131 = OpLabel
-        %132 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %132
-        %133 = OpFunctionCall %void %main_1
-        %135 = OpLoad %v4float %x_GLF_color
-        %136 = OpCompositeConstruct %main_out %135
-        %134 = OpFunctionCall %void %tint_symbol_3 %136
+        %133 = OpLabel
+        %135 = OpLoad %v4float %gl_FragCoord_param_1
+        %134 = OpFunctionCall %main_out %main_inner %135
+        %136 = OpCompositeExtract %v4float %134 0
+               OpStore %x_GLF_color_1_1 %136
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.spvasm.expected.spvasm
index e4c4488..f86cae1 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %59 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "injectionSwitch"
                OpName %x_6 "x_6"
@@ -16,8 +18,6 @@
                OpName %x_9 "x_9"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %c "c"
                OpName %x_54 "x_54"
@@ -58,9 +58,11 @@
                OpName %x_147 "x_147"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_6 NonWritable
@@ -71,10 +73,14 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
@@ -82,15 +88,9 @@
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %12
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -129,7 +129,7 @@
       %int_3 = OpConstant %int 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %275 = OpTypeFunction %void %main_out
+        %275 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
           %c = OpVariable %_ptr_Function_v3float Function %25
@@ -481,20 +481,20 @@
                OpStore %x_GLF_color %274
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %275
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %275
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %279 = OpLabel
-        %280 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %280
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %280 = OpFunctionCall %void %main_1
+        %281 = OpLoad %v4float %x_GLF_color
+        %282 = OpCompositeConstruct %main_out %281
+               OpReturnValue %282
                OpFunctionEnd
        %main = OpFunction %void None %18
-        %282 = OpLabel
-        %283 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %283
-        %284 = OpFunctionCall %void %main_1
-        %286 = OpLoad %v4float %x_GLF_color
-        %287 = OpCompositeConstruct %main_out %286
-        %285 = OpFunctionCall %void %tint_symbol_3 %287
+        %284 = OpLabel
+        %286 = OpLoad %v4float %gl_FragCoord_param_1
+        %285 = OpFunctionCall %main_out %main_inner %286
+        %287 = OpCompositeExtract %v4float %285 0
+               OpStore %x_GLF_color_1_1 %287
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.wgsl.expected.spvasm
index a037b9b..be70146 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %59 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "injectionSwitch"
                OpName %x_6 "x_6"
@@ -16,8 +18,6 @@
                OpName %x_9 "x_9"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %c "c"
                OpName %x_54 "x_54"
@@ -58,9 +58,11 @@
                OpName %x_147 "x_147"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_6 NonWritable
@@ -71,10 +73,14 @@
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
@@ -82,15 +88,9 @@
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %12
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %18 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -129,7 +129,7 @@
       %int_3 = OpConstant %int 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %265 = OpTypeFunction %void %main_out
+        %265 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %18
          %21 = OpLabel
           %c = OpVariable %_ptr_Function_v3float Function %25
@@ -471,20 +471,20 @@
                OpStore %x_GLF_color %264
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %265
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %265
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %269 = OpLabel
-        %270 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %270
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %270 = OpFunctionCall %void %main_1
+        %271 = OpLoad %v4float %x_GLF_color
+        %272 = OpCompositeConstruct %main_out %271
+               OpReturnValue %272
                OpFunctionEnd
        %main = OpFunction %void None %18
-        %272 = OpLabel
-        %273 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %273
-        %274 = OpFunctionCall %void %main_1
-        %276 = OpLoad %v4float %x_GLF_color
-        %277 = OpCompositeConstruct %main_out %276
-        %275 = OpFunctionCall %void %tint_symbol_3 %277
+        %274 = OpLabel
+        %276 = OpLoad %v4float %gl_FragCoord_param_1
+        %275 = OpFunctionCall %main_out %main_inner %276
+        %277 = OpCompositeExtract %v4float %275 0
+               OpStore %x_GLF_color_1_1 %277
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.spvasm.expected.spvasm
index f7d8cfd..d9bbe00 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %56 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_13 "x_13"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %compute_value_f1_f1_ "compute_value_f1_f1_"
                OpName %limit "limit"
                OpName %thirty_two "thirty_two"
@@ -30,31 +30,31 @@
                OpName %i_1 "i_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_13 NonWritable
                OpDecorate %x_13 DescriptorSet 0
                OpDecorate %x_13 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_13 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_float = OpTypePointer Function %float
          %15 = OpTypeFunction %float %_ptr_Function_float %_ptr_Function_float
          %22 = OpConstantNull %float
@@ -88,7 +88,7 @@
       %int_3 = OpConstant %int 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %164 = OpTypeFunction %void %main_out
+        %164 = OpTypeFunction %main_out %v4float
 %compute_value_f1_f1_ = OpFunction %float None %15
       %limit = OpFunctionParameter %_ptr_Function_float
  %thirty_two = OpFunctionParameter %_ptr_Function_float
@@ -252,20 +252,20 @@
                OpStore %x_GLF_color %163
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %164
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %164
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %168 = OpLabel
-        %169 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %169
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %169 = OpFunctionCall %void %main_1
+        %170 = OpLoad %v4float %x_GLF_color
+        %171 = OpCompositeConstruct %main_out %170
+               OpReturnValue %171
                OpFunctionEnd
        %main = OpFunction %void None %81
-        %171 = OpLabel
-        %172 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %172
-        %173 = OpFunctionCall %void %main_1
-        %175 = OpLoad %v4float %x_GLF_color
-        %176 = OpCompositeConstruct %main_out %175
-        %174 = OpFunctionCall %void %tint_symbol_3 %176
+        %173 = OpLabel
+        %175 = OpLoad %v4float %gl_FragCoord_param_1
+        %174 = OpFunctionCall %main_out %main_inner %175
+        %176 = OpCompositeExtract %v4float %174 0
+               OpStore %x_GLF_color_1_1 %176
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.wgsl.expected.spvasm
index dfc561e..c64868a 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %56 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_13 "x_13"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %compute_value_f1_f1_ "compute_value_f1_f1_"
                OpName %limit "limit"
                OpName %thirty_two "thirty_two"
@@ -30,31 +30,31 @@
                OpName %i_1 "i_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_13 NonWritable
                OpDecorate %x_13 DescriptorSet 0
                OpDecorate %x_13 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_13 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_float = OpTypePointer Function %float
          %15 = OpTypeFunction %float %_ptr_Function_float %_ptr_Function_float
          %22 = OpConstantNull %float
@@ -88,7 +88,7 @@
       %int_3 = OpConstant %int 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %159 = OpTypeFunction %void %main_out
+        %159 = OpTypeFunction %main_out %v4float
 %compute_value_f1_f1_ = OpFunction %float None %15
       %limit = OpFunctionParameter %_ptr_Function_float
  %thirty_two = OpFunctionParameter %_ptr_Function_float
@@ -247,20 +247,20 @@
                OpStore %x_GLF_color %158
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %159
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %159
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %163 = OpLabel
-        %164 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %164
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %164 = OpFunctionCall %void %main_1
+        %165 = OpLoad %v4float %x_GLF_color
+        %166 = OpCompositeConstruct %main_out %165
+               OpReturnValue %166
                OpFunctionEnd
        %main = OpFunction %void None %76
-        %166 = OpLabel
-        %167 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %167
-        %168 = OpFunctionCall %void %main_1
-        %170 = OpLoad %v4float %x_GLF_color
-        %171 = OpCompositeConstruct %main_out %170
-        %169 = OpFunctionCall %void %tint_symbol_3 %171
+        %168 = OpLabel
+        %170 = OpLoad %v4float %gl_FragCoord_param_1
+        %169 = OpFunctionCall %main_out %main_inner %170
+        %171 = OpCompositeExtract %v4float %169 0
+               OpStore %x_GLF_color_1_1 %171
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.spvasm.expected.spvasm
index b1caf46..21e010e 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %59 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_13 "x_13"
@@ -16,8 +18,6 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "injectionSwitch"
                OpName %x_20 "x_20"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %compute_value_f1_f1_ "compute_value_f1_f1_"
                OpName %limit "limit"
                OpName %thirty_two "thirty_two"
@@ -34,9 +34,11 @@
                OpName %x_58 "x_58"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_13 NonWritable
@@ -47,26 +49,24 @@
                OpDecorate %x_20 NonWritable
                OpDecorate %x_20 DescriptorSet 0
                OpDecorate %x_20 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_13 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_20 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
 %_ptr_Function_float = OpTypePointer Function %float
          %18 = OpTypeFunction %float %_ptr_Function_float %_ptr_Function_float
          %25 = OpConstantNull %float
@@ -100,7 +100,7 @@
       %int_3 = OpConstant %int 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %178 = OpTypeFunction %void %main_out
+        %178 = OpTypeFunction %main_out %v4float
 %compute_value_f1_f1_ = OpFunction %float None %18
       %limit = OpFunctionParameter %_ptr_Function_float
  %thirty_two = OpFunctionParameter %_ptr_Function_float
@@ -281,20 +281,20 @@
                OpStore %x_GLF_color %177
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %178
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %178
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %182 = OpLabel
-        %183 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %183
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %183 = OpFunctionCall %void %main_1
+        %184 = OpLoad %v4float %x_GLF_color
+        %185 = OpCompositeConstruct %main_out %184
+               OpReturnValue %185
                OpFunctionEnd
        %main = OpFunction %void None %84
-        %185 = OpLabel
-        %186 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %186
-        %187 = OpFunctionCall %void %main_1
-        %189 = OpLoad %v4float %x_GLF_color
-        %190 = OpCompositeConstruct %main_out %189
-        %188 = OpFunctionCall %void %tint_symbol_3 %190
+        %187 = OpLabel
+        %189 = OpLoad %v4float %gl_FragCoord_param_1
+        %188 = OpFunctionCall %main_out %main_inner %189
+        %190 = OpCompositeExtract %v4float %188 0
+               OpStore %x_GLF_color_1_1 %190
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.wgsl.expected.spvasm
index 8fe03c2..b918afc 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %59 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_13 "x_13"
@@ -16,8 +18,6 @@
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "injectionSwitch"
                OpName %x_20 "x_20"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %compute_value_f1_f1_ "compute_value_f1_f1_"
                OpName %limit "limit"
                OpName %thirty_two "thirty_two"
@@ -34,9 +34,11 @@
                OpName %x_58 "x_58"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_13 NonWritable
@@ -47,26 +49,24 @@
                OpDecorate %x_20 NonWritable
                OpDecorate %x_20 DescriptorSet 0
                OpDecorate %x_20 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_13 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_20 = OpVariable %_ptr_Uniform_buf1 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
 %_ptr_Function_float = OpTypePointer Function %float
          %18 = OpTypeFunction %float %_ptr_Function_float %_ptr_Function_float
          %25 = OpConstantNull %float
@@ -100,7 +100,7 @@
       %int_3 = OpConstant %int 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %173 = OpTypeFunction %void %main_out
+        %173 = OpTypeFunction %main_out %v4float
 %compute_value_f1_f1_ = OpFunction %float None %18
       %limit = OpFunctionParameter %_ptr_Function_float
  %thirty_two = OpFunctionParameter %_ptr_Function_float
@@ -276,20 +276,20 @@
                OpStore %x_GLF_color %172
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %173
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %173
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %177 = OpLabel
-        %178 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %178
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %178 = OpFunctionCall %void %main_1
+        %179 = OpLoad %v4float %x_GLF_color
+        %180 = OpCompositeConstruct %main_out %179
+               OpReturnValue %180
                OpFunctionEnd
        %main = OpFunction %void None %79
-        %180 = OpLabel
-        %181 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %181
-        %182 = OpFunctionCall %void %main_1
-        %184 = OpLoad %v4float %x_GLF_color
-        %185 = OpCompositeConstruct %main_out %184
-        %183 = OpFunctionCall %void %tint_symbol_3 %185
+        %182 = OpLabel
+        %184 = OpLoad %v4float %gl_FragCoord_param_1
+        %183 = OpFunctionCall %main_out %main_inner %184
+        %185 = OpCompositeExtract %v4float %183 0
+               OpStore %x_GLF_color_1_1 %185
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.spvasm.expected.spvasm
index a7cfea1..7a51a84 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %64 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_10 "x_10"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %compute_value_f1_f1_ "compute_value_f1_f1_"
                OpName %limit "limit"
                OpName %thirty_two "thirty_two"
@@ -38,31 +38,31 @@
                OpName %x_69 "x_69"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_float = OpTypePointer Function %float
          %15 = OpTypeFunction %float %_ptr_Function_float %_ptr_Function_float
          %22 = OpConstantNull %float
@@ -97,7 +97,7 @@
       %int_3 = OpConstant %int 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %172 = OpTypeFunction %void %main_out
+        %172 = OpTypeFunction %main_out %v4float
 %compute_value_f1_f1_ = OpFunction %float None %15
       %limit = OpFunctionParameter %_ptr_Function_float
  %thirty_two = OpFunctionParameter %_ptr_Function_float
@@ -277,20 +277,20 @@
                OpStore %x_GLF_color %171
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %172
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %172
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %176 = OpLabel
-        %177 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %177
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %177 = OpFunctionCall %void %main_1
+        %178 = OpLoad %v4float %x_GLF_color
+        %179 = OpCompositeConstruct %main_out %178
+               OpReturnValue %179
                OpFunctionEnd
        %main = OpFunction %void None %94
-        %179 = OpLabel
-        %180 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %180
-        %181 = OpFunctionCall %void %main_1
-        %183 = OpLoad %v4float %x_GLF_color
-        %184 = OpCompositeConstruct %main_out %183
-        %182 = OpFunctionCall %void %tint_symbol_3 %184
+        %181 = OpLabel
+        %183 = OpLoad %v4float %gl_FragCoord_param_1
+        %182 = OpFunctionCall %main_out %main_inner %183
+        %184 = OpCompositeExtract %v4float %182 0
+               OpStore %x_GLF_color_1_1 %184
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.wgsl.expected.spvasm
index f1e2c9b..b82742a 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %64 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_10 "x_10"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %compute_value_f1_f1_ "compute_value_f1_f1_"
                OpName %limit "limit"
                OpName %thirty_two "thirty_two"
@@ -38,31 +38,31 @@
                OpName %x_69 "x_69"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_float = OpTypePointer Function %float
          %15 = OpTypeFunction %float %_ptr_Function_float %_ptr_Function_float
          %22 = OpConstantNull %float
@@ -97,7 +97,7 @@
       %int_3 = OpConstant %int 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %167 = OpTypeFunction %void %main_out
+        %167 = OpTypeFunction %main_out %v4float
 %compute_value_f1_f1_ = OpFunction %float None %15
       %limit = OpFunctionParameter %_ptr_Function_float
  %thirty_two = OpFunctionParameter %_ptr_Function_float
@@ -272,20 +272,20 @@
                OpStore %x_GLF_color %166
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %167
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %167
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %171 = OpLabel
-        %172 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %172
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %172 = OpFunctionCall %void %main_1
+        %173 = OpLoad %v4float %x_GLF_color
+        %174 = OpCompositeConstruct %main_out %173
+               OpReturnValue %174
                OpFunctionEnd
        %main = OpFunction %void None %89
-        %174 = OpLabel
-        %175 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %175
-        %176 = OpFunctionCall %void %main_1
-        %178 = OpLoad %v4float %x_GLF_color
-        %179 = OpCompositeConstruct %main_out %178
-        %177 = OpFunctionCall %void %tint_symbol_3 %179
+        %176 = OpLabel
+        %178 = OpLoad %v4float %gl_FragCoord_param_1
+        %177 = OpFunctionCall %main_out %main_inner %178
+        %179 = OpCompositeExtract %v4float %177 0
+               OpStore %x_GLF_color_1_1 %179
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.spvasm.expected.spvasm
index cc78cd7..7219acd 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %67 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_10 "x_10"
@@ -16,8 +18,6 @@
                OpMemberName %buf1 0 "injectionSwitch"
                OpName %x_16 "x_16"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %compute_value_f1_f1_ "compute_value_f1_f1_"
                OpName %limit "limit"
                OpName %thirty_two "thirty_two"
@@ -42,9 +42,11 @@
                OpName %x_75 "x_75"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_10 NonWritable
@@ -55,26 +57,24 @@
                OpDecorate %x_16 NonWritable
                OpDecorate %x_16 DescriptorSet 0
                OpDecorate %x_16 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_16 = OpVariable %_ptr_Uniform_buf1 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_float = OpTypePointer Function %float
          %18 = OpTypeFunction %float %_ptr_Function_float %_ptr_Function_float
          %25 = OpConstantNull %float
@@ -109,7 +109,7 @@
       %int_3 = OpConstant %int 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %184 = OpTypeFunction %void %main_out
+        %184 = OpTypeFunction %main_out %v4float
 %compute_value_f1_f1_ = OpFunction %float None %18
       %limit = OpFunctionParameter %_ptr_Function_float
  %thirty_two = OpFunctionParameter %_ptr_Function_float
@@ -302,20 +302,20 @@
                OpStore %x_GLF_color %183
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %184
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %184
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %188 = OpLabel
-        %189 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %189
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %189 = OpFunctionCall %void %main_1
+        %190 = OpLoad %v4float %x_GLF_color
+        %191 = OpCompositeConstruct %main_out %190
+               OpReturnValue %191
                OpFunctionEnd
        %main = OpFunction %void None %97
-        %191 = OpLabel
-        %192 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %192
-        %193 = OpFunctionCall %void %main_1
-        %195 = OpLoad %v4float %x_GLF_color
-        %196 = OpCompositeConstruct %main_out %195
-        %194 = OpFunctionCall %void %tint_symbol_3 %196
+        %193 = OpLabel
+        %195 = OpLoad %v4float %gl_FragCoord_param_1
+        %194 = OpFunctionCall %main_out %main_inner %195
+        %196 = OpCompositeExtract %v4float %194 0
+               OpStore %x_GLF_color_1_1 %196
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.wgsl.expected.spvasm
index a05688b..4152129 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %67 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_10 "x_10"
@@ -16,8 +18,6 @@
                OpMemberName %buf1 0 "injectionSwitch"
                OpName %x_16 "x_16"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %compute_value_f1_f1_ "compute_value_f1_f1_"
                OpName %limit "limit"
                OpName %thirty_two "thirty_two"
@@ -42,9 +42,11 @@
                OpName %x_75 "x_75"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_10 NonWritable
@@ -55,26 +57,24 @@
                OpDecorate %x_16 NonWritable
                OpDecorate %x_16 DescriptorSet 0
                OpDecorate %x_16 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_16 = OpVariable %_ptr_Uniform_buf1 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_float = OpTypePointer Function %float
          %18 = OpTypeFunction %float %_ptr_Function_float %_ptr_Function_float
          %25 = OpConstantNull %float
@@ -109,7 +109,7 @@
       %int_3 = OpConstant %int 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %179 = OpTypeFunction %void %main_out
+        %179 = OpTypeFunction %main_out %v4float
 %compute_value_f1_f1_ = OpFunction %float None %18
       %limit = OpFunctionParameter %_ptr_Function_float
  %thirty_two = OpFunctionParameter %_ptr_Function_float
@@ -297,20 +297,20 @@
                OpStore %x_GLF_color %178
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %179
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %179
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %183 = OpLabel
-        %184 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %184
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %184 = OpFunctionCall %void %main_1
+        %185 = OpLoad %v4float %x_GLF_color
+        %186 = OpCompositeConstruct %main_out %185
+               OpReturnValue %186
                OpFunctionEnd
        %main = OpFunction %void None %92
-        %186 = OpLabel
-        %187 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %187
-        %188 = OpFunctionCall %void %main_1
-        %190 = OpLoad %v4float %x_GLF_color
-        %191 = OpCompositeConstruct %main_out %190
-        %189 = OpFunctionCall %void %tint_symbol_3 %191
+        %188 = OpLabel
+        %190 = OpLoad %v4float %gl_FragCoord_param_1
+        %189 = OpFunctionCall %main_out %main_inner %190
+        %191 = OpCompositeExtract %v4float %189 0
+               OpStore %x_GLF_color_1_1 %191
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.spvasm.expected.spvasm
index ddb9a0a..9f31452 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %59 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_13 "x_13"
@@ -16,8 +18,6 @@
                OpMemberName %buf1 0 "injectionSwitch"
                OpName %x_19 "x_19"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %compute_value_f1_f1_ "compute_value_f1_f1_"
                OpName %limit "limit"
                OpName %thirty_two "thirty_two"
@@ -35,9 +35,11 @@
                OpName %j "j"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_13 NonWritable
@@ -48,26 +50,24 @@
                OpDecorate %x_19 NonWritable
                OpDecorate %x_19 DescriptorSet 0
                OpDecorate %x_19 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_13 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_19 = OpVariable %_ptr_Uniform_buf1 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_float = OpTypePointer Function %float
          %18 = OpTypeFunction %float %_ptr_Function_float %_ptr_Function_float
          %25 = OpConstantNull %float
@@ -103,7 +103,7 @@
     %float_1 = OpConstant %float 1
     %float_0 = OpConstant %float 0
    %main_out = OpTypeStruct %v4float
-        %199 = OpTypeFunction %void %main_out
+        %199 = OpTypeFunction %main_out %v4float
 %compute_value_f1_f1_ = OpFunction %float None %18
       %limit = OpFunctionParameter %_ptr_Function_float
  %thirty_two = OpFunctionParameter %_ptr_Function_float
@@ -317,20 +317,20 @@
                OpStore %x_GLF_color %198
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %199
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %199
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %203 = OpLabel
-        %204 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %204
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %204 = OpFunctionCall %void %main_1
+        %205 = OpLoad %v4float %x_GLF_color
+        %206 = OpCompositeConstruct %main_out %205
+               OpReturnValue %206
                OpFunctionEnd
        %main = OpFunction %void None %84
-        %206 = OpLabel
-        %207 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %207
-        %208 = OpFunctionCall %void %main_1
-        %210 = OpLoad %v4float %x_GLF_color
-        %211 = OpCompositeConstruct %main_out %210
-        %209 = OpFunctionCall %void %tint_symbol_3 %211
+        %208 = OpLabel
+        %210 = OpLoad %v4float %gl_FragCoord_param_1
+        %209 = OpFunctionCall %main_out %main_inner %210
+        %211 = OpCompositeExtract %v4float %209 0
+               OpStore %x_GLF_color_1_1 %211
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.wgsl.expected.spvasm
index 9faf394..f050722 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
          %59 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_13 "x_13"
@@ -16,8 +18,6 @@
                OpMemberName %buf1 0 "injectionSwitch"
                OpName %x_19 "x_19"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %compute_value_f1_f1_ "compute_value_f1_f1_"
                OpName %limit "limit"
                OpName %thirty_two "thirty_two"
@@ -35,9 +35,11 @@
                OpName %j "j"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_13 NonWritable
@@ -48,26 +50,24 @@
                OpDecorate %x_19 NonWritable
                OpDecorate %x_19 DescriptorSet 0
                OpDecorate %x_19 Binding 1
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_13 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_19 = OpVariable %_ptr_Uniform_buf1 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_float = OpTypePointer Function %float
          %18 = OpTypeFunction %float %_ptr_Function_float %_ptr_Function_float
          %25 = OpConstantNull %float
@@ -103,7 +103,7 @@
     %float_1 = OpConstant %float 1
     %float_0 = OpConstant %float 0
    %main_out = OpTypeStruct %v4float
-        %194 = OpTypeFunction %void %main_out
+        %194 = OpTypeFunction %main_out %v4float
 %compute_value_f1_f1_ = OpFunction %float None %18
       %limit = OpFunctionParameter %_ptr_Function_float
  %thirty_two = OpFunctionParameter %_ptr_Function_float
@@ -312,20 +312,20 @@
                OpStore %x_GLF_color %193
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %194
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %194
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %198 = OpLabel
-        %199 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %199
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %199 = OpFunctionCall %void %main_1
+        %200 = OpLoad %v4float %x_GLF_color
+        %201 = OpCompositeConstruct %main_out %200
+               OpReturnValue %201
                OpFunctionEnd
        %main = OpFunction %void None %79
-        %201 = OpLabel
-        %202 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %202
-        %203 = OpFunctionCall %void %main_1
-        %205 = OpLoad %v4float %x_GLF_color
-        %206 = OpCompositeConstruct %main_out %205
-        %204 = OpFunctionCall %void %tint_symbol_3 %206
+        %203 = OpLabel
+        %205 = OpLoad %v4float %gl_FragCoord_param_1
+        %204 = OpFunctionCall %main_out %main_inner %205
+        %206 = OpCompositeExtract %v4float %204 0
+               OpStore %x_GLF_color_1_1 %206
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.spvasm.expected.spvasm
index ab70f51..7900ede 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %56 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_13 "x_13"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %compute_value_f1_f1_ "compute_value_f1_f1_"
                OpName %limit "limit"
                OpName %thirty_two "thirty_two"
@@ -30,31 +30,31 @@
                OpName %i_1 "i_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_13 NonWritable
                OpDecorate %x_13 DescriptorSet 0
                OpDecorate %x_13 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_13 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_float = OpTypePointer Function %float
          %15 = OpTypeFunction %float %_ptr_Function_float %_ptr_Function_float
          %22 = OpConstantNull %float
@@ -96,7 +96,7 @@
         %140 = OpConstantComposite %mat3v3float %137 %138 %139
       %int_3 = OpConstant %int 3
    %main_out = OpTypeStruct %v4float
-        %191 = OpTypeFunction %void %main_out
+        %191 = OpTypeFunction %main_out %v4float
 %compute_value_f1_f1_ = OpFunction %float None %15
       %limit = OpFunctionParameter %_ptr_Function_float
  %thirty_two = OpFunctionParameter %_ptr_Function_float
@@ -282,20 +282,20 @@
                OpStore %x_GLF_color %190
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %191
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %191
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %195 = OpLabel
-        %196 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %196
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %196 = OpFunctionCall %void %main_1
+        %197 = OpLoad %v4float %x_GLF_color
+        %198 = OpCompositeConstruct %main_out %197
+               OpReturnValue %198
                OpFunctionEnd
        %main = OpFunction %void None %81
-        %198 = OpLabel
-        %199 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %199
-        %200 = OpFunctionCall %void %main_1
-        %202 = OpLoad %v4float %x_GLF_color
-        %203 = OpCompositeConstruct %main_out %202
-        %201 = OpFunctionCall %void %tint_symbol_3 %203
+        %200 = OpLabel
+        %202 = OpLoad %v4float %gl_FragCoord_param_1
+        %201 = OpFunctionCall %main_out %main_inner %202
+        %203 = OpCompositeExtract %v4float %201 0
+               OpStore %x_GLF_color_1_1 %203
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.wgsl.expected.spvasm
index b1061a2..03f2676 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %56 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_13 "x_13"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %compute_value_f1_f1_ "compute_value_f1_f1_"
                OpName %limit "limit"
                OpName %thirty_two "thirty_two"
@@ -30,31 +30,31 @@
                OpName %i_1 "i_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_13 NonWritable
                OpDecorate %x_13 DescriptorSet 0
                OpDecorate %x_13 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_13 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_float = OpTypePointer Function %float
          %15 = OpTypeFunction %float %_ptr_Function_float %_ptr_Function_float
          %22 = OpConstantNull %float
@@ -96,7 +96,7 @@
         %135 = OpConstantComposite %mat3v3float %132 %133 %134
       %int_3 = OpConstant %int 3
    %main_out = OpTypeStruct %v4float
-        %186 = OpTypeFunction %void %main_out
+        %186 = OpTypeFunction %main_out %v4float
 %compute_value_f1_f1_ = OpFunction %float None %15
       %limit = OpFunctionParameter %_ptr_Function_float
  %thirty_two = OpFunctionParameter %_ptr_Function_float
@@ -277,20 +277,20 @@
                OpStore %x_GLF_color %185
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %186
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %186
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %190 = OpLabel
-        %191 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %191
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %191 = OpFunctionCall %void %main_1
+        %192 = OpLoad %v4float %x_GLF_color
+        %193 = OpCompositeConstruct %main_out %192
+               OpReturnValue %193
                OpFunctionEnd
        %main = OpFunction %void None %76
-        %193 = OpLabel
-        %194 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %194
-        %195 = OpFunctionCall %void %main_1
-        %197 = OpLoad %v4float %x_GLF_color
-        %198 = OpCompositeConstruct %main_out %197
-        %196 = OpFunctionCall %void %tint_symbol_3 %198
+        %195 = OpLabel
+        %197 = OpLoad %v4float %gl_FragCoord_param_1
+        %196 = OpFunctionCall %main_out %main_inner %197
+        %198 = OpCompositeExtract %v4float %196 0
+               OpStore %x_GLF_color_1_1 %198
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.spvasm
index 238e1fc..b288e67 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %170 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %data "data"
                OpName %temp "temp"
                OpName %gl_FragCoord "gl_FragCoord"
@@ -15,8 +17,6 @@
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_34 "x_34"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %merge_i1_i1_i1_ "merge_i1_i1_i1_"
                OpName %from "from"
                OpName %mid "mid"
@@ -50,40 +50,40 @@
                OpName %grey "grey"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_34 NonWritable
                OpDecorate %x_34 DescriptorSet 0
                OpDecorate %x_34 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %_ptr_Private__arr_int_uint_10 = OpTypePointer Private %_arr_int_uint_10
-          %7 = OpConstantNull %_arr_int_uint_10
-       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
+         %14 = OpConstantNull %_arr_int_uint_10
+       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
+       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %13 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %13
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_34 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %13
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %13
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int %_ptr_Function_int
@@ -130,7 +130,7 @@
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %443 = OpTypeFunction %void %main_out
+        %443 = OpTypeFunction %main_out %v4float
 %merge_i1_i1_i1_ = OpFunction %void None %23
        %from = OpFunctionParameter %_ptr_Function_int
         %mid = OpFunctionParameter %_ptr_Function_int
@@ -675,20 +675,20 @@
                OpStore %x_GLF_color %442
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %443
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %443
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %447 = OpLabel
-        %448 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %448
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %448 = OpFunctionCall %void %main_1
+        %449 = OpLoad %v4float %x_GLF_color
+        %450 = OpCompositeConstruct %main_out %449
+               OpReturnValue %450
                OpFunctionEnd
        %main = OpFunction %void None %176
-        %450 = OpLabel
-        %451 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %451
-        %452 = OpFunctionCall %void %main_1
-        %454 = OpLoad %v4float %x_GLF_color
-        %455 = OpCompositeConstruct %main_out %454
-        %453 = OpFunctionCall %void %tint_symbol_3 %455
+        %452 = OpLabel
+        %454 = OpLoad %v4float %gl_FragCoord_param_1
+        %453 = OpFunctionCall %main_out %main_inner %454
+        %455 = OpCompositeExtract %v4float %453 0
+               OpStore %x_GLF_color_1_1 %455
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.wgsl.expected.spvasm
index 023eb51..a8c12dd 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %174 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %data "data"
                OpName %temp "temp"
                OpName %gl_FragCoord "gl_FragCoord"
@@ -15,8 +17,6 @@
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_34 "x_34"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %merge_i1_i1_i1_ "merge_i1_i1_i1_"
                OpName %from "from"
                OpName %mid "mid"
@@ -50,40 +50,40 @@
                OpName %grey "grey"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_34 NonWritable
                OpDecorate %x_34 DescriptorSet 0
                OpDecorate %x_34 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %_ptr_Private__arr_int_uint_10 = OpTypePointer Private %_arr_int_uint_10
-          %7 = OpConstantNull %_arr_int_uint_10
-       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
+         %14 = OpConstantNull %_arr_int_uint_10
+       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
+       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %13 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %13
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_34 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %13
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %13
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int %_ptr_Function_int
@@ -130,7 +130,7 @@
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %447 = OpTypeFunction %void %main_out
+        %447 = OpTypeFunction %main_out %v4float
 %merge_i1_i1_i1_ = OpFunction %void None %23
        %from = OpFunctionParameter %_ptr_Function_int
         %mid = OpFunctionParameter %_ptr_Function_int
@@ -685,20 +685,20 @@
                OpStore %x_GLF_color %446
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %447
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %447
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %451 = OpLabel
-        %452 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %452
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %452 = OpFunctionCall %void %main_1
+        %453 = OpLoad %v4float %x_GLF_color
+        %454 = OpCompositeConstruct %main_out %453
+               OpReturnValue %454
                OpFunctionEnd
        %main = OpFunction %void None %180
-        %454 = OpLabel
-        %455 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %455
-        %456 = OpFunctionCall %void %main_1
-        %458 = OpLoad %v4float %x_GLF_color
-        %459 = OpCompositeConstruct %main_out %458
-        %457 = OpFunctionCall %void %tint_symbol_3 %459
+        %456 = OpLabel
+        %458 = OpLoad %v4float %gl_FragCoord_param_1
+        %457 = OpFunctionCall %main_out %main_inner %458
+        %459 = OpCompositeExtract %v4float %457 0
+               OpStore %x_GLF_color_1_1 %459
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.spvasm
index 7c1fb07..6f744f7 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
         %132 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_8 "x_8"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %temp "temp"
                OpName %data "data"
@@ -69,32 +69,32 @@
                OpName %x_257_1 "x_257_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -147,7 +147,7 @@
      %int_32 = OpConstant %int 32
     %float_0 = OpConstant %float 0
    %main_out = OpTypeStruct %v4float
-        %415 = OpTypeFunction %void %main_out
+        %415 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %temp = OpVariable %_ptr_Function__arr_int_uint_10 Function %25
@@ -718,20 +718,20 @@
                OpStore %x_GLF_color %414
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %415
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %415
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %419 = OpLabel
-        %420 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %420
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %420 = OpFunctionCall %void %main_1
+        %421 = OpLoad %v4float %x_GLF_color
+        %422 = OpCompositeConstruct %main_out %421
+               OpReturnValue %422
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %422 = OpLabel
-        %423 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %423
-        %424 = OpFunctionCall %void %main_1
-        %426 = OpLoad %v4float %x_GLF_color
-        %427 = OpCompositeConstruct %main_out %426
-        %425 = OpFunctionCall %void %tint_symbol_3 %427
+        %424 = OpLabel
+        %426 = OpLoad %v4float %gl_FragCoord_param_1
+        %425 = OpFunctionCall %main_out %main_inner %426
+        %427 = OpCompositeExtract %v4float %425 0
+               OpStore %x_GLF_color_1_1 %427
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.wgsl.expected.spvasm
index 4752288..0c9763f 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
         %132 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_8 "x_8"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %temp "temp"
                OpName %data "data"
@@ -69,32 +69,32 @@
                OpName %x_257_1 "x_257_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -147,7 +147,7 @@
      %int_32 = OpConstant %int 32
     %float_0 = OpConstant %float 0
    %main_out = OpTypeStruct %v4float
-        %419 = OpTypeFunction %void %main_out
+        %419 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
        %temp = OpVariable %_ptr_Function__arr_int_uint_10 Function %25
@@ -728,20 +728,20 @@
                OpStore %x_GLF_color %418
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %419
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %419
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %423 = OpLabel
-        %424 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %424
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %424 = OpFunctionCall %void %main_1
+        %425 = OpLoad %v4float %x_GLF_color
+        %426 = OpCompositeConstruct %main_out %425
+               OpReturnValue %426
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %426 = OpLabel
-        %427 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %427
-        %428 = OpFunctionCall %void %main_1
-        %430 = OpLoad %v4float %x_GLF_color
-        %431 = OpCompositeConstruct %main_out %430
-        %429 = OpFunctionCall %void %tint_symbol_3 %431
+        %428 = OpLabel
+        %430 = OpLoad %v4float %gl_FragCoord_param_1
+        %429 = OpFunctionCall %main_out %main_inner %430
+        %431 = OpCompositeExtract %v4float %429 0
+               OpStore %x_GLF_color_1_1 %431
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.spvasm
index 32f00d9..2021b39 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %173 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %data "data"
                OpName %temp "temp"
                OpName %buf0 "buf0"
@@ -15,8 +17,6 @@
                OpName %x_28 "x_28"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %merge_i1_i1_i1_ "merge_i1_i1_i1_"
                OpName %from "from"
                OpName %mid "mid"
@@ -43,40 +43,40 @@
                OpName %int_i "int_i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_28 NonWritable
                OpDecorate %x_28 DescriptorSet 0
                OpDecorate %x_28 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %_ptr_Private__arr_int_uint_10 = OpTypePointer Private %_arr_int_uint_10
-          %7 = OpConstantNull %_arr_int_uint_10
-       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-      %float = OpTypeFloat 32
+         %14 = OpConstantNull %_arr_int_uint_10
+       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
+       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_28 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int %_ptr_Function_int
@@ -120,7 +120,7 @@
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %409 = OpTypeFunction %void %main_out
+        %409 = OpTypeFunction %main_out %v4float
 %merge_i1_i1_i1_ = OpFunction %void None %23
        %from = OpFunctionParameter %_ptr_Function_int
         %mid = OpFunctionParameter %_ptr_Function_int
@@ -632,20 +632,20 @@
                OpStore %x_GLF_color %408
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %409
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %409
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %413 = OpLabel
-        %414 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %414
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %414 = OpFunctionCall %void %main_1
+        %415 = OpLoad %v4float %x_GLF_color
+        %416 = OpCompositeConstruct %main_out %415
+               OpReturnValue %416
                OpFunctionEnd
        %main = OpFunction %void None %128
-        %416 = OpLabel
-        %417 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %417
-        %418 = OpFunctionCall %void %main_1
-        %420 = OpLoad %v4float %x_GLF_color
-        %421 = OpCompositeConstruct %main_out %420
-        %419 = OpFunctionCall %void %tint_symbol_3 %421
+        %418 = OpLabel
+        %420 = OpLoad %v4float %gl_FragCoord_param_1
+        %419 = OpFunctionCall %main_out %main_inner %420
+        %421 = OpCompositeExtract %v4float %419 0
+               OpStore %x_GLF_color_1_1 %421
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.wgsl.expected.spvasm
index 3bf7abf..942a899 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %177 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %data "data"
                OpName %temp "temp"
                OpName %buf0 "buf0"
@@ -15,8 +17,6 @@
                OpName %x_28 "x_28"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %merge_i1_i1_i1_ "merge_i1_i1_i1_"
                OpName %from "from"
                OpName %mid "mid"
@@ -43,40 +43,40 @@
                OpName %int_i "int_i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_28 NonWritable
                OpDecorate %x_28 DescriptorSet 0
                OpDecorate %x_28 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %_ptr_Private__arr_int_uint_10 = OpTypePointer Private %_arr_int_uint_10
-          %7 = OpConstantNull %_arr_int_uint_10
-       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %7
-      %float = OpTypeFloat 32
+         %14 = OpConstantNull %_arr_int_uint_10
+       %data = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
+       %temp = OpVariable %_ptr_Private__arr_int_uint_10 Private %14
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_28 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int %_ptr_Function_int
@@ -120,7 +120,7 @@
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-        %413 = OpTypeFunction %void %main_out
+        %413 = OpTypeFunction %main_out %v4float
 %merge_i1_i1_i1_ = OpFunction %void None %23
        %from = OpFunctionParameter %_ptr_Function_int
         %mid = OpFunctionParameter %_ptr_Function_int
@@ -642,20 +642,20 @@
                OpStore %x_GLF_color %412
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %413
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %413
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %417 = OpLabel
-        %418 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %418
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %418 = OpFunctionCall %void %main_1
+        %419 = OpLoad %v4float %x_GLF_color
+        %420 = OpCompositeConstruct %main_out %419
+               OpReturnValue %420
                OpFunctionEnd
        %main = OpFunction %void None %132
-        %420 = OpLabel
-        %421 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %421
-        %422 = OpFunctionCall %void %main_1
-        %424 = OpLoad %v4float %x_GLF_color
-        %425 = OpCompositeConstruct %main_out %424
-        %423 = OpFunctionCall %void %tint_symbol_3 %425
+        %422 = OpLabel
+        %424 = OpLoad %v4float %gl_FragCoord_param_1
+        %423 = OpFunctionCall %main_out %main_inner %424
+        %425 = OpCompositeExtract %v4float %423 0
+               OpStore %x_GLF_color_1_1 %425
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.spvasm.expected.spvasm
index 003a32d..6e69563 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.spvasm.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %156 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %QuicksortObject "QuicksortObject"
                OpMemberName %QuicksortObject 0 "numbers"
                OpName %obj "obj"
@@ -16,8 +18,6 @@
                OpMemberName %buf0 0 "resolution"
                OpName %x_34 "x_34"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %swap_i1_i1_ "swap_i1_i1_"
                OpName %i "i"
                OpName %j "j"
@@ -50,9 +50,11 @@
                OpName %color "color"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %QuicksortObject 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
@@ -60,31 +62,29 @@
                OpDecorate %x_34 NonWritable
                OpDecorate %x_34 DescriptorSet 0
                OpDecorate %x_34 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %QuicksortObject = OpTypeStruct %_arr_int_uint_10
 %_ptr_Private_QuicksortObject = OpTypePointer Private %QuicksortObject
-          %8 = OpConstantNull %QuicksortObject
-        %obj = OpVariable %_ptr_Private_QuicksortObject Private %8
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
+         %15 = OpConstantNull %QuicksortObject
+        %obj = OpVariable %_ptr_Private_QuicksortObject Private %15
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %13 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %13
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_34 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %13
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %13
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int
@@ -128,7 +128,7 @@
       %int_7 = OpConstant %int 7
       %int_8 = OpConstant %int 8
    %main_out = OpTypeStruct %v4float
-        %389 = OpTypeFunction %void %main_out
+        %389 = OpTypeFunction %main_out %v4float
 %swap_i1_i1_ = OpFunction %void None %23
           %i = OpFunctionParameter %_ptr_Function_int
           %j = OpFunctionParameter %_ptr_Function_int
@@ -568,20 +568,20 @@
                OpStore %x_GLF_color %388
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %389
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %389
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %393 = OpLabel
-        %394 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %394
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %394 = OpFunctionCall %void %main_1
+        %395 = OpLoad %v4float %x_GLF_color
+        %396 = OpCompositeConstruct %main_out %395
+               OpReturnValue %396
                OpFunctionEnd
        %main = OpFunction %void None %109
-        %396 = OpLabel
-        %397 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %397
-        %398 = OpFunctionCall %void %main_1
-        %400 = OpLoad %v4float %x_GLF_color
-        %401 = OpCompositeConstruct %main_out %400
-        %399 = OpFunctionCall %void %tint_symbol_3 %401
+        %398 = OpLabel
+        %400 = OpLoad %v4float %gl_FragCoord_param_1
+        %399 = OpFunctionCall %main_out %main_inner %400
+        %401 = OpCompositeExtract %v4float %399 0
+               OpStore %x_GLF_color_1_1 %401
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.wgsl.expected.spvasm
index 003a32d..6e69563 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.wgsl.expected.spvasm
@@ -6,8 +6,10 @@
                OpCapability Shader
         %156 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %QuicksortObject "QuicksortObject"
                OpMemberName %QuicksortObject 0 "numbers"
                OpName %obj "obj"
@@ -16,8 +18,6 @@
                OpMemberName %buf0 0 "resolution"
                OpName %x_34 "x_34"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %swap_i1_i1_ "swap_i1_i1_"
                OpName %i "i"
                OpName %j "j"
@@ -50,9 +50,11 @@
                OpName %color "color"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %QuicksortObject 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
@@ -60,31 +62,29 @@
                OpDecorate %x_34 NonWritable
                OpDecorate %x_34 DescriptorSet 0
                OpDecorate %x_34 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %QuicksortObject = OpTypeStruct %_arr_int_uint_10
 %_ptr_Private_QuicksortObject = OpTypePointer Private %QuicksortObject
-          %8 = OpConstantNull %QuicksortObject
-        %obj = OpVariable %_ptr_Private_QuicksortObject Private %8
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
+         %15 = OpConstantNull %QuicksortObject
+        %obj = OpVariable %_ptr_Private_QuicksortObject Private %15
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %13 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %13
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_34 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %13
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %13
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %23 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int
@@ -128,7 +128,7 @@
       %int_7 = OpConstant %int 7
       %int_8 = OpConstant %int 8
    %main_out = OpTypeStruct %v4float
-        %389 = OpTypeFunction %void %main_out
+        %389 = OpTypeFunction %main_out %v4float
 %swap_i1_i1_ = OpFunction %void None %23
           %i = OpFunctionParameter %_ptr_Function_int
           %j = OpFunctionParameter %_ptr_Function_int
@@ -568,20 +568,20 @@
                OpStore %x_GLF_color %388
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %389
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %389
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %393 = OpLabel
-        %394 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %394
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %394 = OpFunctionCall %void %main_1
+        %395 = OpLoad %v4float %x_GLF_color
+        %396 = OpCompositeConstruct %main_out %395
+               OpReturnValue %396
                OpFunctionEnd
        %main = OpFunction %void None %109
-        %396 = OpLabel
-        %397 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %397
-        %398 = OpFunctionCall %void %main_1
-        %400 = OpLoad %v4float %x_GLF_color
-        %401 = OpCompositeConstruct %main_out %400
-        %399 = OpFunctionCall %void %tint_symbol_3 %401
+        %398 = OpLabel
+        %400 = OpLoad %v4float %gl_FragCoord_param_1
+        %399 = OpFunctionCall %main_out %main_inner %400
+        %401 = OpCompositeExtract %v4float %399 0
+               OpStore %x_GLF_color_1_1 %401
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.spvasm.expected.spvasm
index db05970..0841a47 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.spvasm.expected.spvasm
@@ -6,8 +6,11 @@
                OpCapability Shader
         %356 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2 %tint_symbol_3
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_GLF_pos_param_1 %frag_color_1_1 %gl_Position_1 %vertex_point_size
+               OpName %x_GLF_pos_param_1 "x_GLF_pos_param_1"
+               OpName %frag_color_1_1 "frag_color_1_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %QuicksortObject "QuicksortObject"
                OpMemberName %QuicksortObject 0 "numbers"
                OpName %obj "obj"
@@ -18,9 +21,6 @@
                OpName %x_34 "x_34"
                OpName %frag_color "frag_color"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %swap_i1_i1_ "swap_i1_i1_"
                OpName %i "i"
                OpName %j "j"
@@ -50,10 +50,13 @@
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "frag_color_1"
                OpMemberName %main_out 1 "gl_Position"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_GLF_pos_param "x_GLF_pos_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %x_GLF_pos_param_1 Location 0
+               OpDecorate %frag_color_1_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %QuicksortObject 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
@@ -61,39 +64,36 @@
                OpDecorate %x_34 NonWritable
                OpDecorate %x_34 DescriptorSet 0
                OpDecorate %x_34 Binding 0
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 Location 0
-               OpDecorate %tint_symbol_3 BuiltIn Position
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%x_GLF_pos_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%frag_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %QuicksortObject = OpTypeStruct %_arr_int_uint_10
 %_ptr_Private_QuicksortObject = OpTypePointer Private %QuicksortObject
-         %12 = OpConstantNull %QuicksortObject
-        %obj = OpVariable %_ptr_Private_QuicksortObject Private %12
-    %v4float = OpTypeVector %float 4
+         %19 = OpConstantNull %QuicksortObject
+        %obj = OpVariable %_ptr_Private_QuicksortObject Private %19
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_FragCoord = OpVariable %_ptr_Private_v4float Private %16
-  %x_GLF_pos = OpVariable %_ptr_Private_v4float Private %16
+%x_GLF_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+  %x_GLF_pos = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_34 = OpVariable %_ptr_Uniform_buf0 Uniform
- %frag_color = OpVariable %_ptr_Private_v4float Private %16
-%gl_Position = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %16
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %16
+ %frag_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %29 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int
@@ -138,7 +138,7 @@
       %int_7 = OpConstant %int 7
       %int_8 = OpConstant %int 8
    %main_out = OpTypeStruct %v4float %v4float
-        %375 = OpTypeFunction %void %main_out
+        %375 = OpTypeFunction %main_out %v4float
 %swap_i1_i1_ = OpFunction %void None %29
           %i = OpFunctionParameter %_ptr_Function_int
           %j = OpFunctionParameter %_ptr_Function_int
@@ -544,24 +544,24 @@
                OpStore %gl_Position %374
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %375
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %375
+%x_GLF_pos_param = OpFunctionParameter %v4float
         %379 = OpLabel
-        %380 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %380
-        %381 = OpCompositeExtract %v4float %tint_symbol_1 1
-               OpStore %tint_symbol_3 %381
-               OpReturn
+               OpStore %x_GLF_pos %x_GLF_pos_param
+        %380 = OpFunctionCall %void %main_1
+        %381 = OpLoad %v4float %frag_color
+        %382 = OpLoad %v4float %gl_Position
+        %383 = OpCompositeConstruct %main_out %381 %382
+               OpReturnValue %383
                OpFunctionEnd
        %main = OpFunction %void None %115
-        %383 = OpLabel
-               OpStore %tint_pointsize %float_1
-        %384 = OpLoad %v4float %tint_symbol
-               OpStore %x_GLF_pos %384
-        %385 = OpFunctionCall %void %main_1
-        %387 = OpLoad %v4float %frag_color
-        %388 = OpLoad %v4float %gl_Position
-        %389 = OpCompositeConstruct %main_out %387 %388
-        %386 = OpFunctionCall %void %tint_symbol_4 %389
+        %385 = OpLabel
+        %387 = OpLoad %v4float %x_GLF_pos_param_1
+        %386 = OpFunctionCall %main_out %main_inner %387
+        %388 = OpCompositeExtract %v4float %386 0
+               OpStore %frag_color_1_1 %388
+        %389 = OpCompositeExtract %v4float %386 1
+               OpStore %gl_Position_1 %389
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.wgsl.expected.spvasm
index db05970..0841a47 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.wgsl.expected.spvasm
@@ -6,8 +6,11 @@
                OpCapability Shader
         %356 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2 %tint_symbol_3
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_GLF_pos_param_1 %frag_color_1_1 %gl_Position_1 %vertex_point_size
+               OpName %x_GLF_pos_param_1 "x_GLF_pos_param_1"
+               OpName %frag_color_1_1 "frag_color_1_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %QuicksortObject "QuicksortObject"
                OpMemberName %QuicksortObject 0 "numbers"
                OpName %obj "obj"
@@ -18,9 +21,6 @@
                OpName %x_34 "x_34"
                OpName %frag_color "frag_color"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %swap_i1_i1_ "swap_i1_i1_"
                OpName %i "i"
                OpName %j "j"
@@ -50,10 +50,13 @@
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "frag_color_1"
                OpMemberName %main_out 1 "gl_Position"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_GLF_pos_param "x_GLF_pos_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %x_GLF_pos_param_1 Location 0
+               OpDecorate %frag_color_1_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %QuicksortObject 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
@@ -61,39 +64,36 @@
                OpDecorate %x_34 NonWritable
                OpDecorate %x_34 DescriptorSet 0
                OpDecorate %x_34 Binding 0
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 Location 0
-               OpDecorate %tint_symbol_3 BuiltIn Position
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%x_GLF_pos_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%frag_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %QuicksortObject = OpTypeStruct %_arr_int_uint_10
 %_ptr_Private_QuicksortObject = OpTypePointer Private %QuicksortObject
-         %12 = OpConstantNull %QuicksortObject
-        %obj = OpVariable %_ptr_Private_QuicksortObject Private %12
-    %v4float = OpTypeVector %float 4
+         %19 = OpConstantNull %QuicksortObject
+        %obj = OpVariable %_ptr_Private_QuicksortObject Private %19
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_FragCoord = OpVariable %_ptr_Private_v4float Private %16
-  %x_GLF_pos = OpVariable %_ptr_Private_v4float Private %16
+%x_GLF_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+  %x_GLF_pos = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_34 = OpVariable %_ptr_Uniform_buf0 Uniform
- %frag_color = OpVariable %_ptr_Private_v4float Private %16
-%gl_Position = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %16
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %16
+ %frag_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %29 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int
@@ -138,7 +138,7 @@
       %int_7 = OpConstant %int 7
       %int_8 = OpConstant %int 8
    %main_out = OpTypeStruct %v4float %v4float
-        %375 = OpTypeFunction %void %main_out
+        %375 = OpTypeFunction %main_out %v4float
 %swap_i1_i1_ = OpFunction %void None %29
           %i = OpFunctionParameter %_ptr_Function_int
           %j = OpFunctionParameter %_ptr_Function_int
@@ -544,24 +544,24 @@
                OpStore %gl_Position %374
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %375
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %375
+%x_GLF_pos_param = OpFunctionParameter %v4float
         %379 = OpLabel
-        %380 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %380
-        %381 = OpCompositeExtract %v4float %tint_symbol_1 1
-               OpStore %tint_symbol_3 %381
-               OpReturn
+               OpStore %x_GLF_pos %x_GLF_pos_param
+        %380 = OpFunctionCall %void %main_1
+        %381 = OpLoad %v4float %frag_color
+        %382 = OpLoad %v4float %gl_Position
+        %383 = OpCompositeConstruct %main_out %381 %382
+               OpReturnValue %383
                OpFunctionEnd
        %main = OpFunction %void None %115
-        %383 = OpLabel
-               OpStore %tint_pointsize %float_1
-        %384 = OpLoad %v4float %tint_symbol
-               OpStore %x_GLF_pos %384
-        %385 = OpFunctionCall %void %main_1
-        %387 = OpLoad %v4float %frag_color
-        %388 = OpLoad %v4float %gl_Position
-        %389 = OpCompositeConstruct %main_out %387 %388
-        %386 = OpFunctionCall %void %tint_symbol_4 %389
+        %385 = OpLabel
+        %387 = OpLoad %v4float %x_GLF_pos_param_1
+        %386 = OpFunctionCall %main_out %main_inner %387
+        %388 = OpCompositeExtract %v4float %386 0
+               OpStore %frag_color_1_1 %388
+        %389 = OpCompositeExtract %v4float %386 1
+               OpStore %gl_Position_1 %389
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.spvasm.expected.spvasm
index 834d21f..4c129a5 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.spvasm.expected.spvasm
@@ -5,55 +5,55 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %frag_color_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %frag_color_param_1 "frag_color_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %frag_color "frag_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %frag_color_param "frag_color_param"
                OpName %main "main"
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %frag_color_param_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
- %frag_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%frag_color_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
+ %frag_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %16 = OpTypeFunction %void %main_out
+         %16 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
          %15 = OpLoad %v4float %frag_color
                OpStore %x_GLF_color %15
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %16
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %16
+%frag_color_param = OpFunctionParameter %v4float
          %20 = OpLabel
-         %21 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %21
-               OpReturn
+               OpStore %frag_color %frag_color_param
+         %21 = OpFunctionCall %void %main_1
+         %22 = OpLoad %v4float %x_GLF_color
+         %23 = OpCompositeConstruct %main_out %22
+               OpReturnValue %23
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %23 = OpLabel
-         %24 = OpLoad %v4float %tint_symbol
-               OpStore %frag_color %24
-         %25 = OpFunctionCall %void %main_1
-         %27 = OpLoad %v4float %x_GLF_color
-         %28 = OpCompositeConstruct %main_out %27
-         %26 = OpFunctionCall %void %tint_symbol_3 %28
+         %25 = OpLabel
+         %27 = OpLoad %v4float %frag_color_param_1
+         %26 = OpFunctionCall %main_out %main_inner %27
+         %28 = OpCompositeExtract %v4float %26 0
+               OpStore %x_GLF_color_1_1 %28
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.wgsl.expected.spvasm
index 834d21f..4c129a5 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.wgsl.expected.spvasm
@@ -5,55 +5,55 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %frag_color_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %frag_color_param_1 "frag_color_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %frag_color "frag_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %frag_color_param "frag_color_param"
                OpName %main "main"
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %frag_color_param_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
- %frag_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%frag_color_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
+ %frag_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %16 = OpTypeFunction %void %main_out
+         %16 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
          %15 = OpLoad %v4float %frag_color
                OpStore %x_GLF_color %15
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %16
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %16
+%frag_color_param = OpFunctionParameter %v4float
          %20 = OpLabel
-         %21 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %21
-               OpReturn
+               OpStore %frag_color %frag_color_param
+         %21 = OpFunctionCall %void %main_1
+         %22 = OpLoad %v4float %x_GLF_color
+         %23 = OpCompositeConstruct %main_out %22
+               OpReturnValue %23
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %23 = OpLabel
-         %24 = OpLoad %v4float %tint_symbol
-               OpStore %frag_color %24
-         %25 = OpFunctionCall %void %main_1
-         %27 = OpLoad %v4float %x_GLF_color
-         %28 = OpCompositeConstruct %main_out %27
-         %26 = OpFunctionCall %void %tint_symbol_3 %28
+         %25 = OpLabel
+         %27 = OpLoad %v4float %frag_color_param_1
+         %26 = OpFunctionCall %main_out %main_inner %27
+         %28 = OpCompositeExtract %v4float %26 0
+               OpStore %x_GLF_color_1_1 %28
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.spvasm.expected.spvasm
index e0c2ca0..8156ab9 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.spvasm.expected.spvasm
@@ -6,8 +6,11 @@
                OpCapability Shader
         %367 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2 %tint_symbol_3
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_GLF_pos_param_1 %frag_color_1_1 %gl_Position_1 %vertex_point_size
+               OpName %x_GLF_pos_param_1 "x_GLF_pos_param_1"
+               OpName %frag_color_1_1 "frag_color_1_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %QuicksortObject "QuicksortObject"
                OpMemberName %QuicksortObject 0 "numbers"
                OpName %obj "obj"
@@ -21,9 +24,6 @@
                OpName %x_36 "x_36"
                OpName %frag_color "frag_color"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %swap_i1_i1_ "swap_i1_i1_"
                OpName %i "i"
                OpName %j "j"
@@ -53,10 +53,13 @@
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "frag_color_1"
                OpMemberName %main_out 1 "gl_Position"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_GLF_pos_param "x_GLF_pos_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %x_GLF_pos_param_1 Location 0
+               OpDecorate %frag_color_1_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %QuicksortObject 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
@@ -69,28 +72,30 @@
                OpDecorate %x_36 NonWritable
                OpDecorate %x_36 DescriptorSet 0
                OpDecorate %x_36 Binding 1
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 Location 0
-               OpDecorate %tint_symbol_3 BuiltIn Position
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%x_GLF_pos_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%frag_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %QuicksortObject = OpTypeStruct %_arr_int_uint_10
 %_ptr_Private_QuicksortObject = OpTypePointer Private %QuicksortObject
-         %12 = OpConstantNull %QuicksortObject
-        %obj = OpVariable %_ptr_Private_QuicksortObject Private %12
-    %v4float = OpTypeVector %float 4
+         %19 = OpConstantNull %QuicksortObject
+        %obj = OpVariable %_ptr_Private_QuicksortObject Private %19
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_FragCoord = OpVariable %_ptr_Private_v4float Private %16
-  %x_GLF_pos = OpVariable %_ptr_Private_v4float Private %16
+%x_GLF_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+  %x_GLF_pos = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
@@ -98,13 +103,8 @@
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_36 = OpVariable %_ptr_Uniform_buf1 Uniform
- %frag_color = OpVariable %_ptr_Private_v4float Private %16
-%gl_Position = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %16
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %16
+ %frag_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int
@@ -150,7 +150,7 @@
       %int_7 = OpConstant %int 7
       %int_8 = OpConstant %int 8
    %main_out = OpTypeStruct %v4float %v4float
-        %386 = OpTypeFunction %void %main_out
+        %386 = OpTypeFunction %main_out %v4float
 %swap_i1_i1_ = OpFunction %void None %32
           %i = OpFunctionParameter %_ptr_Function_int
           %j = OpFunctionParameter %_ptr_Function_int
@@ -566,24 +566,24 @@
                OpStore %gl_Position %385
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %386
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %386
+%x_GLF_pos_param = OpFunctionParameter %v4float
         %390 = OpLabel
-        %391 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %391
-        %392 = OpCompositeExtract %v4float %tint_symbol_1 1
-               OpStore %tint_symbol_3 %392
-               OpReturn
+               OpStore %x_GLF_pos %x_GLF_pos_param
+        %391 = OpFunctionCall %void %main_1
+        %392 = OpLoad %v4float %frag_color
+        %393 = OpLoad %v4float %gl_Position
+        %394 = OpCompositeConstruct %main_out %392 %393
+               OpReturnValue %394
                OpFunctionEnd
        %main = OpFunction %void None %118
-        %394 = OpLabel
-               OpStore %tint_pointsize %float_1
-        %395 = OpLoad %v4float %tint_symbol
-               OpStore %x_GLF_pos %395
-        %396 = OpFunctionCall %void %main_1
-        %398 = OpLoad %v4float %frag_color
-        %399 = OpLoad %v4float %gl_Position
-        %400 = OpCompositeConstruct %main_out %398 %399
-        %397 = OpFunctionCall %void %tint_symbol_4 %400
+        %396 = OpLabel
+        %398 = OpLoad %v4float %x_GLF_pos_param_1
+        %397 = OpFunctionCall %main_out %main_inner %398
+        %399 = OpCompositeExtract %v4float %397 0
+               OpStore %frag_color_1_1 %399
+        %400 = OpCompositeExtract %v4float %397 1
+               OpStore %gl_Position_1 %400
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.wgsl.expected.spvasm
index e0c2ca0..8156ab9 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.wgsl.expected.spvasm
@@ -6,8 +6,11 @@
                OpCapability Shader
         %367 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2 %tint_symbol_3
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_GLF_pos_param_1 %frag_color_1_1 %gl_Position_1 %vertex_point_size
+               OpName %x_GLF_pos_param_1 "x_GLF_pos_param_1"
+               OpName %frag_color_1_1 "frag_color_1_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %QuicksortObject "QuicksortObject"
                OpMemberName %QuicksortObject 0 "numbers"
                OpName %obj "obj"
@@ -21,9 +24,6 @@
                OpName %x_36 "x_36"
                OpName %frag_color "frag_color"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %swap_i1_i1_ "swap_i1_i1_"
                OpName %i "i"
                OpName %j "j"
@@ -53,10 +53,13 @@
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "frag_color_1"
                OpMemberName %main_out 1 "gl_Position"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_GLF_pos_param "x_GLF_pos_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %x_GLF_pos_param_1 Location 0
+               OpDecorate %frag_color_1_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %QuicksortObject 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
@@ -69,28 +72,30 @@
                OpDecorate %x_36 NonWritable
                OpDecorate %x_36 DescriptorSet 0
                OpDecorate %x_36 Binding 1
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 Location 0
-               OpDecorate %tint_symbol_3 BuiltIn Position
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%x_GLF_pos_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%frag_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %QuicksortObject = OpTypeStruct %_arr_int_uint_10
 %_ptr_Private_QuicksortObject = OpTypePointer Private %QuicksortObject
-         %12 = OpConstantNull %QuicksortObject
-        %obj = OpVariable %_ptr_Private_QuicksortObject Private %12
-    %v4float = OpTypeVector %float 4
+         %19 = OpConstantNull %QuicksortObject
+        %obj = OpVariable %_ptr_Private_QuicksortObject Private %19
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_FragCoord = OpVariable %_ptr_Private_v4float Private %16
-  %x_GLF_pos = OpVariable %_ptr_Private_v4float Private %16
+%x_GLF_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+  %x_GLF_pos = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
@@ -98,13 +103,8 @@
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_36 = OpVariable %_ptr_Uniform_buf1 Uniform
- %frag_color = OpVariable %_ptr_Private_v4float Private %16
-%gl_Position = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %16
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %16
+ %frag_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int
@@ -150,7 +150,7 @@
       %int_7 = OpConstant %int 7
       %int_8 = OpConstant %int 8
    %main_out = OpTypeStruct %v4float %v4float
-        %386 = OpTypeFunction %void %main_out
+        %386 = OpTypeFunction %main_out %v4float
 %swap_i1_i1_ = OpFunction %void None %32
           %i = OpFunctionParameter %_ptr_Function_int
           %j = OpFunctionParameter %_ptr_Function_int
@@ -566,24 +566,24 @@
                OpStore %gl_Position %385
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %386
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %386
+%x_GLF_pos_param = OpFunctionParameter %v4float
         %390 = OpLabel
-        %391 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %391
-        %392 = OpCompositeExtract %v4float %tint_symbol_1 1
-               OpStore %tint_symbol_3 %392
-               OpReturn
+               OpStore %x_GLF_pos %x_GLF_pos_param
+        %391 = OpFunctionCall %void %main_1
+        %392 = OpLoad %v4float %frag_color
+        %393 = OpLoad %v4float %gl_Position
+        %394 = OpCompositeConstruct %main_out %392 %393
+               OpReturnValue %394
                OpFunctionEnd
        %main = OpFunction %void None %118
-        %394 = OpLabel
-               OpStore %tint_pointsize %float_1
-        %395 = OpLoad %v4float %tint_symbol
-               OpStore %x_GLF_pos %395
-        %396 = OpFunctionCall %void %main_1
-        %398 = OpLoad %v4float %frag_color
-        %399 = OpLoad %v4float %gl_Position
-        %400 = OpCompositeConstruct %main_out %398 %399
-        %397 = OpFunctionCall %void %tint_symbol_4 %400
+        %396 = OpLabel
+        %398 = OpLoad %v4float %x_GLF_pos_param_1
+        %397 = OpFunctionCall %main_out %main_inner %398
+        %399 = OpCompositeExtract %v4float %397 0
+               OpStore %frag_color_1_1 %399
+        %400 = OpCompositeExtract %v4float %397 1
+               OpStore %gl_Position_1 %400
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.spvasm.expected.spvasm
index 6f5c5f8..4dded40 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.spvasm.expected.spvasm
@@ -6,8 +6,11 @@
                OpCapability Shader
         %339 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2 %tint_symbol_3
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_GLF_pos_param_1 %frag_color_1_1 %gl_Position_1 %vertex_point_size
+               OpName %x_GLF_pos_param_1 "x_GLF_pos_param_1"
+               OpName %frag_color_1_1 "frag_color_1_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %QuicksortObject "QuicksortObject"
                OpMemberName %QuicksortObject 0 "numbers"
                OpName %obj "obj"
@@ -18,9 +21,6 @@
                OpName %x_34 "x_34"
                OpName %frag_color "frag_color"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %x_90 "x_90"
                OpName %x_91 "x_91"
@@ -45,8 +45,8 @@
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "frag_color_1"
                OpMemberName %main_out 1 "gl_Position"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_GLF_pos_param "x_GLF_pos_param"
                OpName %main "main"
                OpName %swap_i1_i1_ "swap_i1_i1_"
                OpName %i "i"
@@ -70,7 +70,10 @@
                OpName %p "p"
                OpName %param_4 "param_4"
                OpName %param_5 "param_5"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %x_GLF_pos_param_1 Location 0
+               OpDecorate %frag_color_1_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %QuicksortObject 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
@@ -78,39 +81,36 @@
                OpDecorate %x_34 NonWritable
                OpDecorate %x_34 DescriptorSet 0
                OpDecorate %x_34 Binding 0
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 Location 0
-               OpDecorate %tint_symbol_3 BuiltIn Position
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%x_GLF_pos_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%frag_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %QuicksortObject = OpTypeStruct %_arr_int_uint_10
 %_ptr_Private_QuicksortObject = OpTypePointer Private %QuicksortObject
-         %12 = OpConstantNull %QuicksortObject
-        %obj = OpVariable %_ptr_Private_QuicksortObject Private %12
-    %v4float = OpTypeVector %float 4
+         %19 = OpConstantNull %QuicksortObject
+        %obj = OpVariable %_ptr_Private_QuicksortObject Private %19
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_FragCoord = OpVariable %_ptr_Private_v4float Private %16
-  %x_GLF_pos = OpVariable %_ptr_Private_v4float Private %16
+%x_GLF_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+  %x_GLF_pos = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_34 = OpVariable %_ptr_Uniform_buf0 Uniform
- %frag_color = OpVariable %_ptr_Private_v4float Private %16
-%gl_Position = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %16
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %16
+ %frag_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %29 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -153,7 +153,7 @@
       %int_7 = OpConstant %int 7
       %int_8 = OpConstant %int 8
    %main_out = OpTypeStruct %v4float %v4float
-        %358 = OpTypeFunction %void %main_out
+        %358 = OpTypeFunction %main_out %v4float
         %373 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int
         %394 = OpTypeFunction %int %_ptr_Function_int %_ptr_Function_int
      %main_1 = OpFunction %void None %29
@@ -559,25 +559,25 @@
                OpStore %gl_Position %357
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %358
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %358
+%x_GLF_pos_param = OpFunctionParameter %v4float
         %362 = OpLabel
-        %363 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %363
-        %364 = OpCompositeExtract %v4float %tint_symbol_1 1
-               OpStore %tint_symbol_3 %364
-               OpReturn
+               OpStore %x_GLF_pos %x_GLF_pos_param
+        %363 = OpFunctionCall %void %main_1
+        %364 = OpLoad %v4float %frag_color
+        %365 = OpLoad %v4float %gl_Position
+        %366 = OpCompositeConstruct %main_out %364 %365
+               OpReturnValue %366
                OpFunctionEnd
        %main = OpFunction %void None %29
-        %366 = OpLabel
-               OpStore %tint_pointsize %float_1
-        %367 = OpLoad %v4float %tint_symbol
-               OpStore %x_GLF_pos %367
-        %368 = OpFunctionCall %void %main_1
-        %370 = OpLoad %v4float %frag_color
-        %371 = OpLoad %v4float %gl_Position
-        %372 = OpCompositeConstruct %main_out %370 %371
-        %369 = OpFunctionCall %void %tint_symbol_4 %372
+        %368 = OpLabel
+        %370 = OpLoad %v4float %x_GLF_pos_param_1
+        %369 = OpFunctionCall %main_out %main_inner %370
+        %371 = OpCompositeExtract %v4float %369 0
+               OpStore %frag_color_1_1 %371
+        %372 = OpCompositeExtract %v4float %369 1
+               OpStore %gl_Position_1 %372
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %swap_i1_i1_ = OpFunction %void None %373
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.wgsl.expected.spvasm
index 6f5c5f8..4dded40 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.wgsl.expected.spvasm
@@ -6,8 +6,11 @@
                OpCapability Shader
         %339 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2 %tint_symbol_3
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_GLF_pos_param_1 %frag_color_1_1 %gl_Position_1 %vertex_point_size
+               OpName %x_GLF_pos_param_1 "x_GLF_pos_param_1"
+               OpName %frag_color_1_1 "frag_color_1_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %QuicksortObject "QuicksortObject"
                OpMemberName %QuicksortObject 0 "numbers"
                OpName %obj "obj"
@@ -18,9 +21,6 @@
                OpName %x_34 "x_34"
                OpName %frag_color "frag_color"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %x_90 "x_90"
                OpName %x_91 "x_91"
@@ -45,8 +45,8 @@
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "frag_color_1"
                OpMemberName %main_out 1 "gl_Position"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_GLF_pos_param "x_GLF_pos_param"
                OpName %main "main"
                OpName %swap_i1_i1_ "swap_i1_i1_"
                OpName %i "i"
@@ -70,7 +70,10 @@
                OpName %p "p"
                OpName %param_4 "param_4"
                OpName %param_5 "param_5"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %x_GLF_pos_param_1 Location 0
+               OpDecorate %frag_color_1_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %QuicksortObject 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
@@ -78,39 +81,36 @@
                OpDecorate %x_34 NonWritable
                OpDecorate %x_34 DescriptorSet 0
                OpDecorate %x_34 Binding 0
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 Location 0
-               OpDecorate %tint_symbol_3 BuiltIn Position
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%x_GLF_pos_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%frag_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %QuicksortObject = OpTypeStruct %_arr_int_uint_10
 %_ptr_Private_QuicksortObject = OpTypePointer Private %QuicksortObject
-         %12 = OpConstantNull %QuicksortObject
-        %obj = OpVariable %_ptr_Private_QuicksortObject Private %12
-    %v4float = OpTypeVector %float 4
+         %19 = OpConstantNull %QuicksortObject
+        %obj = OpVariable %_ptr_Private_QuicksortObject Private %19
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_FragCoord = OpVariable %_ptr_Private_v4float Private %16
-  %x_GLF_pos = OpVariable %_ptr_Private_v4float Private %16
+%x_GLF_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+  %x_GLF_pos = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_34 = OpVariable %_ptr_Uniform_buf0 Uniform
- %frag_color = OpVariable %_ptr_Private_v4float Private %16
-%gl_Position = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %16
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %16
+ %frag_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %29 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -153,7 +153,7 @@
       %int_7 = OpConstant %int 7
       %int_8 = OpConstant %int 8
    %main_out = OpTypeStruct %v4float %v4float
-        %358 = OpTypeFunction %void %main_out
+        %358 = OpTypeFunction %main_out %v4float
         %373 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int
         %394 = OpTypeFunction %int %_ptr_Function_int %_ptr_Function_int
      %main_1 = OpFunction %void None %29
@@ -559,25 +559,25 @@
                OpStore %gl_Position %357
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %358
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %358
+%x_GLF_pos_param = OpFunctionParameter %v4float
         %362 = OpLabel
-        %363 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %363
-        %364 = OpCompositeExtract %v4float %tint_symbol_1 1
-               OpStore %tint_symbol_3 %364
-               OpReturn
+               OpStore %x_GLF_pos %x_GLF_pos_param
+        %363 = OpFunctionCall %void %main_1
+        %364 = OpLoad %v4float %frag_color
+        %365 = OpLoad %v4float %gl_Position
+        %366 = OpCompositeConstruct %main_out %364 %365
+               OpReturnValue %366
                OpFunctionEnd
        %main = OpFunction %void None %29
-        %366 = OpLabel
-               OpStore %tint_pointsize %float_1
-        %367 = OpLoad %v4float %tint_symbol
-               OpStore %x_GLF_pos %367
-        %368 = OpFunctionCall %void %main_1
-        %370 = OpLoad %v4float %frag_color
-        %371 = OpLoad %v4float %gl_Position
-        %372 = OpCompositeConstruct %main_out %370 %371
-        %369 = OpFunctionCall %void %tint_symbol_4 %372
+        %368 = OpLabel
+        %370 = OpLoad %v4float %x_GLF_pos_param_1
+        %369 = OpFunctionCall %main_out %main_inner %370
+        %371 = OpCompositeExtract %v4float %369 0
+               OpStore %frag_color_1_1 %371
+        %372 = OpCompositeExtract %v4float %369 1
+               OpStore %gl_Position_1 %372
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %swap_i1_i1_ = OpFunction %void None %373
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.spvasm.expected.spvasm
index 01d7e03..d044f62 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.spvasm.expected.spvasm
@@ -6,8 +6,11 @@
                OpCapability Shader
         %354 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2 %tint_symbol_3
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_GLF_pos_param_1 %frag_color_1_1 %gl_Position_1 %vertex_point_size
+               OpName %x_GLF_pos_param_1 "x_GLF_pos_param_1"
+               OpName %frag_color_1_1 "frag_color_1_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %QuicksortObject "QuicksortObject"
                OpMemberName %QuicksortObject 0 "numbers"
                OpName %obj "obj"
@@ -18,9 +21,6 @@
                OpName %x_34 "x_34"
                OpName %frag_color "frag_color"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %performPartition_i1_i1_ "performPartition_i1_i1_"
                OpName %l "l"
                OpName %h "h"
@@ -47,8 +47,8 @@
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "frag_color_1"
                OpMemberName %main_out 1 "gl_Position"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_GLF_pos_param "x_GLF_pos_param"
                OpName %main "main"
                OpName %swap_i1_i1_ "swap_i1_i1_"
                OpName %i "i"
@@ -62,7 +62,10 @@
                OpName %p "p"
                OpName %param_4 "param_4"
                OpName %param_5 "param_5"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %x_GLF_pos_param_1 Location 0
+               OpDecorate %frag_color_1_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %QuicksortObject 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
@@ -70,39 +73,36 @@
                OpDecorate %x_34 NonWritable
                OpDecorate %x_34 DescriptorSet 0
                OpDecorate %x_34 Binding 0
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 Location 0
-               OpDecorate %tint_symbol_3 BuiltIn Position
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%x_GLF_pos_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%frag_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %QuicksortObject = OpTypeStruct %_arr_int_uint_10
 %_ptr_Private_QuicksortObject = OpTypePointer Private %QuicksortObject
-         %12 = OpConstantNull %QuicksortObject
-        %obj = OpVariable %_ptr_Private_QuicksortObject Private %12
-    %v4float = OpTypeVector %float 4
+         %19 = OpConstantNull %QuicksortObject
+        %obj = OpVariable %_ptr_Private_QuicksortObject Private %19
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_FragCoord = OpVariable %_ptr_Private_v4float Private %16
-  %x_GLF_pos = OpVariable %_ptr_Private_v4float Private %16
+%x_GLF_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+  %x_GLF_pos = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_34 = OpVariable %_ptr_Uniform_buf0 Uniform
- %frag_color = OpVariable %_ptr_Private_v4float Private %16
-%gl_Position = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %16
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %16
+ %frag_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_int = OpTypePointer Function %int
          %29 = OpTypeFunction %int %_ptr_Function_int %_ptr_Function_int
          %36 = OpConstantNull %int
@@ -147,7 +147,7 @@
       %int_7 = OpConstant %int 7
       %int_8 = OpConstant %int 8
    %main_out = OpTypeStruct %v4float %v4float
-        %373 = OpTypeFunction %void %main_out
+        %373 = OpTypeFunction %main_out %v4float
         %388 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int
 %performPartition_i1_i1_ = OpFunction %int None %29
           %l = OpFunctionParameter %_ptr_Function_int
@@ -563,25 +563,25 @@
                OpStore %gl_Position %372
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %373
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %373
+%x_GLF_pos_param = OpFunctionParameter %v4float
         %377 = OpLabel
-        %378 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %378
-        %379 = OpCompositeExtract %v4float %tint_symbol_1 1
-               OpStore %tint_symbol_3 %379
-               OpReturn
+               OpStore %x_GLF_pos %x_GLF_pos_param
+        %378 = OpFunctionCall %void %main_1
+        %379 = OpLoad %v4float %frag_color
+        %380 = OpLoad %v4float %gl_Position
+        %381 = OpCompositeConstruct %main_out %379 %380
+               OpReturnValue %381
                OpFunctionEnd
        %main = OpFunction %void None %116
-        %381 = OpLabel
-               OpStore %tint_pointsize %float_1
-        %382 = OpLoad %v4float %tint_symbol
-               OpStore %x_GLF_pos %382
-        %383 = OpFunctionCall %void %main_1
-        %385 = OpLoad %v4float %frag_color
-        %386 = OpLoad %v4float %gl_Position
-        %387 = OpCompositeConstruct %main_out %385 %386
-        %384 = OpFunctionCall %void %tint_symbol_4 %387
+        %383 = OpLabel
+        %385 = OpLoad %v4float %x_GLF_pos_param_1
+        %384 = OpFunctionCall %main_out %main_inner %385
+        %386 = OpCompositeExtract %v4float %384 0
+               OpStore %frag_color_1_1 %386
+        %387 = OpCompositeExtract %v4float %384 1
+               OpStore %gl_Position_1 %387
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %swap_i1_i1_ = OpFunction %void None %388
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.wgsl.expected.spvasm
index 01d7e03..d044f62 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.wgsl.expected.spvasm
@@ -6,8 +6,11 @@
                OpCapability Shader
         %354 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2 %tint_symbol_3
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_GLF_pos_param_1 %frag_color_1_1 %gl_Position_1 %vertex_point_size
+               OpName %x_GLF_pos_param_1 "x_GLF_pos_param_1"
+               OpName %frag_color_1_1 "frag_color_1_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %QuicksortObject "QuicksortObject"
                OpMemberName %QuicksortObject 0 "numbers"
                OpName %obj "obj"
@@ -18,9 +21,6 @@
                OpName %x_34 "x_34"
                OpName %frag_color "frag_color"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %performPartition_i1_i1_ "performPartition_i1_i1_"
                OpName %l "l"
                OpName %h "h"
@@ -47,8 +47,8 @@
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "frag_color_1"
                OpMemberName %main_out 1 "gl_Position"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_GLF_pos_param "x_GLF_pos_param"
                OpName %main "main"
                OpName %swap_i1_i1_ "swap_i1_i1_"
                OpName %i "i"
@@ -62,7 +62,10 @@
                OpName %p "p"
                OpName %param_4 "param_4"
                OpName %param_5 "param_5"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %x_GLF_pos_param_1 Location 0
+               OpDecorate %frag_color_1_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %QuicksortObject 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf0 Block
@@ -70,39 +73,36 @@
                OpDecorate %x_34 NonWritable
                OpDecorate %x_34 DescriptorSet 0
                OpDecorate %x_34 Binding 0
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 Location 0
-               OpDecorate %tint_symbol_3 BuiltIn Position
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%x_GLF_pos_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%frag_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %QuicksortObject = OpTypeStruct %_arr_int_uint_10
 %_ptr_Private_QuicksortObject = OpTypePointer Private %QuicksortObject
-         %12 = OpConstantNull %QuicksortObject
-        %obj = OpVariable %_ptr_Private_QuicksortObject Private %12
-    %v4float = OpTypeVector %float 4
+         %19 = OpConstantNull %QuicksortObject
+        %obj = OpVariable %_ptr_Private_QuicksortObject Private %19
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_FragCoord = OpVariable %_ptr_Private_v4float Private %16
-  %x_GLF_pos = OpVariable %_ptr_Private_v4float Private %16
+%x_GLF_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+  %x_GLF_pos = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_34 = OpVariable %_ptr_Uniform_buf0 Uniform
- %frag_color = OpVariable %_ptr_Private_v4float Private %16
-%gl_Position = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %16
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %16
+ %frag_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_int = OpTypePointer Function %int
          %29 = OpTypeFunction %int %_ptr_Function_int %_ptr_Function_int
          %36 = OpConstantNull %int
@@ -147,7 +147,7 @@
       %int_7 = OpConstant %int 7
       %int_8 = OpConstant %int 8
    %main_out = OpTypeStruct %v4float %v4float
-        %373 = OpTypeFunction %void %main_out
+        %373 = OpTypeFunction %main_out %v4float
         %388 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int
 %performPartition_i1_i1_ = OpFunction %int None %29
           %l = OpFunctionParameter %_ptr_Function_int
@@ -563,25 +563,25 @@
                OpStore %gl_Position %372
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %373
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %373
+%x_GLF_pos_param = OpFunctionParameter %v4float
         %377 = OpLabel
-        %378 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %378
-        %379 = OpCompositeExtract %v4float %tint_symbol_1 1
-               OpStore %tint_symbol_3 %379
-               OpReturn
+               OpStore %x_GLF_pos %x_GLF_pos_param
+        %378 = OpFunctionCall %void %main_1
+        %379 = OpLoad %v4float %frag_color
+        %380 = OpLoad %v4float %gl_Position
+        %381 = OpCompositeConstruct %main_out %379 %380
+               OpReturnValue %381
                OpFunctionEnd
        %main = OpFunction %void None %116
-        %381 = OpLabel
-               OpStore %tint_pointsize %float_1
-        %382 = OpLoad %v4float %tint_symbol
-               OpStore %x_GLF_pos %382
-        %383 = OpFunctionCall %void %main_1
-        %385 = OpLoad %v4float %frag_color
-        %386 = OpLoad %v4float %gl_Position
-        %387 = OpCompositeConstruct %main_out %385 %386
-        %384 = OpFunctionCall %void %tint_symbol_4 %387
+        %383 = OpLabel
+        %385 = OpLoad %v4float %x_GLF_pos_param_1
+        %384 = OpFunctionCall %main_out %main_inner %385
+        %386 = OpCompositeExtract %v4float %384 0
+               OpStore %frag_color_1_1 %386
+        %387 = OpCompositeExtract %v4float %384 1
+               OpStore %gl_Position_1 %387
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
 %swap_i1_i1_ = OpFunction %void None %388
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.spvasm.expected.spvasm
index f53a11b..e255866 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.spvasm.expected.spvasm
@@ -6,8 +6,11 @@
                OpCapability Shader
         %280 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2 %tint_symbol_3
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_GLF_pos_param_1 %frag_color_1_1 %gl_Position_1 %vertex_point_size
+               OpName %x_GLF_pos_param_1 "x_GLF_pos_param_1"
+               OpName %frag_color_1_1 "frag_color_1_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %QuicksortObject "QuicksortObject"
                OpMemberName %QuicksortObject 0 "numbers"
                OpName %obj "obj"
@@ -21,9 +24,6 @@
                OpName %x_37 "x_37"
                OpName %frag_color "frag_color"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %swap_i1_i1_ "swap_i1_i1_"
                OpName %i "i"
                OpName %j "j"
@@ -53,10 +53,13 @@
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "frag_color_1"
                OpMemberName %main_out 1 "gl_Position"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_GLF_pos_param "x_GLF_pos_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %x_GLF_pos_param_1 Location 0
+               OpDecorate %frag_color_1_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %QuicksortObject 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf1 Block
@@ -69,28 +72,30 @@
                OpDecorate %x_37 NonWritable
                OpDecorate %x_37 DescriptorSet 0
                OpDecorate %x_37 Binding 0
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 Location 0
-               OpDecorate %tint_symbol_3 BuiltIn Position
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%x_GLF_pos_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%frag_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %QuicksortObject = OpTypeStruct %_arr_int_uint_10
 %_ptr_Private_QuicksortObject = OpTypePointer Private %QuicksortObject
-         %12 = OpConstantNull %QuicksortObject
-        %obj = OpVariable %_ptr_Private_QuicksortObject Private %12
-    %v4float = OpTypeVector %float 4
+         %19 = OpConstantNull %QuicksortObject
+        %obj = OpVariable %_ptr_Private_QuicksortObject Private %19
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_FragCoord = OpVariable %_ptr_Private_v4float Private %16
-  %x_GLF_pos = OpVariable %_ptr_Private_v4float Private %16
+%x_GLF_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+  %x_GLF_pos = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
@@ -98,13 +103,8 @@
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_37 = OpVariable %_ptr_Uniform_buf0 Uniform
- %frag_color = OpVariable %_ptr_Private_v4float Private %16
-%gl_Position = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %16
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %16
+ %frag_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int
@@ -150,7 +150,7 @@
       %int_7 = OpConstant %int 7
       %int_8 = OpConstant %int 8
    %main_out = OpTypeStruct %v4float %v4float
-        %393 = OpTypeFunction %void %main_out
+        %393 = OpTypeFunction %main_out %v4float
 %swap_i1_i1_ = OpFunction %void None %32
           %i = OpFunctionParameter %_ptr_Function_int
           %j = OpFunctionParameter %_ptr_Function_int
@@ -570,24 +570,24 @@
                OpStore %gl_Position %392
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %393
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %393
+%x_GLF_pos_param = OpFunctionParameter %v4float
         %397 = OpLabel
-        %398 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %398
-        %399 = OpCompositeExtract %v4float %tint_symbol_1 1
-               OpStore %tint_symbol_3 %399
-               OpReturn
+               OpStore %x_GLF_pos %x_GLF_pos_param
+        %398 = OpFunctionCall %void %main_1
+        %399 = OpLoad %v4float %frag_color
+        %400 = OpLoad %v4float %gl_Position
+        %401 = OpCompositeConstruct %main_out %399 %400
+               OpReturnValue %401
                OpFunctionEnd
        %main = OpFunction %void None %118
-        %401 = OpLabel
-               OpStore %tint_pointsize %float_1
-        %402 = OpLoad %v4float %tint_symbol
-               OpStore %x_GLF_pos %402
-        %403 = OpFunctionCall %void %main_1
-        %405 = OpLoad %v4float %frag_color
-        %406 = OpLoad %v4float %gl_Position
-        %407 = OpCompositeConstruct %main_out %405 %406
-        %404 = OpFunctionCall %void %tint_symbol_4 %407
+        %403 = OpLabel
+        %405 = OpLoad %v4float %x_GLF_pos_param_1
+        %404 = OpFunctionCall %main_out %main_inner %405
+        %406 = OpCompositeExtract %v4float %404 0
+               OpStore %frag_color_1_1 %406
+        %407 = OpCompositeExtract %v4float %404 1
+               OpStore %gl_Position_1 %407
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.wgsl.expected.spvasm
index f53a11b..e255866 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.wgsl.expected.spvasm
@@ -6,8 +6,11 @@
                OpCapability Shader
         %280 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2 %tint_symbol_3
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_GLF_pos_param_1 %frag_color_1_1 %gl_Position_1 %vertex_point_size
+               OpName %x_GLF_pos_param_1 "x_GLF_pos_param_1"
+               OpName %frag_color_1_1 "frag_color_1_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %QuicksortObject "QuicksortObject"
                OpMemberName %QuicksortObject 0 "numbers"
                OpName %obj "obj"
@@ -21,9 +24,6 @@
                OpName %x_37 "x_37"
                OpName %frag_color "frag_color"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %swap_i1_i1_ "swap_i1_i1_"
                OpName %i "i"
                OpName %j "j"
@@ -53,10 +53,13 @@
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "frag_color_1"
                OpMemberName %main_out 1 "gl_Position"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_GLF_pos_param "x_GLF_pos_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
+               OpDecorate %x_GLF_pos_param_1 Location 0
+               OpDecorate %frag_color_1_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %QuicksortObject 0 Offset 0
                OpDecorate %_arr_int_uint_10 ArrayStride 4
                OpDecorate %buf1 Block
@@ -69,28 +72,30 @@
                OpDecorate %x_37 NonWritable
                OpDecorate %x_37 DescriptorSet 0
                OpDecorate %x_37 Binding 0
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 Location 0
-               OpDecorate %tint_symbol_3 BuiltIn Position
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%x_GLF_pos_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%frag_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
         %int = OpTypeInt 32 1
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_int_uint_10 = OpTypeArray %int %uint_10
 %QuicksortObject = OpTypeStruct %_arr_int_uint_10
 %_ptr_Private_QuicksortObject = OpTypePointer Private %QuicksortObject
-         %12 = OpConstantNull %QuicksortObject
-        %obj = OpVariable %_ptr_Private_QuicksortObject Private %12
-    %v4float = OpTypeVector %float 4
+         %19 = OpConstantNull %QuicksortObject
+        %obj = OpVariable %_ptr_Private_QuicksortObject Private %19
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%x_GLF_FragCoord = OpVariable %_ptr_Private_v4float Private %16
-  %x_GLF_pos = OpVariable %_ptr_Private_v4float Private %16
+%x_GLF_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+  %x_GLF_pos = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
@@ -98,13 +103,8 @@
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_37 = OpVariable %_ptr_Uniform_buf0 Uniform
- %frag_color = OpVariable %_ptr_Private_v4float Private %16
-%gl_Position = OpVariable %_ptr_Private_v4float Private %16
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %16
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %16
+ %frag_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int
@@ -150,7 +150,7 @@
       %int_7 = OpConstant %int 7
       %int_8 = OpConstant %int 8
    %main_out = OpTypeStruct %v4float %v4float
-        %393 = OpTypeFunction %void %main_out
+        %393 = OpTypeFunction %main_out %v4float
 %swap_i1_i1_ = OpFunction %void None %32
           %i = OpFunctionParameter %_ptr_Function_int
           %j = OpFunctionParameter %_ptr_Function_int
@@ -570,24 +570,24 @@
                OpStore %gl_Position %392
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %393
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %393
+%x_GLF_pos_param = OpFunctionParameter %v4float
         %397 = OpLabel
-        %398 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %398
-        %399 = OpCompositeExtract %v4float %tint_symbol_1 1
-               OpStore %tint_symbol_3 %399
-               OpReturn
+               OpStore %x_GLF_pos %x_GLF_pos_param
+        %398 = OpFunctionCall %void %main_1
+        %399 = OpLoad %v4float %frag_color
+        %400 = OpLoad %v4float %gl_Position
+        %401 = OpCompositeConstruct %main_out %399 %400
+               OpReturnValue %401
                OpFunctionEnd
        %main = OpFunction %void None %118
-        %401 = OpLabel
-               OpStore %tint_pointsize %float_1
-        %402 = OpLoad %v4float %tint_symbol
-               OpStore %x_GLF_pos %402
-        %403 = OpFunctionCall %void %main_1
-        %405 = OpLoad %v4float %frag_color
-        %406 = OpLoad %v4float %gl_Position
-        %407 = OpCompositeConstruct %main_out %405 %406
-        %404 = OpFunctionCall %void %tint_symbol_4 %407
+        %403 = OpLabel
+        %405 = OpLoad %v4float %x_GLF_pos_param_1
+        %404 = OpFunctionCall %main_out %main_inner %405
+        %406 = OpCompositeExtract %v4float %404 0
+               OpStore %frag_color_1_1 %406
+        %407 = OpCompositeExtract %v4float %404 1
+               OpStore %gl_Position_1 %407
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.spvasm.expected.spvasm
index 5d8773e..7581de0 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
         %125 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_20 "x_20"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %collision_vf2_vf4_ "collision_vf2_vf4_"
                OpName %pos "pos"
                OpName %quad "quad"
@@ -35,33 +35,33 @@
                OpName %param_2 "param_2"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_20 NonWritable
                OpDecorate %x_20 DescriptorSet 0
                OpDecorate %x_20 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_8 ArrayStride 16
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_20 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %bool = OpTypeBool
 %_ptr_Function_v2float = OpTypePointer Function %v2float
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -137,7 +137,7 @@
 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
    %float_32 = OpConstant %float 32
    %main_out = OpTypeStruct %v4float
-        %227 = OpTypeFunction %void %main_out
+        %227 = OpTypeFunction %main_out %v4float
 %collision_vf2_vf4_ = OpFunction %bool None %15
         %pos = OpFunctionParameter %_ptr_Function_v2float
        %quad = OpFunctionParameter %_ptr_Function_v4float
@@ -193,12 +193,12 @@
  %match_vf2_ = OpFunction %v4float None %75
       %pos_1 = OpFunctionParameter %_ptr_Function_v2float
          %78 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %5
+        %res = OpVariable %_ptr_Function_v4float Function %7
       %x_144 = OpVariable %_ptr_Function_float Function %81
       %x_145 = OpVariable %_ptr_Function_float Function %81
           %i = OpVariable %_ptr_Function_int Function %86
       %param = OpVariable %_ptr_Function_v2float Function %88
-    %param_1 = OpVariable %_ptr_Function_v4float Function %5
+    %param_1 = OpVariable %_ptr_Function_v4float Function %7
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %94
 %indexable_1 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %94
 %indexable_2 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %94
@@ -317,20 +317,20 @@
                OpStore %x_GLF_color %225
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %227
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %227
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %231 = OpLabel
-        %232 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %232
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %232 = OpFunctionCall %void %main_1
+        %233 = OpLoad %v4float %x_GLF_color
+        %234 = OpCompositeConstruct %main_out %233
+               OpReturnValue %234
                OpFunctionEnd
        %main = OpFunction %void None %206
-        %234 = OpLabel
-        %235 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %235
-        %236 = OpFunctionCall %void %main_1
-        %238 = OpLoad %v4float %x_GLF_color
-        %239 = OpCompositeConstruct %main_out %238
-        %237 = OpFunctionCall %void %tint_symbol_3 %239
+        %236 = OpLabel
+        %238 = OpLoad %v4float %gl_FragCoord_param_1
+        %237 = OpFunctionCall %main_out %main_inner %238
+        %239 = OpCompositeExtract %v4float %237 0
+               OpStore %x_GLF_color_1_1 %239
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.wgsl.expected.spvasm
index 5d8773e..7581de0 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
         %125 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_20 "x_20"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %collision_vf2_vf4_ "collision_vf2_vf4_"
                OpName %pos "pos"
                OpName %quad "quad"
@@ -35,33 +35,33 @@
                OpName %param_2 "param_2"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_20 NonWritable
                OpDecorate %x_20 DescriptorSet 0
                OpDecorate %x_20 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_v4float_uint_8 ArrayStride 16
                OpDecorate %_arr_v4float_uint_16 ArrayStride 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_20 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %bool = OpTypeBool
 %_ptr_Function_v2float = OpTypePointer Function %v2float
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -137,7 +137,7 @@
 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
    %float_32 = OpConstant %float 32
    %main_out = OpTypeStruct %v4float
-        %227 = OpTypeFunction %void %main_out
+        %227 = OpTypeFunction %main_out %v4float
 %collision_vf2_vf4_ = OpFunction %bool None %15
         %pos = OpFunctionParameter %_ptr_Function_v2float
        %quad = OpFunctionParameter %_ptr_Function_v4float
@@ -193,12 +193,12 @@
  %match_vf2_ = OpFunction %v4float None %75
       %pos_1 = OpFunctionParameter %_ptr_Function_v2float
          %78 = OpLabel
-        %res = OpVariable %_ptr_Function_v4float Function %5
+        %res = OpVariable %_ptr_Function_v4float Function %7
       %x_144 = OpVariable %_ptr_Function_float Function %81
       %x_145 = OpVariable %_ptr_Function_float Function %81
           %i = OpVariable %_ptr_Function_int Function %86
       %param = OpVariable %_ptr_Function_v2float Function %88
-    %param_1 = OpVariable %_ptr_Function_v4float Function %5
+    %param_1 = OpVariable %_ptr_Function_v4float Function %7
   %indexable = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %94
 %indexable_1 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %94
 %indexable_2 = OpVariable %_ptr_Function__arr_v4float_uint_8 Function %94
@@ -317,20 +317,20 @@
                OpStore %x_GLF_color %225
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %227
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %227
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %231 = OpLabel
-        %232 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %232
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %232 = OpFunctionCall %void %main_1
+        %233 = OpLoad %v4float %x_GLF_color
+        %234 = OpCompositeConstruct %main_out %233
+               OpReturnValue %234
                OpFunctionEnd
        %main = OpFunction %void None %206
-        %234 = OpLabel
-        %235 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %235
-        %236 = OpFunctionCall %void %main_1
-        %238 = OpLoad %v4float %x_GLF_color
-        %239 = OpCompositeConstruct %main_out %238
-        %237 = OpFunctionCall %void %tint_symbol_3 %239
+        %236 = OpLabel
+        %238 = OpLoad %v4float %gl_FragCoord_param_1
+        %237 = OpFunctionCall %main_out %main_inner %238
+        %239 = OpCompositeExtract %v4float %237 0
+               OpStore %x_GLF_color_1_1 %239
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.spvasm
index 97a8140..c6328f5 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_24 "x_24"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %cross2d_vf2_vf2_ "cross2d_vf2_vf2_"
                OpName %a "a"
                OpName %b "b"
@@ -46,31 +46,31 @@
                OpName %param_9 "param_9"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_24 NonWritable
                OpDecorate %x_24 DescriptorSet 0
                OpDecorate %x_24 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_24 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %15 = OpTypeFunction %float %_ptr_Function_v2float %_ptr_Function_v2float
        %uint = OpTypeInt 32 0
@@ -107,7 +107,7 @@
         %242 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %243 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %244 = OpTypeFunction %void %main_out
+        %244 = OpTypeFunction %main_out %v4float
 %cross2d_vf2_vf2_ = OpFunction %float None %15
           %a = OpFunctionParameter %_ptr_Function_v2float
           %b = OpFunctionParameter %_ptr_Function_v2float
@@ -321,20 +321,20 @@
         %238 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %244
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %244
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %248 = OpLabel
-        %249 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %249
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %249 = OpFunctionCall %void %main_1
+        %250 = OpLoad %v4float %x_GLF_color
+        %251 = OpCompositeConstruct %main_out %250
+               OpReturnValue %251
                OpFunctionEnd
        %main = OpFunction %void None %206
-        %251 = OpLabel
-        %252 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %252
-        %253 = OpFunctionCall %void %main_1
-        %255 = OpLoad %v4float %x_GLF_color
-        %256 = OpCompositeConstruct %main_out %255
-        %254 = OpFunctionCall %void %tint_symbol_3 %256
+        %253 = OpLabel
+        %255 = OpLoad %v4float %gl_FragCoord_param_1
+        %254 = OpFunctionCall %main_out %main_inner %255
+        %256 = OpCompositeExtract %v4float %254 0
+               OpStore %x_GLF_color_1_1 %256
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.wgsl.expected.spvasm
index 59e04f8..3dbc1da 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_24 "x_24"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %cross2d_vf2_vf2_ "cross2d_vf2_vf2_"
                OpName %a "a"
                OpName %b "b"
@@ -46,31 +46,31 @@
                OpName %param_9 "param_9"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_24 NonWritable
                OpDecorate %x_24 DescriptorSet 0
                OpDecorate %x_24 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_24 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %15 = OpTypeFunction %float %_ptr_Function_v2float %_ptr_Function_v2float
        %uint = OpTypeInt 32 0
@@ -107,7 +107,7 @@
         %250 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %251 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %252 = OpTypeFunction %void %main_out
+        %252 = OpTypeFunction %main_out %v4float
 %cross2d_vf2_vf2_ = OpFunction %float None %15
           %a = OpFunctionParameter %_ptr_Function_v2float
           %b = OpFunctionParameter %_ptr_Function_v2float
@@ -341,20 +341,20 @@
         %246 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %252
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %252
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %256 = OpLabel
-        %257 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %257
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %257 = OpFunctionCall %void %main_1
+        %258 = OpLoad %v4float %x_GLF_color
+        %259 = OpCompositeConstruct %main_out %258
+               OpReturnValue %259
                OpFunctionEnd
        %main = OpFunction %void None %214
-        %259 = OpLabel
-        %260 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %260
-        %261 = OpFunctionCall %void %main_1
-        %263 = OpLoad %v4float %x_GLF_color
-        %264 = OpCompositeConstruct %main_out %263
-        %262 = OpFunctionCall %void %tint_symbol_3 %264
+        %261 = OpLabel
+        %263 = OpLoad %v4float %gl_FragCoord_param_1
+        %262 = OpFunctionCall %main_out %main_inner %263
+        %264 = OpCompositeExtract %v4float %262 0
+               OpStore %x_GLF_color_1_1 %264
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.spvasm
index cbaf950..a09be33 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_24 "x_24"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %cross2d_vf2_vf2_ "cross2d_vf2_vf2_"
                OpName %a "a"
                OpName %b "b"
@@ -43,31 +43,31 @@
                OpName %param_9 "param_9"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_24 NonWritable
                OpDecorate %x_24 DescriptorSet 0
                OpDecorate %x_24 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_24 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %15 = OpTypeFunction %float %_ptr_Function_v2float %_ptr_Function_v2float
        %uint = OpTypeInt 32 0
@@ -100,7 +100,7 @@
         %241 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %242 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %243 = OpTypeFunction %void %main_out
+        %243 = OpTypeFunction %main_out %v4float
 %cross2d_vf2_vf2_ = OpFunction %float None %15
           %a = OpFunctionParameter %_ptr_Function_v2float
           %b = OpFunctionParameter %_ptr_Function_v2float
@@ -304,20 +304,20 @@
         %237 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %243
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %243
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %247 = OpLabel
-        %248 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %248
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %248 = OpFunctionCall %void %main_1
+        %249 = OpLoad %v4float %x_GLF_color
+        %250 = OpCompositeConstruct %main_out %249
+               OpReturnValue %250
                OpFunctionEnd
        %main = OpFunction %void None %204
-        %250 = OpLabel
-        %251 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %251
-        %252 = OpFunctionCall %void %main_1
-        %254 = OpLoad %v4float %x_GLF_color
-        %255 = OpCompositeConstruct %main_out %254
-        %253 = OpFunctionCall %void %tint_symbol_3 %255
+        %252 = OpLabel
+        %254 = OpLoad %v4float %gl_FragCoord_param_1
+        %253 = OpFunctionCall %main_out %main_inner %254
+        %255 = OpCompositeExtract %v4float %253 0
+               OpStore %x_GLF_color_1_1 %255
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.wgsl.expected.spvasm
index dadcc8e..4b9e486 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_24 "x_24"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %cross2d_vf2_vf2_ "cross2d_vf2_vf2_"
                OpName %a "a"
                OpName %b "b"
@@ -43,31 +43,31 @@
                OpName %param_9 "param_9"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_24 NonWritable
                OpDecorate %x_24 DescriptorSet 0
                OpDecorate %x_24 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_24 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %15 = OpTypeFunction %float %_ptr_Function_v2float %_ptr_Function_v2float
        %uint = OpTypeInt 32 0
@@ -100,7 +100,7 @@
         %249 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %250 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %251 = OpTypeFunction %void %main_out
+        %251 = OpTypeFunction %main_out %v4float
 %cross2d_vf2_vf2_ = OpFunction %float None %15
           %a = OpFunctionParameter %_ptr_Function_v2float
           %b = OpFunctionParameter %_ptr_Function_v2float
@@ -324,20 +324,20 @@
         %245 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %251
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %251
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %255 = OpLabel
-        %256 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %256
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %256 = OpFunctionCall %void %main_1
+        %257 = OpLoad %v4float %x_GLF_color
+        %258 = OpCompositeConstruct %main_out %257
+               OpReturnValue %258
                OpFunctionEnd
        %main = OpFunction %void None %212
-        %258 = OpLabel
-        %259 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %259
-        %260 = OpFunctionCall %void %main_1
-        %262 = OpLoad %v4float %x_GLF_color
-        %263 = OpCompositeConstruct %main_out %262
-        %261 = OpFunctionCall %void %tint_symbol_3 %263
+        %260 = OpLabel
+        %262 = OpLoad %v4float %gl_FragCoord_param_1
+        %261 = OpFunctionCall %main_out %main_inner %262
+        %263 = OpCompositeExtract %v4float %261 0
+               OpStore %x_GLF_color_1_1 %263
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.spvasm
index fd2f1dc..29470fa 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %97 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_15 "x_15"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %cross2d_vf2_vf2_ "cross2d_vf2_vf2_"
                OpName %a "a"
                OpName %b "b"
@@ -48,31 +48,31 @@
                OpName %param_9 "param_9"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_15 NonWritable
                OpDecorate %x_15 DescriptorSet 0
                OpDecorate %x_15 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_15 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %15 = OpTypeFunction %float %_ptr_Function_v2float %_ptr_Function_v2float
        %uint = OpTypeInt 32 0
@@ -108,7 +108,7 @@
         %283 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %284 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %285 = OpTypeFunction %void %main_out
+        %285 = OpTypeFunction %main_out %v4float
 %cross2d_vf2_vf2_ = OpFunction %float None %15
           %a = OpFunctionParameter %_ptr_Function_v2float
           %b = OpFunctionParameter %_ptr_Function_v2float
@@ -360,20 +360,20 @@
         %280 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %285
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %285
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %289 = OpLabel
-        %290 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %290
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %290 = OpFunctionCall %void %main_1
+        %291 = OpLoad %v4float %x_GLF_color
+        %292 = OpCompositeConstruct %main_out %291
+               OpReturnValue %292
                OpFunctionEnd
        %main = OpFunction %void None %247
-        %292 = OpLabel
-        %293 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %293
-        %294 = OpFunctionCall %void %main_1
-        %296 = OpLoad %v4float %x_GLF_color
-        %297 = OpCompositeConstruct %main_out %296
-        %295 = OpFunctionCall %void %tint_symbol_3 %297
+        %294 = OpLabel
+        %296 = OpLoad %v4float %gl_FragCoord_param_1
+        %295 = OpFunctionCall %main_out %main_inner %296
+        %297 = OpCompositeExtract %v4float %295 0
+               OpStore %x_GLF_color_1_1 %297
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.wgsl.expected.spvasm
index 98ab5e5..11326c6 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.wgsl.expected.spvasm
@@ -6,15 +6,15 @@
                OpCapability Shader
          %97 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_15 "x_15"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %cross2d_vf2_vf2_ "cross2d_vf2_vf2_"
                OpName %a "a"
                OpName %b "b"
@@ -48,31 +48,31 @@
                OpName %param_9 "param_9"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_15 NonWritable
                OpDecorate %x_15 DescriptorSet 0
                OpDecorate %x_15 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_15 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %15 = OpTypeFunction %float %_ptr_Function_v2float %_ptr_Function_v2float
        %uint = OpTypeInt 32 0
@@ -108,7 +108,7 @@
         %291 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %292 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %293 = OpTypeFunction %void %main_out
+        %293 = OpTypeFunction %main_out %v4float
 %cross2d_vf2_vf2_ = OpFunction %float None %15
           %a = OpFunctionParameter %_ptr_Function_v2float
           %b = OpFunctionParameter %_ptr_Function_v2float
@@ -380,20 +380,20 @@
         %288 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %293
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %293
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %297 = OpLabel
-        %298 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %298
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %298 = OpFunctionCall %void %main_1
+        %299 = OpLoad %v4float %x_GLF_color
+        %300 = OpCompositeConstruct %main_out %299
+               OpReturnValue %300
                OpFunctionEnd
        %main = OpFunction %void None %255
-        %300 = OpLabel
-        %301 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %301
-        %302 = OpFunctionCall %void %main_1
-        %304 = OpLoad %v4float %x_GLF_color
-        %305 = OpCompositeConstruct %main_out %304
-        %303 = OpFunctionCall %void %tint_symbol_3 %305
+        %302 = OpLabel
+        %304 = OpLoad %v4float %gl_FragCoord_param_1
+        %303 = OpFunctionCall %main_out %main_inner %304
+        %305 = OpCompositeExtract %v4float %303 0
+               OpStore %x_GLF_color_1_1 %305
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.spvasm
index c9284d5..98d056f 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_24 "x_24"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %cross2d_vf2_vf2_ "cross2d_vf2_vf2_"
                OpName %a "a"
                OpName %b "b"
@@ -43,31 +43,31 @@
                OpName %param_9 "param_9"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_24 NonWritable
                OpDecorate %x_24 DescriptorSet 0
                OpDecorate %x_24 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_24 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %15 = OpTypeFunction %float %_ptr_Function_v2float %_ptr_Function_v2float
        %uint = OpTypeInt 32 0
@@ -100,7 +100,7 @@
         %241 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %242 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %243 = OpTypeFunction %void %main_out
+        %243 = OpTypeFunction %main_out %v4float
 %cross2d_vf2_vf2_ = OpFunction %float None %15
           %a = OpFunctionParameter %_ptr_Function_v2float
           %b = OpFunctionParameter %_ptr_Function_v2float
@@ -304,20 +304,20 @@
         %237 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %243
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %243
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %247 = OpLabel
-        %248 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %248
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %248 = OpFunctionCall %void %main_1
+        %249 = OpLoad %v4float %x_GLF_color
+        %250 = OpCompositeConstruct %main_out %249
+               OpReturnValue %250
                OpFunctionEnd
        %main = OpFunction %void None %204
-        %250 = OpLabel
-        %251 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %251
-        %252 = OpFunctionCall %void %main_1
-        %254 = OpLoad %v4float %x_GLF_color
-        %255 = OpCompositeConstruct %main_out %254
-        %253 = OpFunctionCall %void %tint_symbol_3 %255
+        %252 = OpLabel
+        %254 = OpLoad %v4float %gl_FragCoord_param_1
+        %253 = OpFunctionCall %main_out %main_inner %254
+        %255 = OpCompositeExtract %v4float %253 0
+               OpStore %x_GLF_color_1_1 %255
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.wgsl.expected.spvasm
index 0d3239b..db14570 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_24 "x_24"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %cross2d_vf2_vf2_ "cross2d_vf2_vf2_"
                OpName %a "a"
                OpName %b "b"
@@ -43,31 +43,31 @@
                OpName %param_9 "param_9"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_24 NonWritable
                OpDecorate %x_24 DescriptorSet 0
                OpDecorate %x_24 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_24 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %15 = OpTypeFunction %float %_ptr_Function_v2float %_ptr_Function_v2float
        %uint = OpTypeInt 32 0
@@ -100,7 +100,7 @@
         %249 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %250 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %251 = OpTypeFunction %void %main_out
+        %251 = OpTypeFunction %main_out %v4float
 %cross2d_vf2_vf2_ = OpFunction %float None %15
           %a = OpFunctionParameter %_ptr_Function_v2float
           %b = OpFunctionParameter %_ptr_Function_v2float
@@ -324,20 +324,20 @@
         %245 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %251
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %251
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %255 = OpLabel
-        %256 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %256
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %256 = OpFunctionCall %void %main_1
+        %257 = OpLoad %v4float %x_GLF_color
+        %258 = OpCompositeConstruct %main_out %257
+               OpReturnValue %258
                OpFunctionEnd
        %main = OpFunction %void None %212
-        %258 = OpLabel
-        %259 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %259
-        %260 = OpFunctionCall %void %main_1
-        %262 = OpLoad %v4float %x_GLF_color
-        %263 = OpCompositeConstruct %main_out %262
-        %261 = OpFunctionCall %void %tint_symbol_3 %263
+        %260 = OpLabel
+        %262 = OpLoad %v4float %gl_FragCoord_param_1
+        %261 = OpFunctionCall %main_out %main_inner %262
+        %263 = OpCompositeExtract %v4float %261 0
+               OpStore %x_GLF_color_1_1 %263
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.spvasm
index ce35196..b843fea 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_17 "x_17"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %pointInTriangle_vf2_vf2_vf2_vf2_ "pointInTriangle_vf2_vf2_vf2_vf2_"
                OpName %p "p"
                OpName %a "a"
@@ -39,31 +39,31 @@
                OpName %param_9 "param_9"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_17 NonWritable
                OpDecorate %x_17 DescriptorSet 0
                OpDecorate %x_17 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_17 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %15 = OpTypeFunction %int %_ptr_Function_v2float %_ptr_Function_v2float %_ptr_Function_v2float %_ptr_Function_v2float
@@ -95,7 +95,7 @@
         %234 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %235 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %236 = OpTypeFunction %void %main_out
+        %236 = OpTypeFunction %main_out %v4float
 %pointInTriangle_vf2_vf2_vf2_vf2_ = OpFunction %int None %15
           %p = OpFunctionParameter %_ptr_Function_v2float
           %a = OpFunctionParameter %_ptr_Function_v2float
@@ -300,20 +300,20 @@
         %230 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %236
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %236
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %240 = OpLabel
-        %241 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %241
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %241 = OpFunctionCall %void %main_1
+        %242 = OpLoad %v4float %x_GLF_color
+        %243 = OpCompositeConstruct %main_out %242
+               OpReturnValue %243
                OpFunctionEnd
        %main = OpFunction %void None %199
-        %243 = OpLabel
-        %244 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %244
-        %245 = OpFunctionCall %void %main_1
-        %247 = OpLoad %v4float %x_GLF_color
-        %248 = OpCompositeConstruct %main_out %247
-        %246 = OpFunctionCall %void %tint_symbol_3 %248
+        %245 = OpLabel
+        %247 = OpLoad %v4float %gl_FragCoord_param_1
+        %246 = OpFunctionCall %main_out %main_inner %247
+        %248 = OpCompositeExtract %v4float %246 0
+               OpStore %x_GLF_color_1_1 %248
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.wgsl.expected.spvasm
index 69ebf78..7431763 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_17 "x_17"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %pointInTriangle_vf2_vf2_vf2_vf2_ "pointInTriangle_vf2_vf2_vf2_vf2_"
                OpName %p "p"
                OpName %a "a"
@@ -39,31 +39,31 @@
                OpName %param_9 "param_9"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_17 NonWritable
                OpDecorate %x_17 DescriptorSet 0
                OpDecorate %x_17 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_17 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
         %int = OpTypeInt 32 1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %15 = OpTypeFunction %int %_ptr_Function_v2float %_ptr_Function_v2float %_ptr_Function_v2float %_ptr_Function_v2float
@@ -95,7 +95,7 @@
         %242 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %243 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %244 = OpTypeFunction %void %main_out
+        %244 = OpTypeFunction %main_out %v4float
 %pointInTriangle_vf2_vf2_vf2_vf2_ = OpFunction %int None %15
           %p = OpFunctionParameter %_ptr_Function_v2float
           %a = OpFunctionParameter %_ptr_Function_v2float
@@ -320,20 +320,20 @@
         %238 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %244
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %244
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %248 = OpLabel
-        %249 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %249
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %249 = OpFunctionCall %void %main_1
+        %250 = OpLoad %v4float %x_GLF_color
+        %251 = OpCompositeConstruct %main_out %250
+               OpReturnValue %251
                OpFunctionEnd
        %main = OpFunction %void None %207
-        %251 = OpLabel
-        %252 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %252
-        %253 = OpFunctionCall %void %main_1
-        %255 = OpLoad %v4float %x_GLF_color
-        %256 = OpCompositeConstruct %main_out %255
-        %254 = OpFunctionCall %void %tint_symbol_3 %256
+        %253 = OpLabel
+        %255 = OpLoad %v4float %gl_FragCoord_param_1
+        %254 = OpFunctionCall %main_out %main_inner %255
+        %256 = OpCompositeExtract %v4float %254 0
+               OpStore %x_GLF_color_1_1 %256
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.spvasm
index a995146..cf14852 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "injectionSwitch"
                OpName %x_11 "x_11"
@@ -15,8 +17,6 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_19 "x_19"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %pointInTriangle_vf2_vf2_vf2_vf2_ "pointInTriangle_vf2_vf2_vf2_vf2_"
                OpName %p "p"
                OpName %a "a"
@@ -46,9 +46,11 @@
                OpName %param_9 "param_9"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_11 NonWritable
@@ -59,26 +61,24 @@
                OpDecorate %x_19 NonWritable
                OpDecorate %x_19 DescriptorSet 0
                OpDecorate %x_19 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_11 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_19 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
         %int = OpTypeInt 32 1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %18 = OpTypeFunction %int %_ptr_Function_v2float %_ptr_Function_v2float %_ptr_Function_v2float %_ptr_Function_v2float
@@ -114,7 +114,7 @@
         %277 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %278 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %279 = OpTypeFunction %void %main_out
+        %279 = OpTypeFunction %main_out %v4float
 %pointInTriangle_vf2_vf2_vf2_vf2_ = OpFunction %int None %18
           %p = OpFunctionParameter %_ptr_Function_v2float
           %a = OpFunctionParameter %_ptr_Function_v2float
@@ -384,20 +384,20 @@
         %267 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %279
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %279
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %283 = OpLabel
-        %284 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %284
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %284 = OpFunctionCall %void %main_1
+        %285 = OpLoad %v4float %x_GLF_color
+        %286 = OpCompositeConstruct %main_out %285
+               OpReturnValue %286
                OpFunctionEnd
        %main = OpFunction %void None %236
-        %286 = OpLabel
-        %287 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %287
-        %288 = OpFunctionCall %void %main_1
-        %290 = OpLoad %v4float %x_GLF_color
-        %291 = OpCompositeConstruct %main_out %290
-        %289 = OpFunctionCall %void %tint_symbol_3 %291
+        %288 = OpLabel
+        %290 = OpLoad %v4float %gl_FragCoord_param_1
+        %289 = OpFunctionCall %main_out %main_inner %290
+        %291 = OpCompositeExtract %v4float %289 0
+               OpStore %x_GLF_color_1_1 %291
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.wgsl.expected.spvasm
index 8e4e6fc..e436c77 100644
--- a/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "injectionSwitch"
                OpName %x_11 "x_11"
@@ -15,8 +17,6 @@
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "resolution"
                OpName %x_19 "x_19"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %pointInTriangle_vf2_vf2_vf2_vf2_ "pointInTriangle_vf2_vf2_vf2_vf2_"
                OpName %p "p"
                OpName %a "a"
@@ -46,9 +46,11 @@
                OpName %param_9 "param_9"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_11 NonWritable
@@ -59,26 +61,24 @@
                OpDecorate %x_19 NonWritable
                OpDecorate %x_19 DescriptorSet 0
                OpDecorate %x_19 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf1 = OpTypeStruct %v2float
 %_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_11 = OpVariable %_ptr_Uniform_buf1 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_19 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
         %int = OpTypeInt 32 1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %18 = OpTypeFunction %int %_ptr_Function_v2float %_ptr_Function_v2float %_ptr_Function_v2float %_ptr_Function_v2float
@@ -114,7 +114,7 @@
         %285 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %286 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %287 = OpTypeFunction %void %main_out
+        %287 = OpTypeFunction %main_out %v4float
 %pointInTriangle_vf2_vf2_vf2_vf2_ = OpFunction %int None %18
           %p = OpFunctionParameter %_ptr_Function_v2float
           %a = OpFunctionParameter %_ptr_Function_v2float
@@ -404,20 +404,20 @@
         %275 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %287
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %287
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %291 = OpLabel
-        %292 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %292
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %292 = OpFunctionCall %void %main_1
+        %293 = OpLoad %v4float %x_GLF_color
+        %294 = OpCompositeConstruct %main_out %293
+               OpReturnValue %294
                OpFunctionEnd
        %main = OpFunction %void None %244
-        %294 = OpLabel
-        %295 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %295
-        %296 = OpFunctionCall %void %main_1
-        %298 = OpLoad %v4float %x_GLF_color
-        %299 = OpCompositeConstruct %main_out %298
-        %297 = OpFunctionCall %void %tint_symbol_3 %299
+        %296 = OpLabel
+        %298 = OpLoad %v4float %gl_FragCoord_param_1
+        %297 = OpFunctionCall %main_out %main_inner %298
+        %299 = OpCompositeExtract %v4float %297 0
+               OpStore %x_GLF_color_1_1 %299
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/struct-and-unreachable-infinite-loop/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/struct-and-unreachable-infinite-loop/0.spvasm.expected.spvasm
index 902b81d..bbbae28 100644
--- a/test/vk-gl-cts/graphicsfuzz/struct-and-unreachable-infinite-loop/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/struct-and-unreachable-infinite-loop/0.spvasm.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 73
+; Bound: 72
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %BST "BST"
                OpMemberName %BST 0 "data"
                OpMemberName %BST 1 "leftIndex"
@@ -21,10 +21,9 @@
                OpName %x_42_1 "x_42_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %BST 0 Offset 0
                OpMemberDecorate %BST 1 Offset 4
                OpMemberDecorate %BST 2 Offset 8
@@ -32,11 +31,11 @@
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
         %int = OpTypeInt 32 1
         %BST = OpTypeStruct %int %int %int
@@ -58,7 +57,7 @@
     %float_0 = OpConstant %float 0
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %61 = OpTypeFunction %void %main_out
+         %61 = OpTypeFunction %main_out
 %makeTreeNode_struct_BST_i1_i1_i11_ = OpFunction %void None %8
        %tree = OpFunctionParameter %_ptr_Function_BST
          %15 = OpLabel
@@ -108,18 +107,17 @@
                OpStore %x_GLF_color %60
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %61
-%tint_symbol = OpFunctionParameter %main_out
-         %65 = OpLabel
-         %66 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %66
-               OpReturn
+ %main_inner = OpFunction %main_out None %61
+         %64 = OpLabel
+         %65 = OpFunctionCall %void %main_1
+         %66 = OpLoad %v4float %x_GLF_color
+         %67 = OpCompositeConstruct %main_out %66
+               OpReturnValue %67
                OpFunctionEnd
        %main = OpFunction %void None %22
-         %68 = OpLabel
-         %69 = OpFunctionCall %void %main_1
-         %71 = OpLoad %v4float %x_GLF_color
-         %72 = OpCompositeConstruct %main_out %71
-         %70 = OpFunctionCall %void %tint_symbol_2 %72
+         %69 = OpLabel
+         %70 = OpFunctionCall %main_out %main_inner
+         %71 = OpCompositeExtract %v4float %70 0
+               OpStore %x_GLF_color_1_1 %71
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/struct-and-unreachable-infinite-loop/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/struct-and-unreachable-infinite-loop/0.wgsl.expected.spvasm
index 902b81d..bbbae28 100644
--- a/test/vk-gl-cts/graphicsfuzz/struct-and-unreachable-infinite-loop/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/struct-and-unreachable-infinite-loop/0.wgsl.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 73
+; Bound: 72
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %BST "BST"
                OpMemberName %BST 0 "data"
                OpMemberName %BST 1 "leftIndex"
@@ -21,10 +21,9 @@
                OpName %x_42_1 "x_42_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %BST 0 Offset 0
                OpMemberDecorate %BST 1 Offset 4
                OpMemberDecorate %BST 2 Offset 8
@@ -32,11 +31,11 @@
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
         %int = OpTypeInt 32 1
         %BST = OpTypeStruct %int %int %int
@@ -58,7 +57,7 @@
     %float_0 = OpConstant %float 0
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %61 = OpTypeFunction %void %main_out
+         %61 = OpTypeFunction %main_out
 %makeTreeNode_struct_BST_i1_i1_i11_ = OpFunction %void None %8
        %tree = OpFunctionParameter %_ptr_Function_BST
          %15 = OpLabel
@@ -108,18 +107,17 @@
                OpStore %x_GLF_color %60
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %61
-%tint_symbol = OpFunctionParameter %main_out
-         %65 = OpLabel
-         %66 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %66
-               OpReturn
+ %main_inner = OpFunction %main_out None %61
+         %64 = OpLabel
+         %65 = OpFunctionCall %void %main_1
+         %66 = OpLoad %v4float %x_GLF_color
+         %67 = OpCompositeConstruct %main_out %66
+               OpReturnValue %67
                OpFunctionEnd
        %main = OpFunction %void None %22
-         %68 = OpLabel
-         %69 = OpFunctionCall %void %main_1
-         %71 = OpLoad %v4float %x_GLF_color
-         %72 = OpCompositeConstruct %main_out %71
-         %70 = OpFunctionCall %void %tint_symbol_2 %72
+         %69 = OpLabel
+         %70 = OpFunctionCall %main_out %main_inner
+         %71 = OpCompositeExtract %v4float %70 0
+               OpStore %x_GLF_color_1_1 %71
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/struct-array-index/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/struct-array-index/0.spvasm.expected.spvasm
index cc8e8c1..63de97c 100644
--- a/test/vk-gl-cts/graphicsfuzz/struct-array-index/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/struct-array-index/0.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 75
+; Bound: 74
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %struct_base "struct_base"
                OpMemberName %struct_base 0 "data"
                OpMemberName %struct_base 1 "leftIndex"
@@ -16,14 +17,13 @@
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %index "index"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %struct_base 0 Offset 0
                OpMemberDecorate %struct_base 1 Offset 4
                OpMemberDecorate %struct_base 2 Offset 8
@@ -33,27 +33,26 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
 %struct_base = OpTypeStruct %int %int %int
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_struct_base_uint_3 = OpTypeArray %struct_base %uint_3
 %_ptr_Private__arr_struct_base_uint_3 = OpTypePointer Private %_arr_struct_base_uint_3
-          %8 = OpConstantNull %_arr_struct_base_uint_3
-%struct_array = OpVariable %_ptr_Private__arr_struct_base_uint_3 Private %8
-      %float = OpTypeFloat 32
+         %13 = OpConstantNull %_arr_struct_base_uint_3
+%struct_array = OpVariable %_ptr_Private__arr_struct_base_uint_3 Private %13
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -72,7 +71,7 @@
          %61 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %62 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-         %63 = OpTypeFunction %void %main_out
+         %63 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
       %index = OpVariable %_ptr_Function_int Function %26
@@ -116,18 +115,17 @@
          %56 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %63
-%tint_symbol = OpFunctionParameter %main_out
-         %67 = OpLabel
-         %68 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %68
-               OpReturn
+ %main_inner = OpFunction %main_out None %63
+         %66 = OpLabel
+         %67 = OpFunctionCall %void %main_1
+         %68 = OpLoad %v4float %x_GLF_color
+         %69 = OpCompositeConstruct %main_out %68
+               OpReturnValue %69
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %70 = OpLabel
-         %71 = OpFunctionCall %void %main_1
-         %73 = OpLoad %v4float %x_GLF_color
-         %74 = OpCompositeConstruct %main_out %73
-         %72 = OpFunctionCall %void %tint_symbol_2 %74
+         %71 = OpLabel
+         %72 = OpFunctionCall %main_out %main_inner
+         %73 = OpCompositeExtract %v4float %72 0
+               OpStore %x_GLF_color_1_1 %73
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/struct-array-index/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/struct-array-index/0.wgsl.expected.spvasm
index cc8e8c1..63de97c 100644
--- a/test/vk-gl-cts/graphicsfuzz/struct-array-index/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/struct-array-index/0.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 75
+; Bound: 74
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %struct_base "struct_base"
                OpMemberName %struct_base 0 "data"
                OpMemberName %struct_base 1 "leftIndex"
@@ -16,14 +17,13 @@
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %index "index"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %struct_base 0 Offset 0
                OpMemberDecorate %struct_base 1 Offset 4
                OpMemberDecorate %struct_base 2 Offset 8
@@ -33,27 +33,26 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
 %struct_base = OpTypeStruct %int %int %int
        %uint = OpTypeInt 32 0
      %uint_3 = OpConstant %uint 3
 %_arr_struct_base_uint_3 = OpTypeArray %struct_base %uint_3
 %_ptr_Private__arr_struct_base_uint_3 = OpTypePointer Private %_arr_struct_base_uint_3
-          %8 = OpConstantNull %_arr_struct_base_uint_3
-%struct_array = OpVariable %_ptr_Private__arr_struct_base_uint_3 Private %8
-      %float = OpTypeFloat 32
+         %13 = OpConstantNull %_arr_struct_base_uint_3
+%struct_array = OpVariable %_ptr_Private__arr_struct_base_uint_3 Private %13
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -72,7 +71,7 @@
          %61 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %62 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-         %63 = OpTypeFunction %void %main_out
+         %63 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
       %index = OpVariable %_ptr_Function_int Function %26
@@ -116,18 +115,17 @@
          %56 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %63
-%tint_symbol = OpFunctionParameter %main_out
-         %67 = OpLabel
-         %68 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %68
-               OpReturn
+ %main_inner = OpFunction %main_out None %63
+         %66 = OpLabel
+         %67 = OpFunctionCall %void %main_1
+         %68 = OpLoad %v4float %x_GLF_color
+         %69 = OpCompositeConstruct %main_out %68
+               OpReturnValue %69
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %70 = OpLabel
-         %71 = OpFunctionCall %void %main_1
-         %73 = OpLoad %v4float %x_GLF_color
-         %74 = OpCompositeConstruct %main_out %73
-         %72 = OpFunctionCall %void %tint_symbol_2 %74
+         %71 = OpLabel
+         %72 = OpFunctionCall %main_out %main_inner
+         %73 = OpCompositeExtract %v4float %72 0
+               OpStore %x_GLF_color_1_1 %73
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.spvasm.expected.spvasm
index 1b17c76..d8be20a 100644
--- a/test/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 80
+; Bound: 79
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %S "S"
                OpMemberName %S 0 "f0"
@@ -21,30 +21,29 @@
                OpName %x_51_1 "x_51_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %S 0 Offset 0
                OpMemberDecorate %S 1 Offset 16
                OpDecorate %_arr_float_uint_9 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -71,7 +70,7 @@
       %int_1 = OpConstant %int 1
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %68 = OpTypeFunction %void %main_out
+         %68 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
          %ll = OpVariable %_ptr_Function_S Function %22
@@ -120,18 +119,17 @@
                OpStore %x_GLF_color %67
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %68
-%tint_symbol = OpFunctionParameter %main_out
-         %72 = OpLabel
-         %73 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %73
-               OpReturn
+ %main_inner = OpFunction %main_out None %68
+         %71 = OpLabel
+         %72 = OpFunctionCall %void %main_1
+         %73 = OpLoad %v4float %x_GLF_color
+         %74 = OpCompositeConstruct %main_out %73
+               OpReturnValue %74
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %75 = OpLabel
-         %76 = OpFunctionCall %void %main_1
-         %78 = OpLoad %v4float %x_GLF_color
-         %79 = OpCompositeConstruct %main_out %78
-         %77 = OpFunctionCall %void %tint_symbol_2 %79
+         %76 = OpLabel
+         %77 = OpFunctionCall %main_out %main_inner
+         %78 = OpCompositeExtract %v4float %77 0
+               OpStore %x_GLF_color_1_1 %78
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.wgsl.expected.spvasm
index 1b17c76..d8be20a 100644
--- a/test/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 80
+; Bound: 79
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %S "S"
                OpMemberName %S 0 "f0"
@@ -21,30 +21,29 @@
                OpName %x_51_1 "x_51_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %S 0 Offset 0
                OpMemberDecorate %S 1 Offset 16
                OpDecorate %_arr_float_uint_9 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -71,7 +70,7 @@
       %int_1 = OpConstant %int 1
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %68 = OpTypeFunction %void %main_out
+         %68 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
          %ll = OpVariable %_ptr_Function_S Function %22
@@ -120,18 +119,17 @@
                OpStore %x_GLF_color %67
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %68
-%tint_symbol = OpFunctionParameter %main_out
-         %72 = OpLabel
-         %73 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %73
-               OpReturn
+ %main_inner = OpFunction %main_out None %68
+         %71 = OpLabel
+         %72 = OpFunctionCall %void %main_1
+         %73 = OpLoad %v4float %x_GLF_color
+         %74 = OpCompositeConstruct %main_out %73
+               OpReturnValue %74
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %75 = OpLabel
-         %76 = OpFunctionCall %void %main_1
-         %78 = OpLoad %v4float %x_GLF_color
-         %79 = OpCompositeConstruct %main_out %78
-         %77 = OpFunctionCall %void %tint_symbol_2 %79
+         %76 = OpLabel
+         %77 = OpFunctionCall %main_out %main_inner
+         %78 = OpCompositeExtract %v4float %77 0
+               OpStore %x_GLF_color_1_1 %78
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.spvasm.expected.spvasm
index 4cdb9e6..758ec98 100644
--- a/test/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.spvasm.expected.spvasm
@@ -1,44 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_3_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_3_1_1 "x_3_1_1"
                OpName %x_3 "x_3"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpName %x_5 "x_5"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %S_1 "S_1"
                OpMemberName %S_1 0 "field0"
                OpName %x_21_1 "x_21_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_3_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_3_1_1 Location 0
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %S_1 0 Offset 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+    %x_3_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
         %x_3 = OpVariable %_ptr_Private_v4float Private %5
           %S = OpTypeStruct %v4float
 %_ptr_Uniform_S = OpTypePointer Uniform %S
         %x_5 = OpVariable %_ptr_Uniform_S Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -52,7 +51,7 @@
          %26 = OpConstantNull %S_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-         %31 = OpTypeFunction %void %main_out
+         %31 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
      %x_21_1 = OpVariable %_ptr_Function_S_1 Function %26
@@ -66,18 +65,17 @@
                OpStore %x_3 %30
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %31
-%tint_symbol = OpFunctionParameter %main_out
-         %35 = OpLabel
-         %36 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %36
-               OpReturn
+ %main_inner = OpFunction %main_out None %31
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %main_1
+         %36 = OpLoad %v4float %x_3
+         %37 = OpCompositeConstruct %main_out %36
+               OpReturnValue %37
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %main_1
-         %41 = OpLoad %v4float %x_3
-         %42 = OpCompositeConstruct %main_out %41
-         %40 = OpFunctionCall %void %tint_symbol_2 %42
+         %39 = OpLabel
+         %40 = OpFunctionCall %main_out %main_inner
+         %41 = OpCompositeExtract %v4float %40 0
+               OpStore %x_3_1_1 %41
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.wgsl.expected.spvasm
index 4cdb9e6..758ec98 100644
--- a/test/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.wgsl.expected.spvasm
@@ -1,44 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_3_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_3_1_1 "x_3_1_1"
                OpName %x_3 "x_3"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpName %x_5 "x_5"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %S_1 "S_1"
                OpMemberName %S_1 0 "field0"
                OpName %x_21_1 "x_21_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_3_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_3_1_1 Location 0
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %S_1 0 Offset 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+    %x_3_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
         %x_3 = OpVariable %_ptr_Private_v4float Private %5
           %S = OpTypeStruct %v4float
 %_ptr_Uniform_S = OpTypePointer Uniform %S
         %x_5 = OpVariable %_ptr_Uniform_S Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -52,7 +51,7 @@
          %26 = OpConstantNull %S_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
    %main_out = OpTypeStruct %v4float
-         %31 = OpTypeFunction %void %main_out
+         %31 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
      %x_21_1 = OpVariable %_ptr_Function_S_1 Function %26
@@ -66,18 +65,17 @@
                OpStore %x_3 %30
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %31
-%tint_symbol = OpFunctionParameter %main_out
-         %35 = OpLabel
-         %36 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %36
-               OpReturn
+ %main_inner = OpFunction %main_out None %31
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %main_1
+         %36 = OpLoad %v4float %x_3
+         %37 = OpCompositeConstruct %main_out %36
+               OpReturnValue %37
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %main_1
-         %41 = OpLoad %v4float %x_3
-         %42 = OpCompositeConstruct %main_out %41
-         %40 = OpFunctionCall %void %tint_symbol_2 %42
+         %39 = OpLabel
+         %40 = OpFunctionCall %main_out %main_inner
+         %41 = OpCompositeExtract %v4float %40 0
+               OpStore %x_3_1_1 %41
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.spvasm.expected.spvasm
index 33527de..b917ae2 100644
--- a/test/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.spvasm.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -48,7 +47,7 @@
     %float_0 = OpConstant %float 0
          %37 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %38 = OpTypeFunction %void %main_out
+         %38 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
          %20 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %uint_1
@@ -74,18 +73,17 @@
                OpStore %x_GLF_color %37
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %38
-%tint_symbol = OpFunctionParameter %main_out
-         %42 = OpLabel
-         %43 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %43
-               OpReturn
+ %main_inner = OpFunction %main_out None %38
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %main_1
+         %43 = OpLoad %v4float %x_GLF_color
+         %44 = OpCompositeConstruct %main_out %43
+               OpReturnValue %44
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %main_1
-         %48 = OpLoad %v4float %x_GLF_color
-         %49 = OpCompositeConstruct %main_out %48
-         %47 = OpFunctionCall %void %tint_symbol_2 %49
+         %46 = OpLabel
+         %47 = OpFunctionCall %main_out %main_inner
+         %48 = OpCompositeExtract %v4float %47 0
+               OpStore %x_GLF_color_1_1 %48
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.wgsl.expected.spvasm
index 33527de..b917ae2 100644
--- a/test/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.wgsl.expected.spvasm
@@ -1,41 +1,40 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 50
+; Bound: 49
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -48,7 +47,7 @@
     %float_0 = OpConstant %float 0
          %37 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %38 = OpTypeFunction %void %main_out
+         %38 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
          %20 = OpAccessChain %_ptr_Uniform_float %x_5 %uint_0 %uint_1
@@ -74,18 +73,17 @@
                OpStore %x_GLF_color %37
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %38
-%tint_symbol = OpFunctionParameter %main_out
-         %42 = OpLabel
-         %43 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %43
-               OpReturn
+ %main_inner = OpFunction %main_out None %38
+         %41 = OpLabel
+         %42 = OpFunctionCall %void %main_1
+         %43 = OpLoad %v4float %x_GLF_color
+         %44 = OpCompositeConstruct %main_out %43
+               OpReturnValue %44
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %main_1
-         %48 = OpLoad %v4float %x_GLF_color
-         %49 = OpCompositeConstruct %main_out %48
-         %47 = OpFunctionCall %void %tint_symbol_2 %49
+         %46 = OpLabel
+         %47 = OpFunctionCall %main_out %main_inner
+         %48 = OpCompositeExtract %v4float %47 0
+               OpStore %x_GLF_color_1_1 %48
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.spvasm.expected.spvasm
index a8617fb..467fed2 100644
--- a/test/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.spvasm.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 62
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %merge_ "merge_"
                OpName %main_1 "main_1"
                OpName %res "res"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
          %11 = OpTypeFunction %int
        %uint = OpTypeInt 32 0
@@ -53,7 +52,7 @@
          %34 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
       %false = OpConstantFalse %bool
    %main_out = OpTypeStruct %v4float
-         %50 = OpTypeFunction %void %main_out
+         %50 = OpTypeFunction %main_out
      %merge_ = OpFunction %int None %11
          %14 = OpLabel
          %18 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0
@@ -97,18 +96,17 @@
                OpStore %x_GLF_color %49
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %50
-%tint_symbol = OpFunctionParameter %main_out
-         %54 = OpLabel
-         %55 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %55
-               OpReturn
+ %main_inner = OpFunction %main_out None %50
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %main_1
+         %55 = OpLoad %v4float %x_GLF_color
+         %56 = OpCompositeConstruct %main_out %55
+               OpReturnValue %56
                OpFunctionEnd
        %main = OpFunction %void None %26
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %main_1
-         %60 = OpLoad %v4float %x_GLF_color
-         %61 = OpCompositeConstruct %main_out %60
-         %59 = OpFunctionCall %void %tint_symbol_2 %61
+         %58 = OpLabel
+         %59 = OpFunctionCall %main_out %main_inner
+         %60 = OpCompositeExtract %v4float %59 0
+               OpStore %x_GLF_color_1_1 %60
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.wgsl.expected.spvasm
index a8617fb..467fed2 100644
--- a/test/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 62
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "zero"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %merge_ "merge_"
                OpName %main_1 "main_1"
                OpName %res "res"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
        %buf0 = OpTypeStruct %float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
          %11 = OpTypeFunction %int
        %uint = OpTypeInt 32 0
@@ -53,7 +52,7 @@
          %34 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
       %false = OpConstantFalse %bool
    %main_out = OpTypeStruct %v4float
-         %50 = OpTypeFunction %void %main_out
+         %50 = OpTypeFunction %main_out
      %merge_ = OpFunction %int None %11
          %14 = OpLabel
          %18 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0
@@ -97,18 +96,17 @@
                OpStore %x_GLF_color %49
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %50
-%tint_symbol = OpFunctionParameter %main_out
-         %54 = OpLabel
-         %55 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %55
-               OpReturn
+ %main_inner = OpFunction %main_out None %50
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %main_1
+         %55 = OpLoad %v4float %x_GLF_color
+         %56 = OpCompositeConstruct %main_out %55
+               OpReturnValue %56
                OpFunctionEnd
        %main = OpFunction %void None %26
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %main_1
-         %60 = OpLoad %v4float %x_GLF_color
-         %61 = OpCompositeConstruct %main_out %60
-         %59 = OpFunctionCall %void %tint_symbol_2 %61
+         %58 = OpLabel
+         %59 = OpFunctionCall %main_out %main_inner
+         %60 = OpCompositeExtract %v4float %59 0
+               OpStore %x_GLF_color_1_1 %60
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/switch-loop-switch-if/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/switch-loop-switch-if/0-opt.spvasm.expected.spvasm
index c5dc9aa..7259a72 100644
--- a/test/vk-gl-cts/graphicsfuzz/switch-loop-switch-if/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/switch-loop-switch-if/0-opt.spvasm.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 85
+; Bound: 84
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -59,7 +58,7 @@
          %71 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %72 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %73 = OpTypeFunction %void %main_out
+         %73 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %19
@@ -131,18 +130,17 @@
          %66 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %73
-%tint_symbol = OpFunctionParameter %main_out
-         %77 = OpLabel
-         %78 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %78
-               OpReturn
+ %main_inner = OpFunction %main_out None %73
+         %76 = OpLabel
+         %77 = OpFunctionCall %void %main_1
+         %78 = OpLoad %v4float %x_GLF_color
+         %79 = OpCompositeConstruct %main_out %78
+               OpReturnValue %79
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %80 = OpLabel
-         %81 = OpFunctionCall %void %main_1
-         %83 = OpLoad %v4float %x_GLF_color
-         %84 = OpCompositeConstruct %main_out %83
-         %82 = OpFunctionCall %void %tint_symbol_2 %84
+         %81 = OpLabel
+         %82 = OpFunctionCall %main_out %main_inner
+         %83 = OpCompositeExtract %v4float %82 0
+               OpStore %x_GLF_color_1_1 %83
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/switch-loop-switch-if/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/switch-loop-switch-if/0-opt.wgsl.expected.spvasm
index c5dc9aa..7259a72 100644
--- a/test/vk-gl-cts/graphicsfuzz/switch-loop-switch-if/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/switch-loop-switch-if/0-opt.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 85
+; Bound: 84
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -59,7 +58,7 @@
          %71 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %72 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %73 = OpTypeFunction %void %main_out
+         %73 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %19
@@ -131,18 +130,17 @@
          %66 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %73
-%tint_symbol = OpFunctionParameter %main_out
-         %77 = OpLabel
-         %78 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %78
-               OpReturn
+ %main_inner = OpFunction %main_out None %73
+         %76 = OpLabel
+         %77 = OpFunctionCall %void %main_1
+         %78 = OpLoad %v4float %x_GLF_color
+         %79 = OpCompositeConstruct %main_out %78
+               OpReturnValue %79
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %80 = OpLabel
-         %81 = OpFunctionCall %void %main_1
-         %83 = OpLoad %v4float %x_GLF_color
-         %84 = OpCompositeConstruct %main_out %83
-         %82 = OpFunctionCall %void %tint_symbol_2 %84
+         %81 = OpLabel
+         %82 = OpFunctionCall %main_out %main_inner
+         %83 = OpCompositeExtract %v4float %82 0
+               OpStore %x_GLF_color_1_1 %83
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.spvasm.expected.spvasm
index f8108c8..03a1bd4 100644
--- a/test/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.spvasm.expected.spvasm
@@ -1,29 +1,28 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -34,7 +33,7 @@
     %float_0 = OpConstant %float 0
          %23 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %24 = OpTypeFunction %void %main_out
+         %24 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
                OpSelectionMerge %12 None
@@ -52,18 +51,17 @@
                OpStore %x_GLF_color %23
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %24
-%tint_symbol = OpFunctionParameter %main_out
-         %28 = OpLabel
-         %29 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %29
-               OpReturn
+ %main_inner = OpFunction %main_out None %24
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %main_1
+         %29 = OpLoad %v4float %x_GLF_color
+         %30 = OpCompositeConstruct %main_out %29
+               OpReturnValue %30
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %main_1
-         %34 = OpLoad %v4float %x_GLF_color
-         %35 = OpCompositeConstruct %main_out %34
-         %33 = OpFunctionCall %void %tint_symbol_2 %35
+         %32 = OpLabel
+         %33 = OpFunctionCall %main_out %main_inner
+         %34 = OpCompositeExtract %v4float %33 0
+               OpStore %x_GLF_color_1_1 %34
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.wgsl.expected.spvasm
index f8108c8..03a1bd4 100644
--- a/test/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.wgsl.expected.spvasm
@@ -1,29 +1,28 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 36
+; Bound: 35
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -34,7 +33,7 @@
     %float_0 = OpConstant %float 0
          %23 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %24 = OpTypeFunction %void %main_out
+         %24 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
                OpSelectionMerge %12 None
@@ -52,18 +51,17 @@
                OpStore %x_GLF_color %23
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %24
-%tint_symbol = OpFunctionParameter %main_out
-         %28 = OpLabel
-         %29 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %29
-               OpReturn
+ %main_inner = OpFunction %main_out None %24
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %main_1
+         %29 = OpLoad %v4float %x_GLF_color
+         %30 = OpCompositeConstruct %main_out %29
+               OpReturnValue %30
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %main_1
-         %34 = OpLoad %v4float %x_GLF_color
-         %35 = OpCompositeConstruct %main_out %34
-         %33 = OpFunctionCall %void %tint_symbol_2 %35
+         %32 = OpLabel
+         %33 = OpFunctionCall %main_out %main_inner
+         %34 = OpCompositeExtract %v4float %33 0
+               OpStore %x_GLF_color_1_1 %34
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/switch-with-fall-through-cases/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/switch-with-fall-through-cases/0-opt.spvasm.expected.spvasm
index 387a26a..43d00ed 100644
--- a/test/vk-gl-cts/graphicsfuzz/switch-with-fall-through-cases/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/switch-with-fall-through-cases/0-opt.spvasm.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 79
+; Bound: 78
 ; Schema: 0
                OpCapability Shader
          %55 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %value "value"
@@ -22,27 +22,26 @@
                OpName %x_46_phi "x_46_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -61,7 +60,7 @@
       %int_1 = OpConstant %int 1
     %float_0 = OpConstant %float 0
    %main_out = OpTypeStruct %v4float
-         %67 = OpTypeFunction %void %main_out
+         %67 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %19
@@ -132,18 +131,17 @@
          %27 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %67
-%tint_symbol = OpFunctionParameter %main_out
-         %71 = OpLabel
-         %72 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %72
-               OpReturn
+ %main_inner = OpFunction %main_out None %67
+         %70 = OpLabel
+         %71 = OpFunctionCall %void %main_1
+         %72 = OpLoad %v4float %x_GLF_color
+         %73 = OpCompositeConstruct %main_out %72
+               OpReturnValue %73
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %74 = OpLabel
-         %75 = OpFunctionCall %void %main_1
-         %77 = OpLoad %v4float %x_GLF_color
-         %78 = OpCompositeConstruct %main_out %77
-         %76 = OpFunctionCall %void %tint_symbol_2 %78
+         %75 = OpLabel
+         %76 = OpFunctionCall %main_out %main_inner
+         %77 = OpCompositeExtract %v4float %76 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/switch-with-fall-through-cases/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/switch-with-fall-through-cases/0-opt.wgsl.expected.spvasm
index 387a26a..43d00ed 100644
--- a/test/vk-gl-cts/graphicsfuzz/switch-with-fall-through-cases/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/switch-with-fall-through-cases/0-opt.wgsl.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 79
+; Bound: 78
 ; Schema: 0
                OpCapability Shader
          %55 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %value "value"
@@ -22,27 +22,26 @@
                OpName %x_46_phi "x_46_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -61,7 +60,7 @@
       %int_1 = OpConstant %int 1
     %float_0 = OpConstant %float 0
    %main_out = OpTypeStruct %v4float
-         %67 = OpTypeFunction %void %main_out
+         %67 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %19
@@ -132,18 +131,17 @@
          %27 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %67
-%tint_symbol = OpFunctionParameter %main_out
-         %71 = OpLabel
-         %72 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %72
-               OpReturn
+ %main_inner = OpFunction %main_out None %67
+         %70 = OpLabel
+         %71 = OpFunctionCall %void %main_1
+         %72 = OpLoad %v4float %x_GLF_color
+         %73 = OpCompositeConstruct %main_out %72
+               OpReturnValue %73
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %74 = OpLabel
-         %75 = OpFunctionCall %void %main_1
-         %77 = OpLoad %v4float %x_GLF_color
-         %78 = OpCompositeConstruct %main_out %77
-         %76 = OpFunctionCall %void %tint_symbol_2 %78
+         %75 = OpLabel
+         %76 = OpFunctionCall %main_out %main_inner
+         %77 = OpCompositeExtract %v4float %76 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.spvasm.expected.spvasm
index 7ed4633..11bba6d 100644
--- a/test/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.spvasm.expected.spvasm
@@ -5,34 +5,34 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_37 "x_37"
                OpName %x_38_phi "x_38_phi"
                OpName %x_48_phi "x_48_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -59,7 +59,7 @@
          %46 = OpConstantComposite %mat3v4float %43 %44 %45
      %uint_0 = OpConstant %uint 0
    %main_out = OpTypeStruct %v4float
-         %65 = OpTypeFunction %void %main_out
+         %65 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
        %x_37 = OpVariable %_ptr_Function_mat4v3float Function %19
@@ -109,20 +109,20 @@
                OpStore %x_GLF_color %64
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %65
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %65
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %69 = OpLabel
-         %70 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %70
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %70 = OpFunctionCall %void %main_1
+         %71 = OpLoad %v4float %x_GLF_color
+         %72 = OpCompositeConstruct %main_out %71
+               OpReturnValue %72
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %72 = OpLabel
-         %73 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %73
-         %74 = OpFunctionCall %void %main_1
-         %76 = OpLoad %v4float %x_GLF_color
-         %77 = OpCompositeConstruct %main_out %76
-         %75 = OpFunctionCall %void %tint_symbol_3 %77
+         %74 = OpLabel
+         %76 = OpLoad %v4float %gl_FragCoord_param_1
+         %75 = OpFunctionCall %main_out %main_inner %76
+         %77 = OpCompositeExtract %v4float %75 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.wgsl.expected.spvasm
index 7ed4633..11bba6d 100644
--- a/test/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.wgsl.expected.spvasm
@@ -5,34 +5,34 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_37 "x_37"
                OpName %x_38_phi "x_38_phi"
                OpName %x_48_phi "x_48_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -59,7 +59,7 @@
          %46 = OpConstantComposite %mat3v4float %43 %44 %45
      %uint_0 = OpConstant %uint 0
    %main_out = OpTypeStruct %v4float
-         %65 = OpTypeFunction %void %main_out
+         %65 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
        %x_37 = OpVariable %_ptr_Function_mat4v3float Function %19
@@ -109,20 +109,20 @@
                OpStore %x_GLF_color %64
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %65
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %65
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %69 = OpLabel
-         %70 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %70
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %70 = OpFunctionCall %void %main_1
+         %71 = OpLoad %v4float %x_GLF_color
+         %72 = OpCompositeConstruct %main_out %71
+               OpReturnValue %72
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %72 = OpLabel
-         %73 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %73
-         %74 = OpFunctionCall %void %main_1
-         %76 = OpLoad %v4float %x_GLF_color
-         %77 = OpCompositeConstruct %main_out %76
-         %75 = OpFunctionCall %void %tint_symbol_3 %77
+         %74 = OpLabel
+         %76 = OpLoad %v4float %gl_FragCoord_param_1
+         %75 = OpFunctionCall %main_out %main_inner %76
+         %77 = OpCompositeExtract %v4float %75 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.spvasm.expected.spvasm
index 8dcb827..43f37e2 100644
--- a/test/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_8 "x_8"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %odd_index "odd_index"
                OpName %even_index "even_index"
@@ -23,31 +23,31 @@
                OpName %x_60_phi "x_60_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -72,7 +72,7 @@
       %int_3 = OpConstant %int 3
         %130 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-        %133 = OpTypeFunction %void %main_out
+        %133 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
   %odd_index = OpVariable %_ptr_Function_int Function %22
@@ -235,20 +235,20 @@
          %70 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %133
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %133
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %137 = OpLabel
-        %138 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %138
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %138 = OpFunctionCall %void %main_1
+        %139 = OpLoad %v4float %x_GLF_color
+        %140 = OpCompositeConstruct %main_out %139
+               OpReturnValue %140
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %140 = OpLabel
-        %141 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %141
-        %142 = OpFunctionCall %void %main_1
-        %144 = OpLoad %v4float %x_GLF_color
-        %145 = OpCompositeConstruct %main_out %144
-        %143 = OpFunctionCall %void %tint_symbol_3 %145
+        %142 = OpLabel
+        %144 = OpLoad %v4float %gl_FragCoord_param_1
+        %143 = OpFunctionCall %main_out %main_inner %144
+        %145 = OpCompositeExtract %v4float %143 0
+               OpStore %x_GLF_color_1_1 %145
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.wgsl.expected.spvasm
index 8dcb827..43f37e2 100644
--- a/test/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_8 "x_8"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %odd_index "odd_index"
                OpName %even_index "even_index"
@@ -23,31 +23,31 @@
                OpName %x_60_phi "x_60_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -72,7 +72,7 @@
       %int_3 = OpConstant %int 3
         %130 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-        %133 = OpTypeFunction %void %main_out
+        %133 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
   %odd_index = OpVariable %_ptr_Function_int Function %22
@@ -235,20 +235,20 @@
          %70 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %133
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %133
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %137 = OpLabel
-        %138 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %138
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %138 = OpFunctionCall %void %main_1
+        %139 = OpLoad %v4float %x_GLF_color
+        %140 = OpCompositeConstruct %main_out %139
+               OpReturnValue %140
                OpFunctionEnd
        %main = OpFunction %void None %15
-        %140 = OpLabel
-        %141 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %141
-        %142 = OpFunctionCall %void %main_1
-        %144 = OpLoad %v4float %x_GLF_color
-        %145 = OpCompositeConstruct %main_out %144
-        %143 = OpFunctionCall %void %tint_symbol_3 %145
+        %142 = OpLabel
+        %144 = OpLoad %v4float %gl_FragCoord_param_1
+        %143 = OpFunctionCall %main_out %main_inner %144
+        %145 = OpCompositeExtract %v4float %143 0
+               OpStore %x_GLF_color_1_1 %145
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.spvasm.expected.spvasm
index 3f924a6..7c2ac86 100644
--- a/test/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.spvasm.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 89
+; Bound: 88
 ; Schema: 0
                OpCapability Shader
          %67 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "matrix_a_uni"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x "x"
                OpName %matrix_u "matrix_u"
@@ -21,9 +21,9 @@
                OpName %x_42 "x_42"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpMemberDecorate %buf0 0 ColMajor
@@ -31,19 +31,18 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
 %mat4v4float = OpTypeMatrix %v4float 4
        %buf0 = OpTypeStruct %mat4v4float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -64,14 +63,14 @@
     %float_0 = OpConstant %float 0
          %76 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %77 = OpTypeFunction %void %main_out
+         %77 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %x = OpVariable %_ptr_Function_int Function %19
-   %matrix_u = OpVariable %_ptr_Function_v4float Function %9
+   %matrix_u = OpVariable %_ptr_Function_v4float Function %5
           %b = OpVariable %_ptr_Function_int Function %19
-   %matrix_b = OpVariable %_ptr_Function_v4float Function %9
-       %x_42 = OpVariable %_ptr_Function_v4float Function %9
+   %matrix_b = OpVariable %_ptr_Function_v4float Function %5
+       %x_42 = OpVariable %_ptr_Function_v4float Function %5
                OpStore %x %int_4
                OpBranch %26
          %26 = OpLabel
@@ -143,18 +142,17 @@
                OpStore %x_GLF_color %76
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %77
-%tint_symbol = OpFunctionParameter %main_out
-         %81 = OpLabel
-         %82 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %82
-               OpReturn
+ %main_inner = OpFunction %main_out None %77
+         %80 = OpLabel
+         %81 = OpFunctionCall %void %main_1
+         %82 = OpLoad %v4float %x_GLF_color
+         %83 = OpCompositeConstruct %main_out %82
+               OpReturnValue %83
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %84 = OpLabel
-         %85 = OpFunctionCall %void %main_1
-         %87 = OpLoad %v4float %x_GLF_color
-         %88 = OpCompositeConstruct %main_out %87
-         %86 = OpFunctionCall %void %tint_symbol_2 %88
+         %85 = OpLabel
+         %86 = OpFunctionCall %main_out %main_inner
+         %87 = OpCompositeExtract %v4float %86 0
+               OpStore %x_GLF_color_1_1 %87
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.wgsl.expected.spvasm
index 3f924a6..7c2ac86 100644
--- a/test/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.wgsl.expected.spvasm
@@ -1,18 +1,18 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 89
+; Bound: 88
 ; Schema: 0
                OpCapability Shader
          %67 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "matrix_a_uni"
                OpName %x_8 "x_8"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x "x"
                OpName %matrix_u "matrix_u"
@@ -21,9 +21,9 @@
                OpName %x_42 "x_42"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpMemberDecorate %buf0 0 ColMajor
@@ -31,19 +31,18 @@
                OpDecorate %x_8 NonWritable
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
 %mat4v4float = OpTypeMatrix %v4float 4
        %buf0 = OpTypeStruct %mat4v4float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -64,14 +63,14 @@
     %float_0 = OpConstant %float 0
          %76 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %77 = OpTypeFunction %void %main_out
+         %77 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %x = OpVariable %_ptr_Function_int Function %19
-   %matrix_u = OpVariable %_ptr_Function_v4float Function %9
+   %matrix_u = OpVariable %_ptr_Function_v4float Function %5
           %b = OpVariable %_ptr_Function_int Function %19
-   %matrix_b = OpVariable %_ptr_Function_v4float Function %9
-       %x_42 = OpVariable %_ptr_Function_v4float Function %9
+   %matrix_b = OpVariable %_ptr_Function_v4float Function %5
+       %x_42 = OpVariable %_ptr_Function_v4float Function %5
                OpStore %x %int_4
                OpBranch %26
          %26 = OpLabel
@@ -143,18 +142,17 @@
                OpStore %x_GLF_color %76
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %77
-%tint_symbol = OpFunctionParameter %main_out
-         %81 = OpLabel
-         %82 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %82
-               OpReturn
+ %main_inner = OpFunction %main_out None %77
+         %80 = OpLabel
+         %81 = OpFunctionCall %void %main_1
+         %82 = OpLoad %v4float %x_GLF_color
+         %83 = OpCompositeConstruct %main_out %82
+               OpReturnValue %83
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %84 = OpLabel
-         %85 = OpFunctionCall %void %main_1
-         %87 = OpLoad %v4float %x_GLF_color
-         %88 = OpCompositeConstruct %main_out %87
-         %86 = OpFunctionCall %void %tint_symbol_2 %88
+         %85 = OpLabel
+         %86 = OpFunctionCall %main_out %main_inner
+         %87 = OpCompositeExtract %v4float %86 0
+               OpStore %x_GLF_color_1_1 %87
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.spvasm.expected.spvasm
index c14f116..82afbcc 100644
--- a/test/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 104
+; Bound: 103
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %StructType "StructType"
                OpMemberName %StructType 0 "col"
@@ -29,29 +29,28 @@
                OpName %x_8 "x_8"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %StructType 0 Offset 0
                OpMemberDecorate %StructType 1 Offset 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -78,7 +77,7 @@
          %62 = OpConstantComposite %v3float %float_1 %float_0 %float_0
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %92 = OpTypeFunction %void %main_out
+         %92 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
        %x_33 = OpVariable %_ptr_Function_StructType Function %22
@@ -172,18 +171,17 @@
                OpStore %x_GLF_color %91
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %92
-%tint_symbol = OpFunctionParameter %main_out
-         %96 = OpLabel
-         %97 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %97
-               OpReturn
+ %main_inner = OpFunction %main_out None %92
+         %95 = OpLabel
+         %96 = OpFunctionCall %void %main_1
+         %97 = OpLoad %v4float %x_GLF_color
+         %98 = OpCompositeConstruct %main_out %97
+               OpReturnValue %98
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %99 = OpLabel
-        %100 = OpFunctionCall %void %main_1
-        %102 = OpLoad %v4float %x_GLF_color
-        %103 = OpCompositeConstruct %main_out %102
-        %101 = OpFunctionCall %void %tint_symbol_2 %103
+        %100 = OpLabel
+        %101 = OpFunctionCall %main_out %main_inner
+        %102 = OpCompositeExtract %v4float %101 0
+               OpStore %x_GLF_color_1_1 %102
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.wgsl.expected.spvasm
index c14f116..82afbcc 100644
--- a/test/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 104
+; Bound: 103
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %StructType "StructType"
                OpMemberName %StructType 0 "col"
@@ -29,29 +29,28 @@
                OpName %x_8 "x_8"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %StructType 0 Offset 0
                OpMemberDecorate %StructType 1 Offset 16
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -78,7 +77,7 @@
          %62 = OpConstantComposite %v3float %float_1 %float_0 %float_0
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %92 = OpTypeFunction %void %main_out
+         %92 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
        %x_33 = OpVariable %_ptr_Function_StructType Function %22
@@ -172,18 +171,17 @@
                OpStore %x_GLF_color %91
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %92
-%tint_symbol = OpFunctionParameter %main_out
-         %96 = OpLabel
-         %97 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %97
-               OpReturn
+ %main_inner = OpFunction %main_out None %92
+         %95 = OpLabel
+         %96 = OpFunctionCall %void %main_1
+         %97 = OpLoad %v4float %x_GLF_color
+         %98 = OpCompositeConstruct %main_out %97
+               OpReturnValue %98
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %99 = OpLabel
-        %100 = OpFunctionCall %void %main_1
-        %102 = OpLoad %v4float %x_GLF_color
-        %103 = OpCompositeConstruct %main_out %102
-        %101 = OpFunctionCall %void %tint_symbol_2 %103
+        %100 = OpLabel
+        %101 = OpFunctionCall %main_out %main_inner
+        %102 = OpCompositeExtract %v4float %101 0
+               OpStore %x_GLF_color_1_1 %102
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.spvasm.expected.spvasm
index 9128fc2..5901065 100644
--- a/test/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.spvasm.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 88
+; Bound: 87
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %GLF_live15c "GLF_live15c"
                OpName %GLF_live15i "GLF_live15i"
@@ -16,18 +16,17 @@
                OpName %GLF_live15i_1 "GLF_live15i_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -47,7 +46,7 @@
       %int_1 = OpConstant %int 1
          %75 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %76 = OpTypeFunction %void %main_out
+         %76 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
 %GLF_live15c = OpVariable %_ptr_Function_v4float Function %5
@@ -139,18 +138,17 @@
                OpStore %x_GLF_color %75
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %76
-%tint_symbol = OpFunctionParameter %main_out
-         %80 = OpLabel
-         %81 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %81
-               OpReturn
+ %main_inner = OpFunction %main_out None %76
+         %79 = OpLabel
+         %80 = OpFunctionCall %void %main_1
+         %81 = OpLoad %v4float %x_GLF_color
+         %82 = OpCompositeConstruct %main_out %81
+               OpReturnValue %82
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %83 = OpLabel
-         %84 = OpFunctionCall %void %main_1
-         %86 = OpLoad %v4float %x_GLF_color
-         %87 = OpCompositeConstruct %main_out %86
-         %85 = OpFunctionCall %void %tint_symbol_2 %87
+         %84 = OpLabel
+         %85 = OpFunctionCall %main_out %main_inner
+         %86 = OpCompositeExtract %v4float %85 0
+               OpStore %x_GLF_color_1_1 %86
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.wgsl.expected.spvasm
index 9128fc2..5901065 100644
--- a/test/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.wgsl.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 88
+; Bound: 87
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %GLF_live15c "GLF_live15c"
                OpName %GLF_live15i "GLF_live15i"
@@ -16,18 +16,17 @@
                OpName %GLF_live15i_1 "GLF_live15i_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -47,7 +46,7 @@
       %int_1 = OpConstant %int 1
          %75 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %76 = OpTypeFunction %void %main_out
+         %76 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
 %GLF_live15c = OpVariable %_ptr_Function_v4float Function %5
@@ -139,18 +138,17 @@
                OpStore %x_GLF_color %75
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %76
-%tint_symbol = OpFunctionParameter %main_out
-         %80 = OpLabel
-         %81 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %81
-               OpReturn
+ %main_inner = OpFunction %main_out None %76
+         %79 = OpLabel
+         %80 = OpFunctionCall %void %main_1
+         %81 = OpLoad %v4float %x_GLF_color
+         %82 = OpCompositeConstruct %main_out %81
+               OpReturnValue %82
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %83 = OpLabel
-         %84 = OpFunctionCall %void %main_1
-         %86 = OpLoad %v4float %x_GLF_color
-         %87 = OpCompositeConstruct %main_out %86
-         %85 = OpFunctionCall %void %tint_symbol_2 %87
+         %84 = OpLabel
+         %85 = OpFunctionCall %main_out %main_inner
+         %86 = OpCompositeExtract %v4float %85 0
+               OpStore %x_GLF_color_1_1 %86
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.spvasm.expected.spvasm
index 41506cd..0be0727 100644
--- a/test/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_7 "x_7"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %i_1 "i_1"
@@ -21,31 +21,31 @@
                OpName %x_42 "x_42"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -68,7 +68,7 @@
       %int_1 = OpConstant %int 1
       %false = OpConstantFalse %bool
    %main_out = OpTypeStruct %v4float
-         %92 = OpTypeFunction %void %main_out
+         %92 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %22
@@ -176,20 +176,20 @@
          %37 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %92
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %92
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %96 = OpLabel
-         %97 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %97
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %97 = OpFunctionCall %void %main_1
+         %98 = OpLoad %v4float %x_GLF_color
+         %99 = OpCompositeConstruct %main_out %98
+               OpReturnValue %99
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %99 = OpLabel
-        %100 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %100
-        %101 = OpFunctionCall %void %main_1
-        %103 = OpLoad %v4float %x_GLF_color
-        %104 = OpCompositeConstruct %main_out %103
-        %102 = OpFunctionCall %void %tint_symbol_3 %104
+        %101 = OpLabel
+        %103 = OpLoad %v4float %gl_FragCoord_param_1
+        %102 = OpFunctionCall %main_out %main_inner %103
+        %104 = OpCompositeExtract %v4float %102 0
+               OpStore %x_GLF_color_1_1 %104
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.wgsl.expected.spvasm
index 41506cd..0be0727 100644
--- a/test/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_7 "x_7"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %i_1 "i_1"
@@ -21,31 +21,31 @@
                OpName %x_42 "x_42"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -68,7 +68,7 @@
       %int_1 = OpConstant %int 1
       %false = OpConstantFalse %bool
    %main_out = OpTypeStruct %v4float
-         %92 = OpTypeFunction %void %main_out
+         %92 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %22
@@ -176,20 +176,20 @@
          %37 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %92
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %92
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %96 = OpLabel
-         %97 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %97
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %97 = OpFunctionCall %void %main_1
+         %98 = OpLoad %v4float %x_GLF_color
+         %99 = OpCompositeConstruct %main_out %98
+               OpReturnValue %99
                OpFunctionEnd
        %main = OpFunction %void None %15
-         %99 = OpLabel
-        %100 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %100
-        %101 = OpFunctionCall %void %main_1
-        %103 = OpLoad %v4float %x_GLF_color
-        %104 = OpCompositeConstruct %main_out %103
-        %102 = OpFunctionCall %void %tint_symbol_3 %104
+        %101 = OpLabel
+        %103 = OpLoad %v4float %gl_FragCoord_param_1
+        %102 = OpFunctionCall %main_out %main_inner %103
+        %104 = OpCompositeExtract %v4float %102 0
+               OpStore %x_GLF_color_1_1 %104
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/two-nested-infinite-loops-discard/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/two-nested-infinite-loops-discard/0-opt.spvasm.expected.spvasm
index 8d1e068..2ce771a 100644
--- a/test/vk-gl-cts/graphicsfuzz/two-nested-infinite-loops-discard/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/two-nested-infinite-loops-discard/0-opt.spvasm.expected.spvasm
@@ -1,44 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 70
+; Bound: 69
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %mand_ "mand_"
                OpName %k "k"
                OpName %main_1 "main_1"
                OpName %j "j"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v3float = OpTypeVector %float 3
          %12 = OpTypeFunction %v3float
         %int = OpTypeInt 32 1
@@ -58,7 +57,7 @@
     %float_0 = OpConstant %float 0
          %57 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %58 = OpTypeFunction %void %main_out
+         %58 = OpTypeFunction %main_out
       %mand_ = OpFunction %v3float None %12
          %15 = OpLabel
           %k = OpVariable %_ptr_Function_int Function %19
@@ -115,18 +114,17 @@
                OpStore %x_GLF_color %57
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %58
-%tint_symbol = OpFunctionParameter %main_out
-         %62 = OpLabel
-         %63 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %63
-               OpReturn
+ %main_inner = OpFunction %main_out None %58
+         %61 = OpLabel
+         %62 = OpFunctionCall %void %main_1
+         %63 = OpLoad %v4float %x_GLF_color
+         %64 = OpCompositeConstruct %main_out %63
+               OpReturnValue %64
                OpFunctionEnd
        %main = OpFunction %void None %32
-         %65 = OpLabel
-         %66 = OpFunctionCall %void %main_1
-         %68 = OpLoad %v4float %x_GLF_color
-         %69 = OpCompositeConstruct %main_out %68
-         %67 = OpFunctionCall %void %tint_symbol_2 %69
+         %66 = OpLabel
+         %67 = OpFunctionCall %main_out %main_inner
+         %68 = OpCompositeExtract %v4float %67 0
+               OpStore %x_GLF_color_1_1 %68
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/two-nested-infinite-loops-discard/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/two-nested-infinite-loops-discard/0-opt.wgsl.expected.spvasm
index 8d1e068..2ce771a 100644
--- a/test/vk-gl-cts/graphicsfuzz/two-nested-infinite-loops-discard/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/two-nested-infinite-loops-discard/0-opt.wgsl.expected.spvasm
@@ -1,44 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 70
+; Bound: 69
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_7 "x_7"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %mand_ "mand_"
                OpName %k "k"
                OpName %main_1 "main_1"
                OpName %j "j"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v3float = OpTypeVector %float 3
          %12 = OpTypeFunction %v3float
         %int = OpTypeInt 32 1
@@ -58,7 +57,7 @@
     %float_0 = OpConstant %float 0
          %57 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %58 = OpTypeFunction %void %main_out
+         %58 = OpTypeFunction %main_out
       %mand_ = OpFunction %v3float None %12
          %15 = OpLabel
           %k = OpVariable %_ptr_Function_int Function %19
@@ -115,18 +114,17 @@
                OpStore %x_GLF_color %57
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %58
-%tint_symbol = OpFunctionParameter %main_out
-         %62 = OpLabel
-         %63 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %63
-               OpReturn
+ %main_inner = OpFunction %main_out None %58
+         %61 = OpLabel
+         %62 = OpFunctionCall %void %main_1
+         %63 = OpLoad %v4float %x_GLF_color
+         %64 = OpCompositeConstruct %main_out %63
+               OpReturnValue %64
                OpFunctionEnd
        %main = OpFunction %void None %32
-         %65 = OpLabel
-         %66 = OpFunctionCall %void %main_1
-         %68 = OpLoad %v4float %x_GLF_color
-         %69 = OpCompositeConstruct %main_out %68
-         %67 = OpFunctionCall %void %tint_symbol_2 %69
+         %66 = OpLabel
+         %67 = OpFunctionCall %main_out %main_inner
+         %68 = OpCompositeExtract %v4float %67 0
+               OpStore %x_GLF_color_1_1 %68
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.spvasm
index 4f5ea06..1db59f9 100644
--- a/test/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.spvasm
@@ -1,45 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 63
+; Bound: 62
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %GLF_dead6index "GLF_dead6index"
                OpName %GLF_dead6currentNode "GLF_dead6currentNode"
                OpName %donor_replacementGLF_dead6tree "donor_replacementGLF_dead6tree"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_1 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -59,7 +58,7 @@
        %bool = OpTypeBool
        %true = OpConstantTrue %bool
    %main_out = OpTypeStruct %v4float
-         %51 = OpTypeFunction %void %main_out
+         %51 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
 %GLF_dead6index = OpVariable %_ptr_Function_int Function %19
@@ -99,18 +98,17 @@
          %37 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %51
-%tint_symbol = OpFunctionParameter %main_out
-         %55 = OpLabel
-         %56 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %56
-               OpReturn
+ %main_inner = OpFunction %main_out None %51
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %main_1
+         %56 = OpLoad %v4float %x_GLF_color
+         %57 = OpCompositeConstruct %main_out %56
+               OpReturnValue %57
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %main_1
-         %61 = OpLoad %v4float %x_GLF_color
-         %62 = OpCompositeConstruct %main_out %61
-         %60 = OpFunctionCall %void %tint_symbol_2 %62
+         %59 = OpLabel
+         %60 = OpFunctionCall %main_out %main_inner
+         %61 = OpCompositeExtract %v4float %60 0
+               OpStore %x_GLF_color_1_1 %61
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.spvasm
index 4f5ea06..1db59f9 100644
--- a/test/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.spvasm
@@ -1,45 +1,44 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 63
+; Bound: 62
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %GLF_dead6index "GLF_dead6index"
                OpName %GLF_dead6currentNode "GLF_dead6currentNode"
                OpName %donor_replacementGLF_dead6tree "donor_replacementGLF_dead6tree"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_int_uint_1 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -59,7 +58,7 @@
        %bool = OpTypeBool
        %true = OpConstantTrue %bool
    %main_out = OpTypeStruct %v4float
-         %51 = OpTypeFunction %void %main_out
+         %51 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
 %GLF_dead6index = OpVariable %_ptr_Function_int Function %19
@@ -99,18 +98,17 @@
          %37 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %51
-%tint_symbol = OpFunctionParameter %main_out
-         %55 = OpLabel
-         %56 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %56
-               OpReturn
+ %main_inner = OpFunction %main_out None %51
+         %54 = OpLabel
+         %55 = OpFunctionCall %void %main_1
+         %56 = OpLoad %v4float %x_GLF_color
+         %57 = OpCompositeConstruct %main_out %56
+               OpReturnValue %57
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %58 = OpLabel
-         %59 = OpFunctionCall %void %main_1
-         %61 = OpLoad %v4float %x_GLF_color
-         %62 = OpCompositeConstruct %main_out %61
-         %60 = OpFunctionCall %void %tint_symbol_2 %62
+         %59 = OpLabel
+         %60 = OpFunctionCall %main_out %main_inner
+         %61 = OpCompositeExtract %v4float %60 0
+               OpStore %x_GLF_color_1_1 %61
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.spvasm.expected.spvasm
index e3fd9f3..5cee8f7 100644
--- a/test/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 84
+; Bound: 83
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %performPartition_ "performPartition_"
                OpName %GLF_live0i "GLF_live0i"
                OpName %i "i"
@@ -22,27 +22,26 @@
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
          %12 = OpTypeFunction %int
 %_ptr_Function_int = OpTypePointer Function %int
@@ -63,7 +62,7 @@
        %void = OpTypeVoid
          %67 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %72 = OpTypeFunction %void %main_out
+         %72 = OpTypeFunction %main_out
 %performPartition_ = OpFunction %int None %12
          %15 = OpLabel
  %GLF_live0i = OpVariable %_ptr_Function_int Function %18
@@ -143,18 +142,17 @@
          %71 = OpFunctionCall %int %performPartition_
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %72
-%tint_symbol = OpFunctionParameter %main_out
-         %76 = OpLabel
-         %77 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %77
-               OpReturn
+ %main_inner = OpFunction %main_out None %72
+         %75 = OpLabel
+         %76 = OpFunctionCall %void %main_1
+         %77 = OpLoad %v4float %x_GLF_color
+         %78 = OpCompositeConstruct %main_out %77
+               OpReturnValue %78
                OpFunctionEnd
        %main = OpFunction %void None %67
-         %79 = OpLabel
-         %80 = OpFunctionCall %void %main_1
-         %82 = OpLoad %v4float %x_GLF_color
-         %83 = OpCompositeConstruct %main_out %82
-         %81 = OpFunctionCall %void %tint_symbol_2 %83
+         %80 = OpLabel
+         %81 = OpFunctionCall %main_out %main_inner
+         %82 = OpCompositeExtract %v4float %81 0
+               OpStore %x_GLF_color_1_1 %82
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.wgsl.expected.spvasm
index e3fd9f3..5cee8f7 100644
--- a/test/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 84
+; Bound: 83
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %performPartition_ "performPartition_"
                OpName %GLF_live0i "GLF_live0i"
                OpName %i "i"
@@ -22,27 +22,26 @@
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
          %12 = OpTypeFunction %int
 %_ptr_Function_int = OpTypePointer Function %int
@@ -63,7 +62,7 @@
        %void = OpTypeVoid
          %67 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %72 = OpTypeFunction %void %main_out
+         %72 = OpTypeFunction %main_out
 %performPartition_ = OpFunction %int None %12
          %15 = OpLabel
  %GLF_live0i = OpVariable %_ptr_Function_int Function %18
@@ -143,18 +142,17 @@
          %71 = OpFunctionCall %int %performPartition_
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %72
-%tint_symbol = OpFunctionParameter %main_out
-         %76 = OpLabel
-         %77 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %77
-               OpReturn
+ %main_inner = OpFunction %main_out None %72
+         %75 = OpLabel
+         %76 = OpFunctionCall %void %main_1
+         %77 = OpLoad %v4float %x_GLF_color
+         %78 = OpCompositeConstruct %main_out %77
+               OpReturnValue %78
                OpFunctionEnd
        %main = OpFunction %void None %67
-         %79 = OpLabel
-         %80 = OpFunctionCall %void %main_1
-         %82 = OpLoad %v4float %x_GLF_color
-         %83 = OpCompositeConstruct %main_out %82
-         %81 = OpFunctionCall %void %tint_symbol_2 %83
+         %80 = OpLabel
+         %81 = OpFunctionCall %main_out %main_inner
+         %82 = OpCompositeExtract %v4float %81 0
+               OpStore %x_GLF_color_1_1 %82
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.spvasm.expected.spvasm
index 2cc6d3b..f829f24 100644
--- a/test/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.spvasm.expected.spvasm
@@ -1,44 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_30 "x_30"
                OpName %x_32_phi "x_32_phi"
                OpName %x_33_phi "x_33_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -52,7 +51,7 @@
     %float_1 = OpConstant %float 1
          %42 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %43 = OpTypeFunction %void %main_out
+         %43 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
        %x_30 = OpVariable %_ptr_Function_float Function %18
@@ -87,18 +86,17 @@
          %22 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %43
-%tint_symbol = OpFunctionParameter %main_out
-         %47 = OpLabel
-         %48 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %48
-               OpReturn
+ %main_inner = OpFunction %main_out None %43
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %main_1
+         %48 = OpLoad %v4float %x_GLF_color
+         %49 = OpCompositeConstruct %main_out %48
+               OpReturnValue %49
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %main_1
-         %53 = OpLoad %v4float %x_GLF_color
-         %54 = OpCompositeConstruct %main_out %53
-         %52 = OpFunctionCall %void %tint_symbol_2 %54
+         %51 = OpLabel
+         %52 = OpFunctionCall %main_out %main_inner
+         %53 = OpCompositeExtract %v4float %52 0
+               OpStore %x_GLF_color_1_1 %53
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.wgsl.expected.spvasm
index 2cc6d3b..f829f24 100644
--- a/test/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.wgsl.expected.spvasm
@@ -1,44 +1,43 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 55
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_5 "x_5"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_30 "x_30"
                OpName %x_32_phi "x_32_phi"
                OpName %x_33_phi "x_33_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -52,7 +51,7 @@
     %float_1 = OpConstant %float 1
          %42 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %43 = OpTypeFunction %void %main_out
+         %43 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
        %x_30 = OpVariable %_ptr_Function_float Function %18
@@ -87,18 +86,17 @@
          %22 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %43
-%tint_symbol = OpFunctionParameter %main_out
-         %47 = OpLabel
-         %48 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %48
-               OpReturn
+ %main_inner = OpFunction %main_out None %43
+         %46 = OpLabel
+         %47 = OpFunctionCall %void %main_1
+         %48 = OpLoad %v4float %x_GLF_color
+         %49 = OpCompositeConstruct %main_out %48
+               OpReturnValue %49
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %50 = OpLabel
-         %51 = OpFunctionCall %void %main_1
-         %53 = OpLoad %v4float %x_GLF_color
-         %54 = OpCompositeConstruct %main_out %53
-         %52 = OpFunctionCall %void %tint_symbol_2 %54
+         %51 = OpLabel
+         %52 = OpFunctionCall %main_out %main_inner
+         %53 = OpCompositeExtract %v4float %52 0
+               OpStore %x_GLF_color_1_1 %53
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.spvasm.expected.spvasm
index 10ff9fa..1428dab 100644
--- a/test/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.spvasm.expected.spvasm
@@ -5,33 +5,33 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_30 "x_30"
                OpName %foo "foo"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -50,7 +50,7 @@
       %int_1 = OpConstant %int 1
 %uint_178493 = OpConstant %uint 178493
    %main_out = OpTypeStruct %v4float
-         %47 = OpTypeFunction %void %main_out
+         %47 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
        %x_30 = OpVariable %_ptr_Function_float Function %17
@@ -81,20 +81,20 @@
                OpStore %46 %45
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %47
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %47
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %51 = OpLabel
-         %52 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %52
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %52 = OpFunctionCall %void %main_1
+         %53 = OpLoad %v4float %x_GLF_color
+         %54 = OpCompositeConstruct %main_out %53
+               OpReturnValue %54
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %54 = OpLabel
-         %55 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %55
-         %56 = OpFunctionCall %void %main_1
-         %58 = OpLoad %v4float %x_GLF_color
-         %59 = OpCompositeConstruct %main_out %58
-         %57 = OpFunctionCall %void %tint_symbol_3 %59
+         %56 = OpLabel
+         %58 = OpLoad %v4float %gl_FragCoord_param_1
+         %57 = OpFunctionCall %main_out %main_inner %58
+         %59 = OpCompositeExtract %v4float %57 0
+               OpStore %x_GLF_color_1_1 %59
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.wgsl.expected.spvasm
index 10ff9fa..1428dab 100644
--- a/test/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.wgsl.expected.spvasm
@@ -5,33 +5,33 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_30 "x_30"
                OpName %foo "foo"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -50,7 +50,7 @@
       %int_1 = OpConstant %int 1
 %uint_178493 = OpConstant %uint 178493
    %main_out = OpTypeStruct %v4float
-         %47 = OpTypeFunction %void %main_out
+         %47 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
        %x_30 = OpVariable %_ptr_Function_float Function %17
@@ -81,20 +81,20 @@
                OpStore %46 %45
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %47
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %47
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %51 = OpLabel
-         %52 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %52
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %52 = OpFunctionCall %void %main_1
+         %53 = OpLoad %v4float %x_GLF_color
+         %54 = OpCompositeConstruct %main_out %53
+               OpReturnValue %54
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %54 = OpLabel
-         %55 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %55
-         %56 = OpFunctionCall %void %main_1
-         %58 = OpLoad %v4float %x_GLF_color
-         %59 = OpCompositeConstruct %main_out %58
-         %57 = OpFunctionCall %void %tint_symbol_3 %59
+         %56 = OpLabel
+         %58 = OpLoad %v4float %gl_FragCoord_param_1
+         %57 = OpFunctionCall %main_out %main_inner %58
+         %59 = OpCompositeExtract %v4float %57 0
+               OpStore %x_GLF_color_1_1 %59
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.spvasm.expected.spvasm
index ee7bed9..051ac1c 100644
--- a/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 184
+; Bound: 189
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %gl_GlobalInvocationID_param_1 "gl_GlobalInvocationID_param_1"
                OpName %gl_GlobalInvocationID "gl_GlobalInvocationID"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "injectionSwitch"
@@ -17,7 +18,6 @@
                OpName %doesNotMatter "doesNotMatter"
                OpMemberName %doesNotMatter 0 "x_compute_data"
                OpName %x_15 "x_15"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
                OpName %A "A"
                OpName %i "i"
@@ -25,7 +25,10 @@
                OpName %m "m"
                OpName %l "l"
                OpName %n "n"
+               OpName %main_inner "main_inner"
+               OpName %gl_GlobalInvocationID_param "gl_GlobalInvocationID_param"
                OpName %main "main"
+               OpDecorate %gl_GlobalInvocationID_param_1 BuiltIn GlobalInvocationId
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_10 NonWritable
@@ -41,13 +44,14 @@
                OpDecorate %_runtimearr_int ArrayStride 4
                OpDecorate %x_15 DescriptorSet 0
                OpDecorate %x_15 Binding 0
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
                OpDecorate %_arr_float_uint_1 ArrayStride 4
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%gl_GlobalInvocationID_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-%gl_GlobalInvocationID = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+%gl_GlobalInvocationID = OpVariable %_ptr_Private_v3uint Private %7
       %float = OpTypeFloat 32
     %v2float = OpTypeVector %float 2
        %buf1 = OpTypeStruct %v2float
@@ -61,8 +65,6 @@
 %doesNotMatter = OpTypeStruct %_runtimearr_int
 %_ptr_StorageBuffer_doesNotMatter = OpTypePointer StorageBuffer %doesNotMatter
        %x_15 = OpVariable %_ptr_StorageBuffer_doesNotMatter StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %21 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
@@ -94,6 +96,7 @@
       %int_2 = OpConstant %int 2
      %uint_3 = OpConstant %uint 3
       %int_3 = OpConstant %int 3
+        %180 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %21
          %24 = OpLabel
           %A = OpVariable %_ptr_Function__arr_float_uint_1 Function %29
@@ -301,10 +304,16 @@
                OpStore %178 %179
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %180
+%gl_GlobalInvocationID_param = OpFunctionParameter %v3uint
+        %183 = OpLabel
+               OpStore %gl_GlobalInvocationID %gl_GlobalInvocationID_param
+        %184 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %21
-        %181 = OpLabel
-        %182 = OpLoad %v3uint %tint_symbol
-               OpStore %gl_GlobalInvocationID %182
-        %183 = OpFunctionCall %void %main_1
+        %186 = OpLabel
+        %188 = OpLoad %v3uint %gl_GlobalInvocationID_param_1
+        %187 = OpFunctionCall %void %main_inner %188
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.wgsl.expected.spvasm
index ee7bed9..051ac1c 100644
--- a/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/unreachable-barrier-in-loops/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 184
+; Bound: 189
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %gl_GlobalInvocationID_param_1 "gl_GlobalInvocationID_param_1"
                OpName %gl_GlobalInvocationID "gl_GlobalInvocationID"
                OpName %buf1 "buf1"
                OpMemberName %buf1 0 "injectionSwitch"
@@ -17,7 +18,6 @@
                OpName %doesNotMatter "doesNotMatter"
                OpMemberName %doesNotMatter 0 "x_compute_data"
                OpName %x_15 "x_15"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
                OpName %A "A"
                OpName %i "i"
@@ -25,7 +25,10 @@
                OpName %m "m"
                OpName %l "l"
                OpName %n "n"
+               OpName %main_inner "main_inner"
+               OpName %gl_GlobalInvocationID_param "gl_GlobalInvocationID_param"
                OpName %main "main"
+               OpDecorate %gl_GlobalInvocationID_param_1 BuiltIn GlobalInvocationId
                OpDecorate %buf1 Block
                OpMemberDecorate %buf1 0 Offset 0
                OpDecorate %x_10 NonWritable
@@ -41,13 +44,14 @@
                OpDecorate %_runtimearr_int ArrayStride 4
                OpDecorate %x_15 DescriptorSet 0
                OpDecorate %x_15 Binding 0
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
                OpDecorate %_arr_float_uint_1 ArrayStride 4
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%gl_GlobalInvocationID_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-%gl_GlobalInvocationID = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+%gl_GlobalInvocationID = OpVariable %_ptr_Private_v3uint Private %7
       %float = OpTypeFloat 32
     %v2float = OpTypeVector %float 2
        %buf1 = OpTypeStruct %v2float
@@ -61,8 +65,6 @@
 %doesNotMatter = OpTypeStruct %_runtimearr_int
 %_ptr_StorageBuffer_doesNotMatter = OpTypePointer StorageBuffer %doesNotMatter
        %x_15 = OpVariable %_ptr_StorageBuffer_doesNotMatter StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %21 = OpTypeFunction %void
      %uint_1 = OpConstant %uint 1
@@ -94,6 +96,7 @@
       %int_2 = OpConstant %int 2
      %uint_3 = OpConstant %uint 3
       %int_3 = OpConstant %int 3
+        %180 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %21
          %24 = OpLabel
           %A = OpVariable %_ptr_Function__arr_float_uint_1 Function %29
@@ -301,10 +304,16 @@
                OpStore %178 %179
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %180
+%gl_GlobalInvocationID_param = OpFunctionParameter %v3uint
+        %183 = OpLabel
+               OpStore %gl_GlobalInvocationID %gl_GlobalInvocationID_param
+        %184 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %21
-        %181 = OpLabel
-        %182 = OpLoad %v3uint %tint_symbol
-               OpStore %gl_GlobalInvocationID %182
-        %183 = OpFunctionCall %void %main_1
+        %186 = OpLabel
+        %188 = OpLoad %v3uint %gl_GlobalInvocationID_param_1
+        %187 = OpFunctionCall %void %main_inner %188
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.spvasm.expected.spvasm
index d114d3c..6ec6c51 100644
--- a/test/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.spvasm.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 62
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_7 "x_7"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %computeColor_ "computeColor_"
                OpName %x_injected_loop_counter "x_injected_loop_counter"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
     %v3float = OpTypeVector %float 3
          %12 = OpTypeFunction %v3float
         %int = OpTypeInt 32 1
@@ -56,7 +55,7 @@
        %void = OpTypeVoid
          %45 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %50 = OpTypeFunction %void %main_out
+         %50 = OpTypeFunction %main_out
 %computeColor_ = OpFunction %v3float None %12
          %15 = OpLabel
 %x_injected_loop_counter = OpVariable %_ptr_Function_int Function %19
@@ -96,18 +95,17 @@
          %49 = OpFunctionCall %v3float %computeColor_
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %50
-%tint_symbol = OpFunctionParameter %main_out
-         %54 = OpLabel
-         %55 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %55
-               OpReturn
+ %main_inner = OpFunction %main_out None %50
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %main_1
+         %55 = OpLoad %v4float %x_GLF_color
+         %56 = OpCompositeConstruct %main_out %55
+               OpReturnValue %56
                OpFunctionEnd
        %main = OpFunction %void None %45
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %main_1
-         %60 = OpLoad %v4float %x_GLF_color
-         %61 = OpCompositeConstruct %main_out %60
-         %59 = OpFunctionCall %void %tint_symbol_2 %61
+         %58 = OpLabel
+         %59 = OpFunctionCall %main_out %main_inner
+         %60 = OpCompositeExtract %v4float %59 0
+               OpStore %x_GLF_color_1_1 %60
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.wgsl.expected.spvasm
index d114d3c..6ec6c51 100644
--- a/test/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 62
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_7 "x_7"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %computeColor_ "computeColor_"
                OpName %x_injected_loop_counter "x_injected_loop_counter"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
     %v3float = OpTypeVector %float 3
          %12 = OpTypeFunction %v3float
         %int = OpTypeInt 32 1
@@ -56,7 +55,7 @@
        %void = OpTypeVoid
          %45 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %50 = OpTypeFunction %void %main_out
+         %50 = OpTypeFunction %main_out
 %computeColor_ = OpFunction %v3float None %12
          %15 = OpLabel
 %x_injected_loop_counter = OpVariable %_ptr_Function_int Function %19
@@ -96,18 +95,17 @@
          %49 = OpFunctionCall %v3float %computeColor_
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %50
-%tint_symbol = OpFunctionParameter %main_out
-         %54 = OpLabel
-         %55 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %55
-               OpReturn
+ %main_inner = OpFunction %main_out None %50
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %main_1
+         %55 = OpLoad %v4float %x_GLF_color
+         %56 = OpCompositeConstruct %main_out %55
+               OpReturnValue %56
                OpFunctionEnd
        %main = OpFunction %void None %45
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %main_1
-         %60 = OpLoad %v4float %x_GLF_color
-         %61 = OpCompositeConstruct %main_out %60
-         %59 = OpFunctionCall %void %tint_symbol_2 %61
+         %58 = OpLabel
+         %59 = OpFunctionCall %main_out %main_inner
+         %60 = OpCompositeExtract %v4float %59 0
+               OpStore %x_GLF_color_1_1 %60
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.spvasm.expected.spvasm
index c4ffa4c..700fc29 100644
--- a/test/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.spvasm.expected.spvasm
@@ -5,45 +5,45 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_7 "x_7"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %computePoint_ "computePoint_"
                OpName %main_1 "main_1"
                OpName %x_34 "x_34"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
     %v3float = OpTypeVector %float 3
          %15 = OpTypeFunction %v3float
        %uint = OpTypeInt 32 0
@@ -63,7 +63,7 @@
     %float_1 = OpConstant %float 1
          %55 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %56 = OpTypeFunction %void %main_out
+         %56 = OpTypeFunction %main_out %v4float
 %computePoint_ = OpFunction %v3float None %15
          %18 = OpLabel
          %22 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 %uint_0
@@ -106,20 +106,20 @@
          %42 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %56
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %56
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %60 = OpLabel
-         %61 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %61
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %61 = OpFunctionCall %void %main_1
+         %62 = OpLoad %v4float %x_GLF_color
+         %63 = OpCompositeConstruct %main_out %62
+               OpReturnValue %63
                OpFunctionEnd
        %main = OpFunction %void None %33
-         %63 = OpLabel
-         %64 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %64
-         %65 = OpFunctionCall %void %main_1
-         %67 = OpLoad %v4float %x_GLF_color
-         %68 = OpCompositeConstruct %main_out %67
-         %66 = OpFunctionCall %void %tint_symbol_3 %68
+         %65 = OpLabel
+         %67 = OpLoad %v4float %gl_FragCoord_param_1
+         %66 = OpFunctionCall %main_out %main_inner %67
+         %68 = OpCompositeExtract %v4float %66 0
+               OpStore %x_GLF_color_1_1 %68
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.wgsl.expected.spvasm
index c4ffa4c..700fc29 100644
--- a/test/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.wgsl.expected.spvasm
@@ -5,45 +5,45 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_7 "x_7"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %computePoint_ "computePoint_"
                OpName %main_1 "main_1"
                OpName %x_34 "x_34"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_7 NonWritable
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_7 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
     %v3float = OpTypeVector %float 3
          %15 = OpTypeFunction %v3float
        %uint = OpTypeInt 32 0
@@ -63,7 +63,7 @@
     %float_1 = OpConstant %float 1
          %55 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %56 = OpTypeFunction %void %main_out
+         %56 = OpTypeFunction %main_out %v4float
 %computePoint_ = OpFunction %v3float None %15
          %18 = OpLabel
          %22 = OpAccessChain %_ptr_Uniform_float %x_7 %uint_0 %uint_0
@@ -106,20 +106,20 @@
          %42 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %56
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %56
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %60 = OpLabel
-         %61 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %61
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %61 = OpFunctionCall %void %main_1
+         %62 = OpLoad %v4float %x_GLF_color
+         %63 = OpCompositeConstruct %main_out %62
+               OpReturnValue %63
                OpFunctionEnd
        %main = OpFunction %void None %33
-         %63 = OpLabel
-         %64 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %64
-         %65 = OpFunctionCall %void %main_1
-         %67 = OpLoad %v4float %x_GLF_color
-         %68 = OpCompositeConstruct %main_out %67
-         %66 = OpFunctionCall %void %tint_symbol_3 %68
+         %65 = OpLabel
+         %67 = OpLoad %v4float %gl_FragCoord_param_1
+         %66 = OpFunctionCall %main_out %main_inner %67
+         %68 = OpCompositeExtract %v4float %66 0
+               OpStore %x_GLF_color_1_1 %68
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/unreachable-discard-statement/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/unreachable-discard-statement/0.spvasm.expected.spvasm
index 422a368..513a87d 100644
--- a/test/vk-gl-cts/graphicsfuzz/unreachable-discard-statement/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/unreachable-discard-statement/0.spvasm.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 79
+; Bound: 78
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %mand_ "mand_"
                OpName %x_40 "x_40"
                OpName %x_41 "x_41"
@@ -17,18 +17,17 @@
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v3float = OpTypeVector %float 3
           %8 = OpTypeFunction %v3float
        %bool = OpTypeBool
@@ -52,7 +51,7 @@
       %int_4 = OpConstant %int 4
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %67 = OpTypeFunction %void %main_out
+         %67 = OpTypeFunction %main_out
       %mand_ = OpFunction %v3float None %8
          %11 = OpLabel
        %x_40 = OpVariable %_ptr_Function_bool Function %16
@@ -127,18 +126,17 @@
          %54 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %67
-%tint_symbol = OpFunctionParameter %main_out
-         %71 = OpLabel
-         %72 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %72
-               OpReturn
+ %main_inner = OpFunction %main_out None %67
+         %70 = OpLabel
+         %71 = OpFunctionCall %void %main_1
+         %72 = OpLoad %v4float %x_GLF_color
+         %73 = OpCompositeConstruct %main_out %72
+               OpReturnValue %73
                OpFunctionEnd
        %main = OpFunction %void None %46
-         %74 = OpLabel
-         %75 = OpFunctionCall %void %main_1
-         %77 = OpLoad %v4float %x_GLF_color
-         %78 = OpCompositeConstruct %main_out %77
-         %76 = OpFunctionCall %void %tint_symbol_2 %78
+         %75 = OpLabel
+         %76 = OpFunctionCall %main_out %main_inner
+         %77 = OpCompositeExtract %v4float %76 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/unreachable-discard-statement/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/unreachable-discard-statement/0.wgsl.expected.spvasm
index 422a368..513a87d 100644
--- a/test/vk-gl-cts/graphicsfuzz/unreachable-discard-statement/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/unreachable-discard-statement/0.wgsl.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 79
+; Bound: 78
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %mand_ "mand_"
                OpName %x_40 "x_40"
                OpName %x_41 "x_41"
@@ -17,18 +17,17 @@
                OpName %i "i"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v3float = OpTypeVector %float 3
           %8 = OpTypeFunction %v3float
        %bool = OpTypeBool
@@ -52,7 +51,7 @@
       %int_4 = OpConstant %int 4
       %int_1 = OpConstant %int 1
    %main_out = OpTypeStruct %v4float
-         %67 = OpTypeFunction %void %main_out
+         %67 = OpTypeFunction %main_out
       %mand_ = OpFunction %v3float None %8
          %11 = OpLabel
        %x_40 = OpVariable %_ptr_Function_bool Function %16
@@ -127,18 +126,17 @@
          %54 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %67
-%tint_symbol = OpFunctionParameter %main_out
-         %71 = OpLabel
-         %72 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %72
-               OpReturn
+ %main_inner = OpFunction %main_out None %67
+         %70 = OpLabel
+         %71 = OpFunctionCall %void %main_1
+         %72 = OpLoad %v4float %x_GLF_color
+         %73 = OpCompositeConstruct %main_out %72
+               OpReturnValue %73
                OpFunctionEnd
        %main = OpFunction %void None %46
-         %74 = OpLabel
-         %75 = OpFunctionCall %void %main_1
-         %77 = OpLoad %v4float %x_GLF_color
-         %78 = OpCompositeConstruct %main_out %77
-         %76 = OpFunctionCall %void %tint_symbol_2 %78
+         %75 = OpLabel
+         %76 = OpFunctionCall %main_out %main_inner
+         %77 = OpCompositeExtract %v4float %76 0
+               OpStore %x_GLF_color_1_1 %77
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/unreachable-loops-in-switch/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/unreachable-loops-in-switch/0.spvasm.expected.spvasm
index 74f2106..2bd5729 100644
--- a/test/vk-gl-cts/graphicsfuzz/unreachable-loops-in-switch/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/unreachable-loops-in-switch/0.spvasm.expected.spvasm
@@ -1,32 +1,31 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 86
+; Bound: 85
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %data "data"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_float_uint_1 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -48,7 +47,7 @@
        %true = OpConstantTrue %bool
     %float_2 = OpConstant %float 2
    %main_out = OpTypeStruct %v4float
-         %74 = OpTypeFunction %void %main_out
+         %74 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %15
@@ -138,18 +137,17 @@
          %27 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %74
-%tint_symbol = OpFunctionParameter %main_out
-         %78 = OpLabel
-         %79 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %79
-               OpReturn
+ %main_inner = OpFunction %main_out None %74
+         %77 = OpLabel
+         %78 = OpFunctionCall %void %main_1
+         %79 = OpLoad %v4float %x_GLF_color
+         %80 = OpCompositeConstruct %main_out %79
+               OpReturnValue %80
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %81 = OpLabel
-         %82 = OpFunctionCall %void %main_1
-         %84 = OpLoad %v4float %x_GLF_color
-         %85 = OpCompositeConstruct %main_out %84
-         %83 = OpFunctionCall %void %tint_symbol_2 %85
+         %82 = OpLabel
+         %83 = OpFunctionCall %main_out %main_inner
+         %84 = OpCompositeExtract %v4float %83 0
+               OpStore %x_GLF_color_1_1 %84
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/unreachable-loops-in-switch/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/unreachable-loops-in-switch/0.wgsl.expected.spvasm
index 74f2106..2bd5729 100644
--- a/test/vk-gl-cts/graphicsfuzz/unreachable-loops-in-switch/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/unreachable-loops-in-switch/0.wgsl.expected.spvasm
@@ -1,32 +1,31 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 86
+; Bound: 85
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %i "i"
                OpName %data "data"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_float_uint_1 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -48,7 +47,7 @@
        %true = OpConstantTrue %bool
     %float_2 = OpConstant %float 2
    %main_out = OpTypeStruct %v4float
-         %74 = OpTypeFunction %void %main_out
+         %74 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
           %i = OpVariable %_ptr_Function_int Function %15
@@ -138,18 +137,17 @@
          %27 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %74
-%tint_symbol = OpFunctionParameter %main_out
-         %78 = OpLabel
-         %79 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %79
-               OpReturn
+ %main_inner = OpFunction %main_out None %74
+         %77 = OpLabel
+         %78 = OpFunctionCall %void %main_1
+         %79 = OpLoad %v4float %x_GLF_color
+         %80 = OpCompositeConstruct %main_out %79
+               OpReturnValue %80
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %81 = OpLabel
-         %82 = OpFunctionCall %void %main_1
-         %84 = OpLoad %v4float %x_GLF_color
-         %85 = OpCompositeConstruct %main_out %84
-         %83 = OpFunctionCall %void %tint_symbol_2 %85
+         %82 = OpLabel
+         %83 = OpFunctionCall %main_out %main_inner
+         %84 = OpCompositeExtract %v4float %83 0
+               OpStore %x_GLF_color_1_1 %84
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.spvasm
index 3946043..33bdd6f 100644
--- a/test/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 61
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injected"
                OpName %x_5 "x_5"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m "m"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -54,7 +53,7 @@
       %int_1 = OpConstant %int 1
        %true = OpConstantTrue %bool
    %main_out = OpTypeStruct %v4float
-         %49 = OpTypeFunction %void %main_out
+         %49 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %m = OpVariable %_ptr_Function_int Function %19
@@ -98,18 +97,17 @@
          %33 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %49
-%tint_symbol = OpFunctionParameter %main_out
-         %53 = OpLabel
-         %54 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %54
-               OpReturn
+ %main_inner = OpFunction %main_out None %49
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %main_1
+         %54 = OpLoad %v4float %x_GLF_color
+         %55 = OpCompositeConstruct %main_out %54
+               OpReturnValue %55
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %main_1
-         %59 = OpLoad %v4float %x_GLF_color
-         %60 = OpCompositeConstruct %main_out %59
-         %58 = OpFunctionCall %void %tint_symbol_2 %60
+         %57 = OpLabel
+         %58 = OpFunctionCall %main_out %main_inner
+         %59 = OpCompositeExtract %v4float %58 0
+               OpStore %x_GLF_color_1_1 %59
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.spvasm
index 3946043..33bdd6f 100644
--- a/test/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.spvasm
@@ -1,42 +1,41 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 61
+; Bound: 60
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injected"
                OpName %x_5 "x_5"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m "m"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_5 NonWritable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_5 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -54,7 +53,7 @@
       %int_1 = OpConstant %int 1
        %true = OpConstantTrue %bool
    %main_out = OpTypeStruct %v4float
-         %49 = OpTypeFunction %void %main_out
+         %49 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %m = OpVariable %_ptr_Function_int Function %19
@@ -98,18 +97,17 @@
          %33 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %49
-%tint_symbol = OpFunctionParameter %main_out
-         %53 = OpLabel
-         %54 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %54
-               OpReturn
+ %main_inner = OpFunction %main_out None %49
+         %52 = OpLabel
+         %53 = OpFunctionCall %void %main_1
+         %54 = OpLoad %v4float %x_GLF_color
+         %55 = OpCompositeConstruct %main_out %54
+               OpReturnValue %55
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %56 = OpLabel
-         %57 = OpFunctionCall %void %main_1
-         %59 = OpLoad %v4float %x_GLF_color
-         %60 = OpCompositeConstruct %main_out %59
-         %58 = OpFunctionCall %void %tint_symbol_2 %60
+         %57 = OpLabel
+         %58 = OpFunctionCall %main_out %main_inner
+         %59 = OpCompositeExtract %v4float %58 0
+               OpStore %x_GLF_color_1_1 %59
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.spvasm.expected.spvasm
index 335fc7b..7c51e65 100644
--- a/test/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.spvasm.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_21_phi "x_21_phi"
                OpName %x_25 "x_25"
@@ -16,18 +16,17 @@
                OpName %x_30_phi "x_30_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -42,7 +41,7 @@
     %float_0 = OpConstant %float 0
          %44 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %45 = OpTypeFunction %void %main_out
+         %45 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
    %x_21_phi = OpVariable %_ptr_Function_bool Function %15
@@ -94,18 +93,17 @@
          %18 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %45
-%tint_symbol = OpFunctionParameter %main_out
-         %49 = OpLabel
-         %50 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %50
-               OpReturn
+ %main_inner = OpFunction %main_out None %45
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %main_1
+         %50 = OpLoad %v4float %x_GLF_color
+         %51 = OpCompositeConstruct %main_out %50
+               OpReturnValue %51
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %main_1
-         %55 = OpLoad %v4float %x_GLF_color
-         %56 = OpCompositeConstruct %main_out %55
-         %54 = OpFunctionCall %void %tint_symbol_2 %56
+         %53 = OpLabel
+         %54 = OpFunctionCall %main_out %main_inner
+         %55 = OpCompositeExtract %v4float %54 0
+               OpStore %x_GLF_color_1_1 %55
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.wgsl.expected.spvasm
index 335fc7b..7c51e65 100644
--- a/test/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.wgsl.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 57
+; Bound: 56
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %x_21_phi "x_21_phi"
                OpName %x_25 "x_25"
@@ -16,18 +16,17 @@
                OpName %x_30_phi "x_30_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -42,7 +41,7 @@
     %float_0 = OpConstant %float 0
          %44 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %45 = OpTypeFunction %void %main_out
+         %45 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
    %x_21_phi = OpVariable %_ptr_Function_bool Function %15
@@ -94,18 +93,17 @@
          %18 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %45
-%tint_symbol = OpFunctionParameter %main_out
-         %49 = OpLabel
-         %50 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %50
-               OpReturn
+ %main_inner = OpFunction %main_out None %45
+         %48 = OpLabel
+         %49 = OpFunctionCall %void %main_1
+         %50 = OpLoad %v4float %x_GLF_color
+         %51 = OpCompositeConstruct %main_out %50
+               OpReturnValue %51
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %52 = OpLabel
-         %53 = OpFunctionCall %void %main_1
-         %55 = OpLoad %v4float %x_GLF_color
-         %56 = OpCompositeConstruct %main_out %55
-         %54 = OpFunctionCall %void %tint_symbol_2 %56
+         %53 = OpLabel
+         %54 = OpFunctionCall %main_out %main_inner
+         %55 = OpCompositeExtract %v4float %54 0
+               OpStore %x_GLF_color_1_1 %55
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.spvasm.expected.spvasm
index d8fd878..469fad4 100644
--- a/test/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.spvasm.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 67
+; Bound: 66
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %c1 "c1"
                OpName %uv "uv"
@@ -18,18 +18,17 @@
                OpName %x_9_phi "x_9_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -52,7 +51,7 @@
          %48 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
       %false = OpConstantFalse %bool
    %main_out = OpTypeStruct %v4float
-         %55 = OpTypeFunction %void %main_out
+         %55 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
          %c1 = OpVariable %_ptr_Function_bool Function %15
@@ -102,18 +101,17 @@
          %53 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %55
-%tint_symbol = OpFunctionParameter %main_out
-         %59 = OpLabel
-         %60 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %60
-               OpReturn
+ %main_inner = OpFunction %main_out None %55
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %main_1
+         %60 = OpLoad %v4float %x_GLF_color
+         %61 = OpCompositeConstruct %main_out %60
+               OpReturnValue %61
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %62 = OpLabel
-         %63 = OpFunctionCall %void %main_1
-         %65 = OpLoad %v4float %x_GLF_color
-         %66 = OpCompositeConstruct %main_out %65
-         %64 = OpFunctionCall %void %tint_symbol_2 %66
+         %63 = OpLabel
+         %64 = OpFunctionCall %main_out %main_inner
+         %65 = OpCompositeExtract %v4float %64 0
+               OpStore %x_GLF_color_1_1 %65
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.wgsl.expected.spvasm
index d8fd878..469fad4 100644
--- a/test/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.wgsl.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 67
+; Bound: 66
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %c1 "c1"
                OpName %uv "uv"
@@ -18,18 +18,17 @@
                OpName %x_9_phi "x_9_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -52,7 +51,7 @@
          %48 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
       %false = OpConstantFalse %bool
    %main_out = OpTypeStruct %v4float
-         %55 = OpTypeFunction %void %main_out
+         %55 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
          %c1 = OpVariable %_ptr_Function_bool Function %15
@@ -102,18 +101,17 @@
          %53 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %55
-%tint_symbol = OpFunctionParameter %main_out
-         %59 = OpLabel
-         %60 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %60
-               OpReturn
+ %main_inner = OpFunction %main_out None %55
+         %58 = OpLabel
+         %59 = OpFunctionCall %void %main_1
+         %60 = OpLoad %v4float %x_GLF_color
+         %61 = OpCompositeConstruct %main_out %60
+               OpReturnValue %61
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %62 = OpLabel
-         %63 = OpFunctionCall %void %main_1
-         %65 = OpLoad %v4float %x_GLF_color
-         %66 = OpCompositeConstruct %main_out %65
-         %64 = OpFunctionCall %void %tint_symbol_2 %66
+         %63 = OpLabel
+         %64 = OpFunctionCall %main_out %main_inner
+         %65 = OpCompositeExtract %v4float %64 0
+               OpStore %x_GLF_color_1_1 %65
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.spvasm.expected.spvasm
index b6beec4..84224dc 100644
--- a/test/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.spvasm.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %func_ "func_"
                OpName %alwaysFalse "alwaysFalse"
                OpName %value "value"
@@ -26,31 +26,31 @@
                OpName %i_1 "i_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
          %15 = OpTypeFunction %float
        %bool = OpTypeBool
 %_ptr_Function_bool = OpTypePointer Function %bool
@@ -81,11 +81,11 @@
         %155 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %156 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %157 = OpTypeFunction %void %main_out
+        %157 = OpTypeFunction %main_out %v4float
       %func_ = OpFunction %float None %15
          %17 = OpLabel
 %alwaysFalse = OpVariable %_ptr_Function_bool Function %21
-      %value = OpVariable %_ptr_Function_v4float Function %5
+      %value = OpVariable %_ptr_Function_v4float Function %7
           %a = OpVariable %_ptr_Function_v2float Function %26
           %i = OpVariable %_ptr_Function_int Function %30
       %x_121 = OpVariable %_ptr_Function_bool Function %21
@@ -250,20 +250,20 @@
         %152 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %157
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %157
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %161 = OpLabel
-        %162 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %162
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %162 = OpFunctionCall %void %main_1
+        %163 = OpLoad %v4float %x_GLF_color
+        %164 = OpCompositeConstruct %main_out %163
+               OpReturnValue %164
                OpFunctionEnd
        %main = OpFunction %void None %124
-        %164 = OpLabel
-        %165 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %165
-        %166 = OpFunctionCall %void %main_1
-        %168 = OpLoad %v4float %x_GLF_color
-        %169 = OpCompositeConstruct %main_out %168
-        %167 = OpFunctionCall %void %tint_symbol_3 %169
+        %166 = OpLabel
+        %168 = OpLoad %v4float %gl_FragCoord_param_1
+        %167 = OpFunctionCall %main_out %main_inner %168
+        %169 = OpCompositeExtract %v4float %167 0
+               OpStore %x_GLF_color_1_1 %169
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.wgsl.expected.spvasm
index b6beec4..84224dc 100644
--- a/test/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.wgsl.expected.spvasm
@@ -5,15 +5,15 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_10 "x_10"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %func_ "func_"
                OpName %alwaysFalse "alwaysFalse"
                OpName %value "value"
@@ -26,31 +26,31 @@
                OpName %i_1 "i_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_10 NonWritable
                OpDecorate %x_10 DescriptorSet 0
                OpDecorate %x_10 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_10 = OpVariable %_ptr_Uniform_buf0 Uniform
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
          %15 = OpTypeFunction %float
        %bool = OpTypeBool
 %_ptr_Function_bool = OpTypePointer Function %bool
@@ -81,11 +81,11 @@
         %155 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
         %156 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-        %157 = OpTypeFunction %void %main_out
+        %157 = OpTypeFunction %main_out %v4float
       %func_ = OpFunction %float None %15
          %17 = OpLabel
 %alwaysFalse = OpVariable %_ptr_Function_bool Function %21
-      %value = OpVariable %_ptr_Function_v4float Function %5
+      %value = OpVariable %_ptr_Function_v4float Function %7
           %a = OpVariable %_ptr_Function_v2float Function %26
           %i = OpVariable %_ptr_Function_int Function %30
       %x_121 = OpVariable %_ptr_Function_bool Function %21
@@ -250,20 +250,20 @@
         %152 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %157
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %157
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %161 = OpLabel
-        %162 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %162
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %162 = OpFunctionCall %void %main_1
+        %163 = OpLoad %v4float %x_GLF_color
+        %164 = OpCompositeConstruct %main_out %163
+               OpReturnValue %164
                OpFunctionEnd
        %main = OpFunction %void None %124
-        %164 = OpLabel
-        %165 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %165
-        %166 = OpFunctionCall %void %main_1
-        %168 = OpLoad %v4float %x_GLF_color
-        %169 = OpCompositeConstruct %main_out %168
-        %167 = OpFunctionCall %void %tint_symbol_3 %169
+        %166 = OpLabel
+        %168 = OpLoad %v4float %gl_FragCoord_param_1
+        %167 = OpFunctionCall %main_out %main_inner %168
+        %169 = OpCompositeExtract %v4float %167 0
+               OpStore %x_GLF_color_1_1 %169
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.spvasm.expected.spvasm
index 658ed91..9199225 100644
--- a/test/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.spvasm.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 73
+; Bound: 72
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %coord "coord"
                OpName %tmp3 "tmp3"
@@ -18,19 +18,18 @@
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_float_uint_1 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
           %8 = OpTypeFunction %int
     %v2float = OpTypeVector %float 2
@@ -56,7 +55,7 @@
          %59 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %60 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %61 = OpTypeFunction %void %main_out
+         %61 = OpTypeFunction %main_out
       %func_ = OpFunction %int None %8
          %11 = OpLabel
       %coord = OpVariable %_ptr_Function_v2float Function %15
@@ -104,18 +103,17 @@
          %55 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %61
-%tint_symbol = OpFunctionParameter %main_out
-         %65 = OpLabel
-         %66 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %66
-               OpReturn
+ %main_inner = OpFunction %main_out None %61
+         %64 = OpLabel
+         %65 = OpFunctionCall %void %main_1
+         %66 = OpLoad %v4float %x_GLF_color
+         %67 = OpCompositeConstruct %main_out %66
+               OpReturnValue %67
                OpFunctionEnd
        %main = OpFunction %void None %49
-         %68 = OpLabel
-         %69 = OpFunctionCall %void %main_1
-         %71 = OpLoad %v4float %x_GLF_color
-         %72 = OpCompositeConstruct %main_out %71
-         %70 = OpFunctionCall %void %tint_symbol_2 %72
+         %69 = OpLabel
+         %70 = OpFunctionCall %main_out %main_inner
+         %71 = OpCompositeExtract %v4float %70 0
+               OpStore %x_GLF_color_1_1 %71
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.wgsl.expected.spvasm
index 658ed91..9199225 100644
--- a/test/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.wgsl.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 73
+; Bound: 72
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %func_ "func_"
                OpName %coord "coord"
                OpName %tmp3 "tmp3"
@@ -18,19 +18,18 @@
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_float_uint_1 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
         %int = OpTypeInt 32 1
           %8 = OpTypeFunction %int
     %v2float = OpTypeVector %float 2
@@ -56,7 +55,7 @@
          %59 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
          %60 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %61 = OpTypeFunction %void %main_out
+         %61 = OpTypeFunction %main_out
       %func_ = OpFunction %int None %8
          %11 = OpLabel
       %coord = OpVariable %_ptr_Function_v2float Function %15
@@ -104,18 +103,17 @@
          %55 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %61
-%tint_symbol = OpFunctionParameter %main_out
-         %65 = OpLabel
-         %66 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %66
-               OpReturn
+ %main_inner = OpFunction %main_out None %61
+         %64 = OpLabel
+         %65 = OpFunctionCall %void %main_1
+         %66 = OpLoad %v4float %x_GLF_color
+         %67 = OpCompositeConstruct %main_out %66
+               OpReturnValue %67
                OpFunctionEnd
        %main = OpFunction %void None %49
-         %68 = OpLabel
-         %69 = OpFunctionCall %void %main_1
-         %71 = OpLoad %v4float %x_GLF_color
-         %72 = OpCompositeConstruct %main_out %71
-         %70 = OpFunctionCall %void %tint_symbol_2 %72
+         %69 = OpLabel
+         %70 = OpFunctionCall %main_out %main_inner
+         %71 = OpCompositeExtract %v4float %70 0
+               OpStore %x_GLF_color_1_1 %71
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.spvasm.expected.spvasm
index 6aedc1e..a927775 100644
--- a/test/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.spvasm.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 66
+; Bound: 65
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %j "j"
                OpName %x_41 "x_41"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -55,7 +54,7 @@
        %bool = OpTypeBool
      %uint_1 = OpConstant %uint 1
    %main_out = OpTypeStruct %v4float
-         %54 = OpTypeFunction %void %main_out
+         %54 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %j = OpVariable %_ptr_Function_int Function %19
@@ -101,18 +100,17 @@
          %52 = OpConvertFToS %int %53
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %54
-%tint_symbol = OpFunctionParameter %main_out
-         %58 = OpLabel
-         %59 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %59
-               OpReturn
+ %main_inner = OpFunction %main_out None %54
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %main_1
+         %59 = OpLoad %v4float %x_GLF_color
+         %60 = OpCompositeConstruct %main_out %59
+               OpReturnValue %60
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %61 = OpLabel
-         %62 = OpFunctionCall %void %main_1
-         %64 = OpLoad %v4float %x_GLF_color
-         %65 = OpCompositeConstruct %main_out %64
-         %63 = OpFunctionCall %void %tint_symbol_2 %65
+         %62 = OpLabel
+         %63 = OpFunctionCall %main_out %main_inner
+         %64 = OpCompositeExtract %v4float %63 0
+               OpStore %x_GLF_color_1_1 %64
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.wgsl.expected.spvasm
index 6aedc1e..a927775 100644
--- a/test/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 66
+; Bound: 65
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %j "j"
                OpName %x_41 "x_41"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
 %x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
         %int = OpTypeInt 32 1
@@ -55,7 +54,7 @@
        %bool = OpTypeBool
      %uint_1 = OpConstant %uint 1
    %main_out = OpTypeStruct %v4float
-         %54 = OpTypeFunction %void %main_out
+         %54 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
           %j = OpVariable %_ptr_Function_int Function %19
@@ -101,18 +100,17 @@
          %52 = OpConvertFToS %int %53
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %54
-%tint_symbol = OpFunctionParameter %main_out
-         %58 = OpLabel
-         %59 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %59
-               OpReturn
+ %main_inner = OpFunction %main_out None %54
+         %57 = OpLabel
+         %58 = OpFunctionCall %void %main_1
+         %59 = OpLoad %v4float %x_GLF_color
+         %60 = OpCompositeConstruct %main_out %59
+               OpReturnValue %60
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %61 = OpLabel
-         %62 = OpFunctionCall %void %main_1
-         %64 = OpLoad %v4float %x_GLF_color
-         %65 = OpCompositeConstruct %main_out %64
-         %63 = OpFunctionCall %void %tint_symbol_2 %65
+         %62 = OpLabel
+         %63 = OpFunctionCall %main_out %main_inner
+         %64 = OpCompositeExtract %v4float %63 0
+               OpStore %x_GLF_color_1_1 %64
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.spvasm
index ecf8eb6..0e06b9b 100644
--- a/test/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 146
+; Bound: 145
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injected"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %idx "idx"
                OpName %m43 "m43"
@@ -27,28 +27,27 @@
                OpName %GLF_live6sums "GLF_live6sums"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_9 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -82,7 +81,7 @@
       %int_9 = OpConstant %int 9
      %uint_1 = OpConstant %uint 1
    %main_out = OpTypeStruct %v4float
-        %134 = OpTypeFunction %void %main_out
+        %134 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
         %idx = OpVariable %_ptr_Function_int Function %18
@@ -223,18 +222,17 @@
          %49 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %134
-%tint_symbol = OpFunctionParameter %main_out
-        %138 = OpLabel
-        %139 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %139
-               OpReturn
+ %main_inner = OpFunction %main_out None %134
+        %137 = OpLabel
+        %138 = OpFunctionCall %void %main_1
+        %139 = OpLoad %v4float %x_GLF_color
+        %140 = OpCompositeConstruct %main_out %139
+               OpReturnValue %140
                OpFunctionEnd
        %main = OpFunction %void None %12
-        %141 = OpLabel
-        %142 = OpFunctionCall %void %main_1
-        %144 = OpLoad %v4float %x_GLF_color
-        %145 = OpCompositeConstruct %main_out %144
-        %143 = OpFunctionCall %void %tint_symbol_2 %145
+        %142 = OpLabel
+        %143 = OpFunctionCall %main_out %main_inner
+        %144 = OpCompositeExtract %v4float %143 0
+               OpStore %x_GLF_color_1_1 %144
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.wgsl.expected.spvasm
index 63de0fc..5b39202 100644
--- a/test/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.wgsl.expected.spvasm
@@ -1,17 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 152
+; Bound: 151
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injected"
                OpName %x_9 "x_9"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %idx "idx"
                OpName %m43 "m43"
@@ -27,28 +27,27 @@
                OpName %GLF_live6sums "GLF_live6sums"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_9 NonWritable
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpDecorate %_arr_float_uint_9 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
         %int = OpTypeInt 32 1
        %buf0 = OpTypeStruct %int
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_9 = OpVariable %_ptr_Uniform_buf0 Uniform
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -82,7 +81,7 @@
       %int_9 = OpConstant %int 9
      %uint_1 = OpConstant %uint 1
    %main_out = OpTypeStruct %v4float
-        %140 = OpTypeFunction %void %main_out
+        %140 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
         %idx = OpVariable %_ptr_Function_int Function %18
@@ -238,18 +237,17 @@
          %49 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %140
-%tint_symbol = OpFunctionParameter %main_out
-        %144 = OpLabel
-        %145 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %145
-               OpReturn
+ %main_inner = OpFunction %main_out None %140
+        %143 = OpLabel
+        %144 = OpFunctionCall %void %main_1
+        %145 = OpLoad %v4float %x_GLF_color
+        %146 = OpCompositeConstruct %main_out %145
+               OpReturnValue %146
                OpFunctionEnd
        %main = OpFunction %void None %12
-        %147 = OpLabel
-        %148 = OpFunctionCall %void %main_1
-        %150 = OpLoad %v4float %x_GLF_color
-        %151 = OpCompositeConstruct %main_out %150
-        %149 = OpFunctionCall %void %tint_symbol_2 %151
+        %148 = OpLabel
+        %149 = OpFunctionCall %main_out %main_inner
+        %150 = OpCompositeExtract %v4float %149 0
+               OpStore %x_GLF_color_1_1 %150
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.spvasm
index 57b75fe..fa51685 100644
--- a/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %BST "BST"
                OpMemberName %BST 0 "data"
                OpMemberName %BST 1 "leftIndex"
@@ -17,8 +19,6 @@
                OpName %x_27 "x_27"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %makeTreeNode_struct_BST_i1_i1_i11_i1_ "makeTreeNode_struct_BST_i1_i1_i11_i1_"
                OpName %tree "tree"
                OpName %data "data"
@@ -91,9 +91,11 @@
                OpName %param_31 "param_31"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %BST 0 Offset 0
                OpMemberDecorate %BST 1 Offset 4
                OpMemberDecorate %BST 2 Offset 8
@@ -103,35 +105,33 @@
                OpDecorate %x_27 NonWritable
                OpDecorate %x_27 DescriptorSet 0
                OpDecorate %x_27 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_float_uint_50 ArrayStride 4
                OpMemberDecorate %Obj 0 Offset 0
                OpDecorate %_arr_float_uint_10 ArrayStride 4
                OpMemberDecorate %Obj 1 Offset 40
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
         %BST = OpTypeStruct %int %int %int
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_BST_uint_10 = OpTypeArray %BST %uint_10
 %_ptr_Private__arr_BST_uint_10 = OpTypePointer Private %_arr_BST_uint_10
-          %8 = OpConstantNull %_arr_BST_uint_10
-     %tree_1 = OpVariable %_ptr_Private__arr_BST_uint_10 Private %8
-      %float = OpTypeFloat 32
+         %15 = OpConstantNull %_arr_BST_uint_10
+     %tree_1 = OpVariable %_ptr_Private__arr_BST_uint_10 Private %15
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_27 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_BST = OpTypePointer Function %BST
 %_ptr_Function_int = OpTypePointer Function %int
@@ -201,7 +201,7 @@
      %int_20 = OpConstant %int 20
         %505 = OpConstantComposite %v3float %float_1 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %514 = OpTypeFunction %void %main_out
+        %514 = OpTypeFunction %main_out %v4float
 %makeTreeNode_struct_BST_i1_i1_i11_i1_ = OpFunction %void None %23
        %tree = OpFunctionParameter %_ptr_Function_BST
        %data = OpFunctionParameter %_ptr_Function_int
@@ -769,20 +769,20 @@
                OpStore %x_GLF_color %513
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %514
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %514
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %518 = OpLabel
-        %519 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %519
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %519 = OpFunctionCall %void %main_1
+        %520 = OpLoad %v4float %x_GLF_color
+        %521 = OpCompositeConstruct %main_out %520
+               OpReturnValue %521
                OpFunctionEnd
        %main = OpFunction %void None %271
-        %521 = OpLabel
-        %522 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %522
-        %523 = OpFunctionCall %void %main_1
-        %525 = OpLoad %v4float %x_GLF_color
-        %526 = OpCompositeConstruct %main_out %525
-        %524 = OpFunctionCall %void %tint_symbol_3 %526
+        %523 = OpLabel
+        %525 = OpLoad %v4float %gl_FragCoord_param_1
+        %524 = OpFunctionCall %main_out %main_inner %525
+        %526 = OpCompositeExtract %v4float %524 0
+               OpStore %x_GLF_color_1_1 %526
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.wgsl.expected.spvasm
index 9e387b9..38c7047 100644
--- a/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.wgsl.expected.spvasm
@@ -5,8 +5,10 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %BST "BST"
                OpMemberName %BST 0 "data"
                OpMemberName %BST 1 "leftIndex"
@@ -17,8 +19,6 @@
                OpName %x_27 "x_27"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %makeTreeNode_struct_BST_i1_i1_i11_i1_ "makeTreeNode_struct_BST_i1_i1_i11_i1_"
                OpName %tree "tree"
                OpName %data "data"
@@ -91,9 +91,11 @@
                OpName %param_31 "param_31"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpMemberDecorate %BST 0 Offset 0
                OpMemberDecorate %BST 1 Offset 4
                OpMemberDecorate %BST 2 Offset 8
@@ -103,35 +105,33 @@
                OpDecorate %x_27 NonWritable
                OpDecorate %x_27 DescriptorSet 0
                OpDecorate %x_27 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpDecorate %_arr_float_uint_50 ArrayStride 4
                OpMemberDecorate %Obj 0 Offset 0
                OpDecorate %_arr_float_uint_10 ArrayStride 4
                OpMemberDecorate %Obj 1 Offset 40
                OpMemberDecorate %main_out 0 Offset 0
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %7 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
         %int = OpTypeInt 32 1
         %BST = OpTypeStruct %int %int %int
        %uint = OpTypeInt 32 0
     %uint_10 = OpConstant %uint 10
 %_arr_BST_uint_10 = OpTypeArray %BST %uint_10
 %_ptr_Private__arr_BST_uint_10 = OpTypePointer Private %_arr_BST_uint_10
-          %8 = OpConstantNull %_arr_BST_uint_10
-     %tree_1 = OpVariable %_ptr_Private__arr_BST_uint_10 Private %8
-      %float = OpTypeFloat 32
+         %15 = OpConstantNull %_arr_BST_uint_10
+     %tree_1 = OpVariable %_ptr_Private__arr_BST_uint_10 Private %15
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_27 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %17
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %17
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
 %_ptr_Function_BST = OpTypePointer Function %BST
 %_ptr_Function_int = OpTypePointer Function %int
@@ -201,7 +201,7 @@
      %int_20 = OpConstant %int 20
         %511 = OpConstantComposite %v3float %float_1 %float_0 %float_0
    %main_out = OpTypeStruct %v4float
-        %520 = OpTypeFunction %void %main_out
+        %520 = OpTypeFunction %main_out %v4float
 %makeTreeNode_struct_BST_i1_i1_i11_i1_ = OpFunction %void None %23
        %tree = OpFunctionParameter %_ptr_Function_BST
        %data = OpFunctionParameter %_ptr_Function_int
@@ -784,20 +784,20 @@
                OpStore %x_GLF_color %519
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %520
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %520
+%gl_FragCoord_param = OpFunctionParameter %v4float
         %524 = OpLabel
-        %525 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %525
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+        %525 = OpFunctionCall %void %main_1
+        %526 = OpLoad %v4float %x_GLF_color
+        %527 = OpCompositeConstruct %main_out %526
+               OpReturnValue %527
                OpFunctionEnd
        %main = OpFunction %void None %273
-        %527 = OpLabel
-        %528 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %528
-        %529 = OpFunctionCall %void %main_1
-        %531 = OpLoad %v4float %x_GLF_color
-        %532 = OpCompositeConstruct %main_out %531
-        %530 = OpFunctionCall %void %tint_symbol_3 %532
+        %529 = OpLabel
+        %531 = OpLoad %v4float %gl_FragCoord_param_1
+        %530 = OpFunctionCall %main_out %main_inner %531
+        %532 = OpCompositeExtract %v4float %530 0
+               OpStore %x_GLF_color_1_1 %532
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.spvasm
index 98c20bd..311fb0b 100644
--- a/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 141
+; Bound: 140
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m43 "m43"
                OpName %ll1 "ll1"
@@ -24,19 +24,18 @@
                OpName %idx "idx"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_float_uint_9 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -72,7 +71,7 @@
       %int_9 = OpConstant %int 9
      %uint_1 = OpConstant %uint 1
    %main_out = OpTypeStruct %v4float
-        %129 = OpTypeFunction %void %main_out
+        %129 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
         %m43 = OpVariable %_ptr_Function_mat4v3float Function %16
@@ -212,18 +211,17 @@
          %46 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %129
-%tint_symbol = OpFunctionParameter %main_out
-        %133 = OpLabel
-        %134 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %134
-               OpReturn
+ %main_inner = OpFunction %main_out None %129
+        %132 = OpLabel
+        %133 = OpFunctionCall %void %main_1
+        %134 = OpLoad %v4float %x_GLF_color
+        %135 = OpCompositeConstruct %main_out %134
+               OpReturnValue %135
                OpFunctionEnd
        %main = OpFunction %void None %8
-        %136 = OpLabel
-        %137 = OpFunctionCall %void %main_1
-        %139 = OpLoad %v4float %x_GLF_color
-        %140 = OpCompositeConstruct %main_out %139
-        %138 = OpFunctionCall %void %tint_symbol_2 %140
+        %137 = OpLabel
+        %138 = OpFunctionCall %main_out %main_inner
+        %139 = OpCompositeExtract %v4float %138 0
+               OpStore %x_GLF_color_1_1 %139
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.wgsl.expected.spvasm
index 397a1d8..3b569c8 100644
--- a/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.wgsl.expected.spvasm
@@ -1,14 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 147
+; Bound: 146
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %m43 "m43"
                OpName %ll1 "ll1"
@@ -24,19 +24,18 @@
                OpName %idx "idx"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %_arr_float_uint_9 ArrayStride 4
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %v3float = OpTypeVector %float 3
@@ -72,7 +71,7 @@
       %int_9 = OpConstant %int 9
      %uint_1 = OpConstant %uint 1
    %main_out = OpTypeStruct %v4float
-        %135 = OpTypeFunction %void %main_out
+        %135 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
         %m43 = OpVariable %_ptr_Function_mat4v3float Function %16
@@ -227,18 +226,17 @@
          %46 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %135
-%tint_symbol = OpFunctionParameter %main_out
-        %139 = OpLabel
-        %140 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %140
-               OpReturn
+ %main_inner = OpFunction %main_out None %135
+        %138 = OpLabel
+        %139 = OpFunctionCall %void %main_1
+        %140 = OpLoad %v4float %x_GLF_color
+        %141 = OpCompositeConstruct %main_out %140
+               OpReturnValue %141
                OpFunctionEnd
        %main = OpFunction %void None %8
-        %142 = OpLabel
-        %143 = OpFunctionCall %void %main_1
-        %145 = OpLoad %v4float %x_GLF_color
-        %146 = OpCompositeConstruct %main_out %145
-        %144 = OpFunctionCall %void %tint_symbol_2 %146
+        %143 = OpLabel
+        %144 = OpFunctionCall %main_out %main_inner
+        %145 = OpCompositeExtract %v4float %144 0
+               OpStore %x_GLF_color_1_1 %145
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.spvasm.expected.spvasm
index 864cc6d..adc3c12 100644
--- a/test/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.spvasm.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 62
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
          %33 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %height "height"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -65,7 +64,7 @@
     %float_1 = OpConstant %float 1
          %49 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %50 = OpTypeFunction %void %main_out
+         %50 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
      %height = OpVariable %_ptr_Function_float Function %18
@@ -85,18 +84,17 @@
                OpStore %x_GLF_color %49
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %50
-%tint_symbol = OpFunctionParameter %main_out
-         %54 = OpLabel
-         %55 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %55
-               OpReturn
+ %main_inner = OpFunction %main_out None %50
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %main_1
+         %55 = OpLoad %v4float %x_GLF_color
+         %56 = OpCompositeConstruct %main_out %55
+               OpReturnValue %56
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %main_1
-         %60 = OpLoad %v4float %x_GLF_color
-         %61 = OpCompositeConstruct %main_out %60
-         %59 = OpFunctionCall %void %tint_symbol_2 %61
+         %58 = OpLabel
+         %59 = OpFunctionCall %main_out %main_inner
+         %60 = OpCompositeExtract %v4float %59 0
+               OpStore %x_GLF_color_1_1 %60
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.wgsl.expected.spvasm
index 864cc6d..adc3c12 100644
--- a/test/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.wgsl.expected.spvasm
@@ -1,43 +1,42 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 62
+; Bound: 61
 ; Schema: 0
                OpCapability Shader
          %33 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %x_GLF_color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
                OpName %buf0 "buf0"
                OpMemberName %buf0 0 "injectionSwitch"
                OpName %x_6 "x_6"
                OpName %x_GLF_color "x_GLF_color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %height "height"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_GLF_color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
+               OpDecorate %x_GLF_color_1_1 Location 0
                OpDecorate %buf0 Block
                OpMemberDecorate %buf0 0 Offset 0
                OpDecorate %x_6 NonWritable
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 0
-               OpDecorate %tint_symbol_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %5
     %v2float = OpTypeVector %float 2
        %buf0 = OpTypeStruct %v2float
 %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
         %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
-    %v4float = OpTypeVector %float 4
 %_ptr_Private_v4float = OpTypePointer Private %v4float
-          %9 = OpConstantNull %v4float
-%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %9
+%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
          %12 = OpTypeFunction %void
 %_ptr_Function_float = OpTypePointer Function %float
@@ -65,7 +64,7 @@
     %float_1 = OpConstant %float 1
          %49 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
    %main_out = OpTypeStruct %v4float
-         %50 = OpTypeFunction %void %main_out
+         %50 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %12
          %15 = OpLabel
      %height = OpVariable %_ptr_Function_float Function %18
@@ -85,18 +84,17 @@
                OpStore %x_GLF_color %49
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %50
-%tint_symbol = OpFunctionParameter %main_out
-         %54 = OpLabel
-         %55 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %55
-               OpReturn
+ %main_inner = OpFunction %main_out None %50
+         %53 = OpLabel
+         %54 = OpFunctionCall %void %main_1
+         %55 = OpLoad %v4float %x_GLF_color
+         %56 = OpCompositeConstruct %main_out %55
+               OpReturnValue %56
                OpFunctionEnd
        %main = OpFunction %void None %12
-         %57 = OpLabel
-         %58 = OpFunctionCall %void %main_1
-         %60 = OpLoad %v4float %x_GLF_color
-         %61 = OpCompositeConstruct %main_out %60
-         %59 = OpFunctionCall %void %tint_symbol_2 %61
+         %58 = OpLabel
+         %59 = OpFunctionCall %main_out %main_inner
+         %60 = OpCompositeExtract %v4float %59 0
+               OpStore %x_GLF_color_1_1 %60
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.spvasm.expected.spvasm
index 85465cc..2656ff8 100644
--- a/test/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 127
+; Bound: 132
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %gl_WorkGroupID_param_1
                OpExecutionMode %main LocalSize 4 1 1
+               OpName %gl_WorkGroupID_param_1 "gl_WorkGroupID_param_1"
                OpName %gl_WorkGroupID "gl_WorkGroupID"
                OpName %In2 "In2"
                OpMemberName %In2 0 "data_in2"
@@ -20,7 +21,6 @@
                OpName %In0 "In0"
                OpMemberName %In0 0 "data_in0"
                OpName %x_19 "x_19"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
                OpName %base_index_in "base_index_in"
                OpName %base_index_out "base_index_out"
@@ -32,7 +32,10 @@
                OpName %i "i"
                OpName %temp0 "temp0"
                OpName %temp1 "temp1"
+               OpName %main_inner "main_inner"
+               OpName %gl_WorkGroupID_param "gl_WorkGroupID_param"
                OpName %main "main"
+               OpDecorate %gl_WorkGroupID_param_1 BuiltIn WorkgroupId
                OpDecorate %In2 Block
                OpMemberDecorate %In2 0 Offset 0
                OpDecorate %_arr_int_uint_8 ArrayStride 4
@@ -55,12 +58,13 @@
                OpDecorate %x_19 NonWritable
                OpDecorate %x_19 DescriptorSet 0
                OpDecorate %x_19 Binding 0
-               OpDecorate %tint_symbol BuiltIn WorkgroupId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%gl_WorkGroupID_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-%gl_WorkGroupID = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+%gl_WorkGroupID = OpVariable %_ptr_Private_v3uint Private %7
         %int = OpTypeInt 32 1
      %uint_8 = OpConstant %uint 8
 %_arr_int_uint_8 = OpTypeArray %int %uint_8
@@ -80,8 +84,6 @@
         %In0 = OpTypeStruct %_arr_int_uint_512
 %_ptr_StorageBuffer_In0 = OpTypePointer StorageBuffer %In0
        %x_19 = OpVariable %_ptr_StorageBuffer_In0 StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %27 = OpTypeFunction %void
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -100,6 +102,7 @@
        %bool = OpTypeBool
 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
       %int_1 = OpConstant %int 1
+        %123 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %27
          %30 = OpLabel
 %base_index_in = OpVariable %_ptr_Function_uint Function %33
@@ -215,10 +218,16 @@
          %60 = OpLabel
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %123
+%gl_WorkGroupID_param = OpFunctionParameter %v3uint
+        %126 = OpLabel
+               OpStore %gl_WorkGroupID %gl_WorkGroupID_param
+        %127 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %27
-        %124 = OpLabel
-        %125 = OpLoad %v3uint %tint_symbol
-               OpStore %gl_WorkGroupID %125
-        %126 = OpFunctionCall %void %main_1
+        %129 = OpLabel
+        %131 = OpLoad %v3uint %gl_WorkGroupID_param_1
+        %130 = OpFunctionCall %void %main_inner %131
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.wgsl.expected.spvasm
index 85465cc..2656ff8 100644
--- a/test/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 127
+; Bound: 132
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %gl_WorkGroupID_param_1
                OpExecutionMode %main LocalSize 4 1 1
+               OpName %gl_WorkGroupID_param_1 "gl_WorkGroupID_param_1"
                OpName %gl_WorkGroupID "gl_WorkGroupID"
                OpName %In2 "In2"
                OpMemberName %In2 0 "data_in2"
@@ -20,7 +21,6 @@
                OpName %In0 "In0"
                OpMemberName %In0 0 "data_in0"
                OpName %x_19 "x_19"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
                OpName %base_index_in "base_index_in"
                OpName %base_index_out "base_index_out"
@@ -32,7 +32,10 @@
                OpName %i "i"
                OpName %temp0 "temp0"
                OpName %temp1 "temp1"
+               OpName %main_inner "main_inner"
+               OpName %gl_WorkGroupID_param "gl_WorkGroupID_param"
                OpName %main "main"
+               OpDecorate %gl_WorkGroupID_param_1 BuiltIn WorkgroupId
                OpDecorate %In2 Block
                OpMemberDecorate %In2 0 Offset 0
                OpDecorate %_arr_int_uint_8 ArrayStride 4
@@ -55,12 +58,13 @@
                OpDecorate %x_19 NonWritable
                OpDecorate %x_19 DescriptorSet 0
                OpDecorate %x_19 Binding 0
-               OpDecorate %tint_symbol BuiltIn WorkgroupId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%gl_WorkGroupID_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-%gl_WorkGroupID = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+%gl_WorkGroupID = OpVariable %_ptr_Private_v3uint Private %7
         %int = OpTypeInt 32 1
      %uint_8 = OpConstant %uint 8
 %_arr_int_uint_8 = OpTypeArray %int %uint_8
@@ -80,8 +84,6 @@
         %In0 = OpTypeStruct %_arr_int_uint_512
 %_ptr_StorageBuffer_In0 = OpTypePointer StorageBuffer %In0
        %x_19 = OpVariable %_ptr_StorageBuffer_In0 StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %27 = OpTypeFunction %void
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -100,6 +102,7 @@
        %bool = OpTypeBool
 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
       %int_1 = OpConstant %int 1
+        %123 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %27
          %30 = OpLabel
 %base_index_in = OpVariable %_ptr_Function_uint Function %33
@@ -215,10 +218,16 @@
          %60 = OpLabel
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %123
+%gl_WorkGroupID_param = OpFunctionParameter %v3uint
+        %126 = OpLabel
+               OpStore %gl_WorkGroupID %gl_WorkGroupID_param
+        %127 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %27
-        %124 = OpLabel
-        %125 = OpLoad %v3uint %tint_symbol
-               OpStore %gl_WorkGroupID %125
-        %126 = OpFunctionCall %void %main_1
+        %129 = OpLabel
+        %131 = OpLoad %v3uint %gl_WorkGroupID_param_1
+        %130 = OpFunctionCall %void %main_inner %131
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.spvasm.expected.spvasm
index fd4ea43..e9b2b5d 100644
--- a/test/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.spvasm.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 125
+; Bound: 130
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %gl_WorkGroupID_param_1
                OpExecutionMode %main LocalSize 4 1 1
+               OpName %gl_WorkGroupID_param_1 "gl_WorkGroupID_param_1"
                OpName %gl_WorkGroupID "gl_WorkGroupID"
                OpName %In2 "In2"
                OpMemberName %In2 0 "data_in2"
@@ -20,7 +21,6 @@
                OpName %In1 "In1"
                OpMemberName %In1 0 "data_in1"
                OpName %x_19 "x_19"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
                OpName %base_index_in "base_index_in"
                OpName %base_index_out "base_index_out"
@@ -32,7 +32,10 @@
                OpName %i "i"
                OpName %temp0 "temp0"
                OpName %temp1 "temp1"
+               OpName %main_inner "main_inner"
+               OpName %gl_WorkGroupID_param "gl_WorkGroupID_param"
                OpName %main "main"
+               OpDecorate %gl_WorkGroupID_param_1 BuiltIn WorkgroupId
                OpDecorate %In2 Block
                OpMemberDecorate %In2 0 Offset 0
                OpDecorate %_arr_int_uint_8 ArrayStride 4
@@ -55,12 +58,13 @@
                OpDecorate %x_19 NonWritable
                OpDecorate %x_19 DescriptorSet 0
                OpDecorate %x_19 Binding 1
-               OpDecorate %tint_symbol BuiltIn WorkgroupId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%gl_WorkGroupID_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-%gl_WorkGroupID = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+%gl_WorkGroupID = OpVariable %_ptr_Private_v3uint Private %7
         %int = OpTypeInt 32 1
      %uint_8 = OpConstant %uint 8
 %_arr_int_uint_8 = OpTypeArray %int %uint_8
@@ -80,8 +84,6 @@
         %In1 = OpTypeStruct %_arr_int_uint_512
 %_ptr_StorageBuffer_In1 = OpTypePointer StorageBuffer %In1
        %x_19 = OpVariable %_ptr_StorageBuffer_In1 StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %27 = OpTypeFunction %void
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -98,6 +100,7 @@
        %bool = OpTypeBool
 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
       %int_1 = OpConstant %int 1
+        %121 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %27
          %30 = OpLabel
 %base_index_in = OpVariable %_ptr_Function_uint Function %33
@@ -213,10 +216,16 @@
          %58 = OpLabel
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %121
+%gl_WorkGroupID_param = OpFunctionParameter %v3uint
+        %124 = OpLabel
+               OpStore %gl_WorkGroupID %gl_WorkGroupID_param
+        %125 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %27
-        %122 = OpLabel
-        %123 = OpLoad %v3uint %tint_symbol
-               OpStore %gl_WorkGroupID %123
-        %124 = OpFunctionCall %void %main_1
+        %127 = OpLabel
+        %129 = OpLoad %v3uint %gl_WorkGroupID_param_1
+        %128 = OpFunctionCall %void %main_inner %129
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.wgsl.expected.spvasm
index fd4ea43..e9b2b5d 100644
--- a/test/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.wgsl.expected.spvasm
@@ -1,12 +1,13 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 125
+; Bound: 130
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %gl_WorkGroupID_param_1
                OpExecutionMode %main LocalSize 4 1 1
+               OpName %gl_WorkGroupID_param_1 "gl_WorkGroupID_param_1"
                OpName %gl_WorkGroupID "gl_WorkGroupID"
                OpName %In2 "In2"
                OpMemberName %In2 0 "data_in2"
@@ -20,7 +21,6 @@
                OpName %In1 "In1"
                OpMemberName %In1 0 "data_in1"
                OpName %x_19 "x_19"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
                OpName %base_index_in "base_index_in"
                OpName %base_index_out "base_index_out"
@@ -32,7 +32,10 @@
                OpName %i "i"
                OpName %temp0 "temp0"
                OpName %temp1 "temp1"
+               OpName %main_inner "main_inner"
+               OpName %gl_WorkGroupID_param "gl_WorkGroupID_param"
                OpName %main "main"
+               OpDecorate %gl_WorkGroupID_param_1 BuiltIn WorkgroupId
                OpDecorate %In2 Block
                OpMemberDecorate %In2 0 Offset 0
                OpDecorate %_arr_int_uint_8 ArrayStride 4
@@ -55,12 +58,13 @@
                OpDecorate %x_19 NonWritable
                OpDecorate %x_19 DescriptorSet 0
                OpDecorate %x_19 Binding 1
-               OpDecorate %tint_symbol BuiltIn WorkgroupId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%gl_WorkGroupID_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-%gl_WorkGroupID = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+%gl_WorkGroupID = OpVariable %_ptr_Private_v3uint Private %7
         %int = OpTypeInt 32 1
      %uint_8 = OpConstant %uint 8
 %_arr_int_uint_8 = OpTypeArray %int %uint_8
@@ -80,8 +84,6 @@
         %In1 = OpTypeStruct %_arr_int_uint_512
 %_ptr_StorageBuffer_In1 = OpTypePointer StorageBuffer %In1
        %x_19 = OpVariable %_ptr_StorageBuffer_In1 StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %27 = OpTypeFunction %void
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -98,6 +100,7 @@
        %bool = OpTypeBool
 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
       %int_1 = OpConstant %int 1
+        %121 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %27
          %30 = OpLabel
 %base_index_in = OpVariable %_ptr_Function_uint Function %33
@@ -213,10 +216,16 @@
          %58 = OpLabel
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %121
+%gl_WorkGroupID_param = OpFunctionParameter %v3uint
+        %124 = OpLabel
+               OpStore %gl_WorkGroupID %gl_WorkGroupID_param
+        %125 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %27
-        %122 = OpLabel
-        %123 = OpLoad %v3uint %tint_symbol
-               OpStore %gl_WorkGroupID %123
-        %124 = OpFunctionCall %void %main_1
+        %127 = OpLabel
+        %129 = OpLoad %v3uint %gl_WorkGroupID_param_1
+        %128 = OpFunctionCall %void %main_inner %129
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/rasterization/line_continuity/line-strip/0.spvasm.expected.spvasm b/test/vk-gl-cts/rasterization/line_continuity/line-strip/0.spvasm.expected.spvasm
index 7964ca8..3331626 100644
--- a/test/vk-gl-cts/rasterization/line_continuity/line-strip/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/rasterization/line_continuity/line-strip/0.spvasm.expected.spvasm
@@ -1,52 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 26
+; Bound: 25
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %color_1_1 "color_1_1"
                OpName %color "color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-      %color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+  %color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+      %color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
          %13 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-         %14 = OpTypeFunction %void %main_out
+         %14 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
                OpStore %color %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %14
-%tint_symbol = OpFunctionParameter %main_out
-         %18 = OpLabel
-         %19 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %19
-               OpReturn
+ %main_inner = OpFunction %main_out None %14
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %main_1
+         %19 = OpLoad %v4float %color
+         %20 = OpCompositeConstruct %main_out %19
+               OpReturnValue %20
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %21 = OpLabel
-         %22 = OpFunctionCall %void %main_1
-         %24 = OpLoad %v4float %color
-         %25 = OpCompositeConstruct %main_out %24
-         %23 = OpFunctionCall %void %tint_symbol_2 %25
+         %22 = OpLabel
+         %23 = OpFunctionCall %main_out %main_inner
+         %24 = OpCompositeExtract %v4float %23 0
+               OpStore %color_1_1 %24
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/rasterization/line_continuity/line-strip/0.wgsl.expected.spvasm b/test/vk-gl-cts/rasterization/line_continuity/line-strip/0.wgsl.expected.spvasm
index 7964ca8..3331626 100644
--- a/test/vk-gl-cts/rasterization/line_continuity/line-strip/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/rasterization/line_continuity/line-strip/0.wgsl.expected.spvasm
@@ -1,52 +1,50 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 26
+; Bound: 25
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1
+               OpEntryPoint Fragment %main "main" %color_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %color_1_1 "color_1_1"
                OpName %color "color"
-               OpName %tint_symbol_1 "tint_symbol_1"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "color_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
+               OpDecorate %color_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-      %color = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
+          %5 = OpConstantNull %v4float
+  %color_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+      %color = OpVariable %_ptr_Private_v4float Private %5
        %void = OpTypeVoid
           %8 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
          %13 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
    %main_out = OpTypeStruct %v4float
-         %14 = OpTypeFunction %void %main_out
+         %14 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %8
          %11 = OpLabel
                OpStore %color %13
                OpReturn
                OpFunctionEnd
-%tint_symbol_2 = OpFunction %void None %14
-%tint_symbol = OpFunctionParameter %main_out
-         %18 = OpLabel
-         %19 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %19
-               OpReturn
+ %main_inner = OpFunction %main_out None %14
+         %17 = OpLabel
+         %18 = OpFunctionCall %void %main_1
+         %19 = OpLoad %v4float %color
+         %20 = OpCompositeConstruct %main_out %19
+               OpReturnValue %20
                OpFunctionEnd
        %main = OpFunction %void None %8
-         %21 = OpLabel
-         %22 = OpFunctionCall %void %main_1
-         %24 = OpLoad %v4float %color
-         %25 = OpCompositeConstruct %main_out %24
-         %23 = OpFunctionCall %void %tint_symbol_2 %25
+         %22 = OpLabel
+         %23 = OpFunctionCall %main_out %main_inner
+         %24 = OpCompositeExtract %v4float %23 0
+               OpStore %color_1_1 %24
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/rasterization/line_continuity/line-strip/1.spvasm.expected.spvasm b/test/vk-gl-cts/rasterization/line_continuity/line-strip/1.spvasm.expected.spvasm
index bbb25d8..673f459 100644
--- a/test/vk-gl-cts/rasterization/line_continuity/line-strip/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/rasterization/line_continuity/line-strip/1.spvasm.expected.spvasm
@@ -6,49 +6,49 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %color_out_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %color_out_1_1 "color_out_1_1"
                OpName %color_out "color_out"
                OpName %texture "texture"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "color_out_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %color_out_1_1 Location 0
                OpDecorate %texture NonWritable
                OpDecorate %texture DescriptorSet 0
                OpDecorate %texture Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-  %color_out = OpVariable %_ptr_Private_v4float Private %5
-          %8 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
-    %texture = OpVariable %_ptr_UniformConstant_8 UniformConstant
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%color_out_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+  %color_out = OpVariable %_ptr_Private_v4float Private %7
+         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
+    %texture = OpVariable %_ptr_UniformConstant_12 UniformConstant
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
     %v2float = OpTypeVector %float 2
    %main_out = OpTypeStruct %v4float
-         %28 = OpTypeFunction %void %main_out
+         %28 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %18 = OpLoad %v4float %gl_FragCoord
-         %20 = OpLoad %8 %texture
+         %20 = OpLoad %12 %texture
          %25 = OpCompositeExtract %float %18 0
          %26 = OpCompositeExtract %float %18 1
          %27 = OpCompositeConstruct %v2float %25 %26
@@ -57,20 +57,20 @@
                OpStore %color_out %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %28
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %28
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %32 = OpLabel
-         %33 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %33
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %33 = OpFunctionCall %void %main_1
+         %34 = OpLoad %v4float %color_out
+         %35 = OpCompositeConstruct %main_out %34
+               OpReturnValue %35
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %35 = OpLabel
-         %36 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %36
-         %37 = OpFunctionCall %void %main_1
-         %39 = OpLoad %v4float %color_out
-         %40 = OpCompositeConstruct %main_out %39
-         %38 = OpFunctionCall %void %tint_symbol_3 %40
+         %37 = OpLabel
+         %39 = OpLoad %v4float %gl_FragCoord_param_1
+         %38 = OpFunctionCall %main_out %main_inner %39
+         %40 = OpCompositeExtract %v4float %38 0
+               OpStore %color_out_1_1 %40
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/rasterization/line_continuity/line-strip/1.wgsl.expected.spvasm b/test/vk-gl-cts/rasterization/line_continuity/line-strip/1.wgsl.expected.spvasm
index 3f55c6b..7a720f7 100644
--- a/test/vk-gl-cts/rasterization/line_continuity/line-strip/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/rasterization/line_continuity/line-strip/1.wgsl.expected.spvasm
@@ -9,49 +9,49 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %color_out_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %color_out_1_1 "color_out_1_1"
                OpName %color_out "color_out"
                OpName %texture "texture"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "color_out_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %color_out_1_1 Location 0
                OpDecorate %texture NonWritable
                OpDecorate %texture DescriptorSet 0
                OpDecorate %texture Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-  %color_out = OpVariable %_ptr_Private_v4float Private %5
-          %8 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
-    %texture = OpVariable %_ptr_UniformConstant_8 UniformConstant
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%color_out_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+  %color_out = OpVariable %_ptr_Private_v4float Private %7
+         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
+    %texture = OpVariable %_ptr_UniformConstant_12 UniformConstant
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
     %v2float = OpTypeVector %float 2
    %main_out = OpTypeStruct %v4float
-         %28 = OpTypeFunction %void %main_out
+         %28 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %18 = OpLoad %v4float %gl_FragCoord
-         %20 = OpLoad %8 %texture
+         %20 = OpLoad %12 %texture
          %25 = OpCompositeExtract %float %18 0
          %26 = OpCompositeExtract %float %18 1
          %27 = OpCompositeConstruct %v2float %25 %26
@@ -60,20 +60,20 @@
                OpStore %color_out %19
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %28
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %28
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %32 = OpLabel
-         %33 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %33
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %33 = OpFunctionCall %void %main_1
+         %34 = OpLoad %v4float %color_out
+         %35 = OpCompositeConstruct %main_out %34
+               OpReturnValue %35
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %35 = OpLabel
-         %36 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %36
-         %37 = OpFunctionCall %void %main_1
-         %39 = OpLoad %v4float %color_out
-         %40 = OpCompositeConstruct %main_out %39
-         %38 = OpFunctionCall %void %tint_symbol_3 %40
+         %37 = OpLabel
+         %39 = OpLoad %v4float %gl_FragCoord_param_1
+         %38 = OpFunctionCall %main_out %main_inner %39
+         %40 = OpCompositeExtract %v4float %38 0
+               OpStore %color_out_1_1 %40
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.spvasm
index 21ad2a6..99b735b 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.spvasm
@@ -1,21 +1,24 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_2_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_2_param_1 "x_2_param_1"
                OpName %x_2 "x_2"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpName %x_5 "x_5"
                OpName %x_6 "x_6"
                OpName %x_7 "x_7"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
                OpName %main "main"
+               OpDecorate %x_2_param_1 BuiltIn GlobalInvocationId
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
@@ -25,20 +28,19 @@
                OpDecorate %x_6 Binding 1
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 2
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%x_2_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_2 = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+        %x_2 = OpVariable %_ptr_Private_v3uint Private %7
 %_runtimearr_uint = OpTypeRuntimeArray %uint
           %S = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
         %x_5 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_6 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_7 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -47,6 +49,7 @@
         %int = OpTypeInt 32 1
        %bool = OpTypeBool
      %uint_1 = OpConstant %uint 1
+         %35 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %20 = OpAccessChain %_ptr_Private_uint %x_2 %uint_0
@@ -63,10 +66,16 @@
                OpStore %27 %28
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %35
+  %x_2_param = OpFunctionParameter %v3uint
+         %38 = OpLabel
+               OpStore %x_2 %x_2_param
+         %39 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %14
-         %36 = OpLabel
-         %37 = OpLoad %v3uint %tint_symbol
-               OpStore %x_2 %37
-         %38 = OpFunctionCall %void %main_1
+         %41 = OpLabel
+         %43 = OpLoad %v3uint %x_2_param_1
+         %42 = OpFunctionCall %void %main_inner %43
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.spvasm
index 21ad2a6..99b735b 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.spvasm
@@ -1,21 +1,24 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_2_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_2_param_1 "x_2_param_1"
                OpName %x_2 "x_2"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpName %x_5 "x_5"
                OpName %x_6 "x_6"
                OpName %x_7 "x_7"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
                OpName %main "main"
+               OpDecorate %x_2_param_1 BuiltIn GlobalInvocationId
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
@@ -25,20 +28,19 @@
                OpDecorate %x_6 Binding 1
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 2
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%x_2_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_2 = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+        %x_2 = OpVariable %_ptr_Private_v3uint Private %7
 %_runtimearr_uint = OpTypeRuntimeArray %uint
           %S = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
         %x_5 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_6 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_7 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -47,6 +49,7 @@
         %int = OpTypeInt 32 1
        %bool = OpTypeBool
      %uint_1 = OpConstant %uint 1
+         %35 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %20 = OpAccessChain %_ptr_Private_uint %x_2 %uint_0
@@ -63,10 +66,16 @@
                OpStore %27 %28
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %35
+  %x_2_param = OpFunctionParameter %v3uint
+         %38 = OpLabel
+               OpStore %x_2 %x_2_param
+         %39 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %14
-         %36 = OpLabel
-         %37 = OpLoad %v3uint %tint_symbol
-               OpStore %x_2 %37
-         %38 = OpFunctionCall %void %main_1
+         %41 = OpLabel
+         %43 = OpLoad %v3uint %x_2_param_1
+         %42 = OpFunctionCall %void %main_inner %43
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.spvasm
index b55f16e..50ed035 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.spvasm
@@ -1,21 +1,24 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_2_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_2_param_1 "x_2_param_1"
                OpName %x_2 "x_2"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpName %x_5 "x_5"
                OpName %x_6 "x_6"
                OpName %x_7 "x_7"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
                OpName %main "main"
+               OpDecorate %x_2_param_1 BuiltIn GlobalInvocationId
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
@@ -25,20 +28,19 @@
                OpDecorate %x_6 Binding 1
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 2
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%x_2_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_2 = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+        %x_2 = OpVariable %_ptr_Private_v3uint Private %7
 %_runtimearr_uint = OpTypeRuntimeArray %uint
           %S = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
         %x_5 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_6 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_7 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -47,6 +49,7 @@
         %int = OpTypeInt 32 1
        %bool = OpTypeBool
      %uint_1 = OpConstant %uint 1
+         %35 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %20 = OpAccessChain %_ptr_Private_uint %x_2 %uint_0
@@ -63,10 +66,16 @@
                OpStore %27 %28
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %35
+  %x_2_param = OpFunctionParameter %v3uint
+         %38 = OpLabel
+               OpStore %x_2 %x_2_param
+         %39 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %14
-         %36 = OpLabel
-         %37 = OpLoad %v3uint %tint_symbol
-               OpStore %x_2 %37
-         %38 = OpFunctionCall %void %main_1
+         %41 = OpLabel
+         %43 = OpLoad %v3uint %x_2_param_1
+         %42 = OpFunctionCall %void %main_inner %43
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.spvasm
index b55f16e..50ed035 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.spvasm
@@ -1,21 +1,24 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_2_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_2_param_1 "x_2_param_1"
                OpName %x_2 "x_2"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpName %x_5 "x_5"
                OpName %x_6 "x_6"
                OpName %x_7 "x_7"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
                OpName %main "main"
+               OpDecorate %x_2_param_1 BuiltIn GlobalInvocationId
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
@@ -25,20 +28,19 @@
                OpDecorate %x_6 Binding 1
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 2
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%x_2_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_2 = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+        %x_2 = OpVariable %_ptr_Private_v3uint Private %7
 %_runtimearr_uint = OpTypeRuntimeArray %uint
           %S = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
         %x_5 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_6 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_7 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -47,6 +49,7 @@
         %int = OpTypeInt 32 1
        %bool = OpTypeBool
      %uint_1 = OpConstant %uint 1
+         %35 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %20 = OpAccessChain %_ptr_Private_uint %x_2 %uint_0
@@ -63,10 +66,16 @@
                OpStore %27 %28
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %35
+  %x_2_param = OpFunctionParameter %v3uint
+         %38 = OpLabel
+               OpStore %x_2 %x_2_param
+         %39 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %14
-         %36 = OpLabel
-         %37 = OpLoad %v3uint %tint_symbol
-               OpStore %x_2 %37
-         %38 = OpFunctionCall %void %main_1
+         %41 = OpLabel
+         %43 = OpLoad %v3uint %x_2_param_1
+         %42 = OpFunctionCall %void %main_inner %43
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.spvasm
index 19b5307..c6e2686 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.spvasm
@@ -1,21 +1,24 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_2_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_2_param_1 "x_2_param_1"
                OpName %x_2 "x_2"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpName %x_5 "x_5"
                OpName %x_6 "x_6"
                OpName %x_7 "x_7"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
                OpName %main "main"
+               OpDecorate %x_2_param_1 BuiltIn GlobalInvocationId
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
@@ -25,20 +28,19 @@
                OpDecorate %x_6 Binding 1
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 2
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%x_2_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_2 = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+        %x_2 = OpVariable %_ptr_Private_v3uint Private %7
 %_runtimearr_uint = OpTypeRuntimeArray %uint
           %S = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
         %x_5 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_6 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_7 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -47,6 +49,7 @@
         %int = OpTypeInt 32 1
        %bool = OpTypeBool
      %uint_1 = OpConstant %uint 1
+         %35 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %20 = OpAccessChain %_ptr_Private_uint %x_2 %uint_0
@@ -63,10 +66,16 @@
                OpStore %27 %28
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %35
+  %x_2_param = OpFunctionParameter %v3uint
+         %38 = OpLabel
+               OpStore %x_2 %x_2_param
+         %39 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %14
-         %36 = OpLabel
-         %37 = OpLoad %v3uint %tint_symbol
-               OpStore %x_2 %37
-         %38 = OpFunctionCall %void %main_1
+         %41 = OpLabel
+         %43 = OpLoad %v3uint %x_2_param_1
+         %42 = OpFunctionCall %void %main_inner %43
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.spvasm
index 19b5307..c6e2686 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.spvasm
@@ -1,21 +1,24 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_2_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_2_param_1 "x_2_param_1"
                OpName %x_2 "x_2"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpName %x_5 "x_5"
                OpName %x_6 "x_6"
                OpName %x_7 "x_7"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
                OpName %main "main"
+               OpDecorate %x_2_param_1 BuiltIn GlobalInvocationId
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
@@ -25,20 +28,19 @@
                OpDecorate %x_6 Binding 1
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 2
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%x_2_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_2 = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+        %x_2 = OpVariable %_ptr_Private_v3uint Private %7
 %_runtimearr_uint = OpTypeRuntimeArray %uint
           %S = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
         %x_5 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_6 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_7 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -47,6 +49,7 @@
         %int = OpTypeInt 32 1
        %bool = OpTypeBool
      %uint_1 = OpConstant %uint 1
+         %35 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %20 = OpAccessChain %_ptr_Private_uint %x_2 %uint_0
@@ -63,10 +66,16 @@
                OpStore %27 %28
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %35
+  %x_2_param = OpFunctionParameter %v3uint
+         %38 = OpLabel
+               OpStore %x_2 %x_2_param
+         %39 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %14
-         %36 = OpLabel
-         %37 = OpLoad %v3uint %tint_symbol
-               OpStore %x_2 %37
-         %38 = OpFunctionCall %void %main_1
+         %41 = OpLabel
+         %43 = OpLoad %v3uint %x_2_param_1
+         %42 = OpFunctionCall %void %main_inner %43
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.spvasm
index 830ac7d..6590d65 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.spvasm
@@ -1,21 +1,24 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_2_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_2_param_1 "x_2_param_1"
                OpName %x_2 "x_2"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpName %x_5 "x_5"
                OpName %x_6 "x_6"
                OpName %x_7 "x_7"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
                OpName %main "main"
+               OpDecorate %x_2_param_1 BuiltIn GlobalInvocationId
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
@@ -25,20 +28,19 @@
                OpDecorate %x_6 Binding 1
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 2
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%x_2_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_2 = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+        %x_2 = OpVariable %_ptr_Private_v3uint Private %7
 %_runtimearr_uint = OpTypeRuntimeArray %uint
           %S = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
         %x_5 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_6 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_7 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -47,6 +49,7 @@
         %int = OpTypeInt 32 1
        %bool = OpTypeBool
      %uint_1 = OpConstant %uint 1
+         %35 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %20 = OpAccessChain %_ptr_Private_uint %x_2 %uint_0
@@ -63,10 +66,16 @@
                OpStore %27 %28
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %35
+  %x_2_param = OpFunctionParameter %v3uint
+         %38 = OpLabel
+               OpStore %x_2 %x_2_param
+         %39 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %14
-         %36 = OpLabel
-         %37 = OpLoad %v3uint %tint_symbol
-               OpStore %x_2 %37
-         %38 = OpFunctionCall %void %main_1
+         %41 = OpLabel
+         %43 = OpLoad %v3uint %x_2_param_1
+         %42 = OpFunctionCall %void %main_inner %43
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.spvasm
index 830ac7d..6590d65 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.spvasm
@@ -1,21 +1,24 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 39
+; Bound: 44
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_2_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_2_param_1 "x_2_param_1"
                OpName %x_2 "x_2"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpName %x_5 "x_5"
                OpName %x_6 "x_6"
                OpName %x_7 "x_7"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
                OpName %main "main"
+               OpDecorate %x_2_param_1 BuiltIn GlobalInvocationId
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
@@ -25,20 +28,19 @@
                OpDecorate %x_6 Binding 1
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 2
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%x_2_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_2 = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+        %x_2 = OpVariable %_ptr_Private_v3uint Private %7
 %_runtimearr_uint = OpTypeRuntimeArray %uint
           %S = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
         %x_5 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_6 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_7 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -47,6 +49,7 @@
         %int = OpTypeInt 32 1
        %bool = OpTypeBool
      %uint_1 = OpConstant %uint 1
+         %35 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %20 = OpAccessChain %_ptr_Private_uint %x_2 %uint_0
@@ -63,10 +66,16 @@
                OpStore %27 %28
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %35
+  %x_2_param = OpFunctionParameter %v3uint
+         %38 = OpLabel
+               OpStore %x_2 %x_2_param
+         %39 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %14
-         %36 = OpLabel
-         %37 = OpLoad %v3uint %tint_symbol
-               OpStore %x_2 %37
-         %38 = OpFunctionCall %void %main_1
+         %41 = OpLabel
+         %43 = OpLoad %v3uint %x_2_param_1
+         %42 = OpFunctionCall %void %main_inner %43
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.spvasm
index 2f44746..ecaadcb 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
          %34 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_3_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_3_param_1 "x_3_param_1"
                OpName %x_3 "x_3"
                OpName %S "S"
                OpMemberName %S 0 "field0"
@@ -15,9 +16,11 @@
                OpName %x_7 "x_7"
                OpName %x_8 "x_8"
                OpName %x_9 "x_9"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
+               OpDecorate %x_3_param_1 BuiltIn GlobalInvocationId
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_int ArrayStride 4
@@ -29,12 +32,13 @@
                OpDecorate %x_8 Binding 2
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 3
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%x_3_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_3 = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+        %x_3 = OpVariable %_ptr_Private_v3uint Private %7
         %int = OpTypeInt 32 1
 %_runtimearr_int = OpTypeRuntimeArray %int
           %S = OpTypeStruct %_runtimearr_int
@@ -43,13 +47,12 @@
         %x_7 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_8 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_9 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_uint = OpTypePointer Private %uint
 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+         %38 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %16
          %19 = OpLabel
          %22 = OpAccessChain %_ptr_Private_uint %x_3 %uint_0
@@ -69,10 +72,16 @@
                OpStore %31 %32
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %38
+  %x_3_param = OpFunctionParameter %v3uint
+         %41 = OpLabel
+               OpStore %x_3 %x_3_param
+         %42 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %16
-         %39 = OpLabel
-         %40 = OpLoad %v3uint %tint_symbol
-               OpStore %x_3 %40
-         %41 = OpFunctionCall %void %main_1
+         %44 = OpLabel
+         %46 = OpLoad %v3uint %x_3_param_1
+         %45 = OpFunctionCall %void %main_inner %46
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.spvasm
index 2f44746..ecaadcb 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
          %34 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_3_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_3_param_1 "x_3_param_1"
                OpName %x_3 "x_3"
                OpName %S "S"
                OpMemberName %S 0 "field0"
@@ -15,9 +16,11 @@
                OpName %x_7 "x_7"
                OpName %x_8 "x_8"
                OpName %x_9 "x_9"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
+               OpDecorate %x_3_param_1 BuiltIn GlobalInvocationId
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_int ArrayStride 4
@@ -29,12 +32,13 @@
                OpDecorate %x_8 Binding 2
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 3
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%x_3_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_3 = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+        %x_3 = OpVariable %_ptr_Private_v3uint Private %7
         %int = OpTypeInt 32 1
 %_runtimearr_int = OpTypeRuntimeArray %int
           %S = OpTypeStruct %_runtimearr_int
@@ -43,13 +47,12 @@
         %x_7 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_8 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_9 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_uint = OpTypePointer Private %uint
 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+         %38 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %16
          %19 = OpLabel
          %22 = OpAccessChain %_ptr_Private_uint %x_3 %uint_0
@@ -69,10 +72,16 @@
                OpStore %31 %32
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %38
+  %x_3_param = OpFunctionParameter %v3uint
+         %41 = OpLabel
+               OpStore %x_3 %x_3_param
+         %42 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %16
-         %39 = OpLabel
-         %40 = OpLoad %v3uint %tint_symbol
-               OpStore %x_3 %40
-         %41 = OpFunctionCall %void %main_1
+         %44 = OpLabel
+         %46 = OpLoad %v3uint %x_3_param_1
+         %45 = OpFunctionCall %void %main_inner %46
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.spvasm
index 866a110..53216ba 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.spvasm
@@ -1,21 +1,24 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
          %28 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_3_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_3_param_1 "x_3_param_1"
                OpName %x_3 "x_3"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpName %x_6 "x_6"
                OpName %x_7 "x_7"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
+               OpDecorate %x_3_param_1 BuiltIn GlobalInvocationId
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
@@ -23,25 +26,25 @@
                OpDecorate %x_6 Binding 0
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 1
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%x_3_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_3 = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+        %x_3 = OpVariable %_ptr_Private_v3uint Private %7
 %_runtimearr_uint = OpTypeRuntimeArray %uint
           %S = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
         %x_6 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_7 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_uint = OpTypePointer Private %uint
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
         %int = OpTypeInt 32 1
+         %30 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
          %19 = OpAccessChain %_ptr_Private_uint %x_3 %uint_0
@@ -55,10 +58,16 @@
                OpStore %24 %25
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %30
+  %x_3_param = OpFunctionParameter %v3uint
+         %33 = OpLabel
+               OpStore %x_3 %x_3_param
+         %34 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpLoad %v3uint %tint_symbol
-               OpStore %x_3 %32
-         %33 = OpFunctionCall %void %main_1
+         %36 = OpLabel
+         %38 = OpLoad %v3uint %x_3_param_1
+         %37 = OpFunctionCall %void %main_inner %38
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.spvasm
index 866a110..53216ba 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.spvasm
@@ -1,21 +1,24 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 39
 ; Schema: 0
                OpCapability Shader
          %28 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_3_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_3_param_1 "x_3_param_1"
                OpName %x_3 "x_3"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpName %x_6 "x_6"
                OpName %x_7 "x_7"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
+               OpDecorate %x_3_param_1 BuiltIn GlobalInvocationId
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
@@ -23,25 +26,25 @@
                OpDecorate %x_6 Binding 0
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 1
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%x_3_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_3 = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+        %x_3 = OpVariable %_ptr_Private_v3uint Private %7
 %_runtimearr_uint = OpTypeRuntimeArray %uint
           %S = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
         %x_6 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_7 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_uint = OpTypePointer Private %uint
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
         %int = OpTypeInt 32 1
+         %30 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
          %19 = OpAccessChain %_ptr_Private_uint %x_3 %uint_0
@@ -55,10 +58,16 @@
                OpStore %24 %25
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %30
+  %x_3_param = OpFunctionParameter %v3uint
+         %33 = OpLabel
+               OpStore %x_3 %x_3_param
+         %34 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %13
-         %31 = OpLabel
-         %32 = OpLoad %v3uint %tint_symbol
-               OpStore %x_3 %32
-         %33 = OpFunctionCall %void %main_1
+         %36 = OpLabel
+         %38 = OpLoad %v3uint %x_3_param_1
+         %37 = OpFunctionCall %void %main_inner %38
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.spvasm
index 35000ef..1453ca0 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
          %34 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_3_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_3_param_1 "x_3_param_1"
                OpName %x_3 "x_3"
                OpName %S "S"
                OpMemberName %S 0 "field0"
@@ -15,9 +16,11 @@
                OpName %x_7 "x_7"
                OpName %x_8 "x_8"
                OpName %x_9 "x_9"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
+               OpDecorate %x_3_param_1 BuiltIn GlobalInvocationId
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
@@ -29,12 +32,13 @@
                OpDecorate %x_8 Binding 2
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 3
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%x_3_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_3 = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+        %x_3 = OpVariable %_ptr_Private_v3uint Private %7
 %_runtimearr_uint = OpTypeRuntimeArray %uint
           %S = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
@@ -42,14 +46,13 @@
         %x_7 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_8 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_9 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_uint = OpTypePointer Private %uint
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
         %int = OpTypeInt 32 1
+         %38 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
          %21 = OpAccessChain %_ptr_Private_uint %x_3 %uint_0
@@ -69,10 +72,16 @@
                OpStore %30 %31
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %38
+  %x_3_param = OpFunctionParameter %v3uint
+         %41 = OpLabel
+               OpStore %x_3 %x_3_param
+         %42 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %15
-         %39 = OpLabel
-         %40 = OpLoad %v3uint %tint_symbol
-               OpStore %x_3 %40
-         %41 = OpFunctionCall %void %main_1
+         %44 = OpLabel
+         %46 = OpLoad %v3uint %x_3_param_1
+         %45 = OpFunctionCall %void %main_inner %46
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.spvasm
index 35000ef..1453ca0 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.spvasm
@@ -1,13 +1,14 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 42
+; Bound: 47
 ; Schema: 0
                OpCapability Shader
          %34 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_3_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_3_param_1 "x_3_param_1"
                OpName %x_3 "x_3"
                OpName %S "S"
                OpMemberName %S 0 "field0"
@@ -15,9 +16,11 @@
                OpName %x_7 "x_7"
                OpName %x_8 "x_8"
                OpName %x_9 "x_9"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
+               OpDecorate %x_3_param_1 BuiltIn GlobalInvocationId
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
@@ -29,12 +32,13 @@
                OpDecorate %x_8 Binding 2
                OpDecorate %x_9 DescriptorSet 0
                OpDecorate %x_9 Binding 3
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%x_3_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_3 = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+        %x_3 = OpVariable %_ptr_Private_v3uint Private %7
 %_runtimearr_uint = OpTypeRuntimeArray %uint
           %S = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
@@ -42,14 +46,13 @@
         %x_7 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_8 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_9 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %15 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_uint = OpTypePointer Private %uint
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
         %int = OpTypeInt 32 1
+         %38 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %15
          %18 = OpLabel
          %21 = OpAccessChain %_ptr_Private_uint %x_3 %uint_0
@@ -69,10 +72,16 @@
                OpStore %30 %31
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %38
+  %x_3_param = OpFunctionParameter %v3uint
+         %41 = OpLabel
+               OpStore %x_3 %x_3_param
+         %42 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %15
-         %39 = OpLabel
-         %40 = OpLoad %v3uint %tint_symbol
-               OpStore %x_3 %40
-         %41 = OpFunctionCall %void %main_1
+         %44 = OpLabel
+         %46 = OpLoad %v3uint %x_3_param_1
+         %45 = OpFunctionCall %void %main_inner %46
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.spvasm
index 9f6c616..a2d9363 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.spvasm
@@ -1,22 +1,25 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
          %31 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_3_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_3_param_1 "x_3_param_1"
                OpName %x_3 "x_3"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpName %x_6 "x_6"
                OpName %x_7 "x_7"
                OpName %x_8 "x_8"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
+               OpDecorate %x_3_param_1 BuiltIn GlobalInvocationId
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
@@ -26,26 +29,26 @@
                OpDecorate %x_7 Binding 1
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 2
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%x_3_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_3 = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+        %x_3 = OpVariable %_ptr_Private_v3uint Private %7
 %_runtimearr_uint = OpTypeRuntimeArray %uint
           %S = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
         %x_6 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_7 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_8 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_uint = OpTypePointer Private %uint
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
         %int = OpTypeInt 32 1
+         %34 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %20 = OpAccessChain %_ptr_Private_uint %x_3 %uint_0
@@ -62,10 +65,16 @@
                OpStore %27 %28
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %34
+  %x_3_param = OpFunctionParameter %v3uint
+         %37 = OpLabel
+               OpStore %x_3 %x_3_param
+         %38 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %14
-         %35 = OpLabel
-         %36 = OpLoad %v3uint %tint_symbol
-               OpStore %x_3 %36
-         %37 = OpFunctionCall %void %main_1
+         %40 = OpLabel
+         %42 = OpLoad %v3uint %x_3_param_1
+         %41 = OpFunctionCall %void %main_inner %42
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.spvasm
index 9f6c616..a2d9363 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.spvasm
@@ -1,22 +1,25 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
          %31 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_3_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_3_param_1 "x_3_param_1"
                OpName %x_3 "x_3"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpName %x_6 "x_6"
                OpName %x_7 "x_7"
                OpName %x_8 "x_8"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
+               OpDecorate %x_3_param_1 BuiltIn GlobalInvocationId
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
@@ -26,26 +29,26 @@
                OpDecorate %x_7 Binding 1
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 2
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%x_3_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_3 = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+        %x_3 = OpVariable %_ptr_Private_v3uint Private %7
 %_runtimearr_uint = OpTypeRuntimeArray %uint
           %S = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
         %x_6 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_7 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_8 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_uint = OpTypePointer Private %uint
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
         %int = OpTypeInt 32 1
+         %34 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %20 = OpAccessChain %_ptr_Private_uint %x_3 %uint_0
@@ -62,10 +65,16 @@
                OpStore %27 %28
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %34
+  %x_3_param = OpFunctionParameter %v3uint
+         %37 = OpLabel
+               OpStore %x_3 %x_3_param
+         %38 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %14
-         %35 = OpLabel
-         %36 = OpLoad %v3uint %tint_symbol
-               OpStore %x_3 %36
-         %37 = OpFunctionCall %void %main_1
+         %40 = OpLabel
+         %42 = OpLoad %v3uint %x_3_param_1
+         %41 = OpFunctionCall %void %main_inner %42
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.spvasm
index 46045f1..35ca746 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.spvasm
@@ -1,22 +1,25 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
          %31 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_3_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_3_param_1 "x_3_param_1"
                OpName %x_3 "x_3"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpName %x_6 "x_6"
                OpName %x_7 "x_7"
                OpName %x_8 "x_8"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
+               OpDecorate %x_3_param_1 BuiltIn GlobalInvocationId
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
@@ -26,26 +29,26 @@
                OpDecorate %x_7 Binding 1
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 2
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%x_3_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_3 = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+        %x_3 = OpVariable %_ptr_Private_v3uint Private %7
 %_runtimearr_uint = OpTypeRuntimeArray %uint
           %S = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
         %x_6 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_7 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_8 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_uint = OpTypePointer Private %uint
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
         %int = OpTypeInt 32 1
+         %34 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %20 = OpAccessChain %_ptr_Private_uint %x_3 %uint_0
@@ -62,10 +65,16 @@
                OpStore %27 %28
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %34
+  %x_3_param = OpFunctionParameter %v3uint
+         %37 = OpLabel
+               OpStore %x_3 %x_3_param
+         %38 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %14
-         %35 = OpLabel
-         %36 = OpLoad %v3uint %tint_symbol
-               OpStore %x_3 %36
-         %37 = OpFunctionCall %void %main_1
+         %40 = OpLabel
+         %42 = OpLoad %v3uint %x_3_param_1
+         %41 = OpFunctionCall %void %main_inner %42
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.spvasm
index 46045f1..35ca746 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.spvasm
@@ -1,22 +1,25 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 38
+; Bound: 43
 ; Schema: 0
                OpCapability Shader
          %31 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_3_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_3_param_1 "x_3_param_1"
                OpName %x_3 "x_3"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpName %x_6 "x_6"
                OpName %x_7 "x_7"
                OpName %x_8 "x_8"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
+               OpDecorate %x_3_param_1 BuiltIn GlobalInvocationId
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
@@ -26,26 +29,26 @@
                OpDecorate %x_7 Binding 1
                OpDecorate %x_8 DescriptorSet 0
                OpDecorate %x_8 Binding 2
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%x_3_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_3 = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+        %x_3 = OpVariable %_ptr_Private_v3uint Private %7
 %_runtimearr_uint = OpTypeRuntimeArray %uint
           %S = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
         %x_6 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_7 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_8 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_uint = OpTypePointer Private %uint
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
         %int = OpTypeInt 32 1
+         %34 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %20 = OpAccessChain %_ptr_Private_uint %x_3 %uint_0
@@ -62,10 +65,16 @@
                OpStore %27 %28
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %34
+  %x_3_param = OpFunctionParameter %v3uint
+         %37 = OpLabel
+               OpStore %x_3 %x_3_param
+         %38 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %14
-         %35 = OpLabel
-         %36 = OpLoad %v3uint %tint_symbol
-               OpStore %x_3 %36
-         %37 = OpFunctionCall %void %main_1
+         %40 = OpLabel
+         %42 = OpLoad %v3uint %x_3_param_1
+         %41 = OpFunctionCall %void %main_inner %42
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.spvasm.expected.spvasm
index 5b924e4..34651de 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.spvasm.expected.spvasm
@@ -1,21 +1,24 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_2_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_2_param_1 "x_2_param_1"
                OpName %x_2 "x_2"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpName %x_5 "x_5"
                OpName %x_6 "x_6"
                OpName %x_7 "x_7"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
                OpName %main "main"
+               OpDecorate %x_2_param_1 BuiltIn GlobalInvocationId
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
@@ -25,26 +28,26 @@
                OpDecorate %x_6 Binding 1
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 2
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%x_2_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_2 = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+        %x_2 = OpVariable %_ptr_Private_v3uint Private %7
 %_runtimearr_uint = OpTypeRuntimeArray %uint
           %S = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
         %x_5 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_6 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_7 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_uint = OpTypePointer Private %uint
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
         %int = OpTypeInt 32 1
+         %33 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %20 = OpAccessChain %_ptr_Private_uint %x_2 %uint_0
@@ -61,10 +64,16 @@
                OpStore %27 %28
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %33
+  %x_2_param = OpFunctionParameter %v3uint
+         %36 = OpLabel
+               OpStore %x_2 %x_2_param
+         %37 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %14
-         %34 = OpLabel
-         %35 = OpLoad %v3uint %tint_symbol
-               OpStore %x_2 %35
-         %36 = OpFunctionCall %void %main_1
+         %39 = OpLabel
+         %41 = OpLoad %v3uint %x_2_param_1
+         %40 = OpFunctionCall %void %main_inner %41
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.wgsl.expected.spvasm
index 5b924e4..34651de 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.wgsl.expected.spvasm
@@ -1,21 +1,24 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 37
+; Bound: 42
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_2_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_2_param_1 "x_2_param_1"
                OpName %x_2 "x_2"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpName %x_5 "x_5"
                OpName %x_6 "x_6"
                OpName %x_7 "x_7"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
                OpName %main "main"
+               OpDecorate %x_2_param_1 BuiltIn GlobalInvocationId
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
@@ -25,26 +28,26 @@
                OpDecorate %x_6 Binding 1
                OpDecorate %x_7 DescriptorSet 0
                OpDecorate %x_7 Binding 2
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%x_2_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_2 = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+        %x_2 = OpVariable %_ptr_Private_v3uint Private %7
 %_runtimearr_uint = OpTypeRuntimeArray %uint
           %S = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
         %x_5 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_6 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_7 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_uint = OpTypePointer Private %uint
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
         %int = OpTypeInt 32 1
+         %33 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %20 = OpAccessChain %_ptr_Private_uint %x_2 %uint_0
@@ -61,10 +64,16 @@
                OpStore %27 %28
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %33
+  %x_2_param = OpFunctionParameter %v3uint
+         %36 = OpLabel
+               OpStore %x_2 %x_2_param
+         %37 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %14
-         %34 = OpLabel
-         %35 = OpLoad %v3uint %tint_symbol
-               OpStore %x_2 %35
-         %36 = OpFunctionCall %void %main_1
+         %39 = OpLabel
+         %41 = OpLoad %v3uint %x_2_param_1
+         %40 = OpFunctionCall %void %main_inner %41
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.spvasm
index 4ce732f..5bef5a6 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.spvasm
@@ -1,20 +1,23 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_2_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_2_param_1 "x_2_param_1"
                OpName %x_2 "x_2"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpName %x_5 "x_5"
                OpName %x_6 "x_6"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
                OpName %main "main"
+               OpDecorate %x_2_param_1 BuiltIn GlobalInvocationId
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
@@ -22,25 +25,25 @@
                OpDecorate %x_5 Binding 0
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 1
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%x_2_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_2 = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+        %x_2 = OpVariable %_ptr_Private_v3uint Private %7
 %_runtimearr_uint = OpTypeRuntimeArray %uint
           %S = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
         %x_5 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_6 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_uint = OpTypePointer Private %uint
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
         %int = OpTypeInt 32 1
+         %29 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
          %19 = OpAccessChain %_ptr_Private_uint %x_2 %uint_0
@@ -54,10 +57,16 @@
                OpStore %24 %25
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %29
+  %x_2_param = OpFunctionParameter %v3uint
+         %32 = OpLabel
+               OpStore %x_2 %x_2_param
+         %33 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %13
-         %30 = OpLabel
-         %31 = OpLoad %v3uint %tint_symbol
-               OpStore %x_2 %31
-         %32 = OpFunctionCall %void %main_1
+         %35 = OpLabel
+         %37 = OpLoad %v3uint %x_2_param_1
+         %36 = OpFunctionCall %void %main_inner %37
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.spvasm
index 4ce732f..5bef5a6 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.spvasm
@@ -1,20 +1,23 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 33
+; Bound: 38
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main" %tint_symbol
+               OpEntryPoint GLCompute %main "main" %x_2_param_1
                OpExecutionMode %main LocalSize 1 1 1
+               OpName %x_2_param_1 "x_2_param_1"
                OpName %x_2 "x_2"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpName %x_5 "x_5"
                OpName %x_6 "x_6"
-               OpName %tint_symbol "tint_symbol"
                OpName %main_1 "main_1"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
                OpName %main "main"
+               OpDecorate %x_2_param_1 BuiltIn GlobalInvocationId
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
@@ -22,25 +25,25 @@
                OpDecorate %x_5 Binding 0
                OpDecorate %x_6 DescriptorSet 0
                OpDecorate %x_6 Binding 1
-               OpDecorate %tint_symbol BuiltIn GlobalInvocationId
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%x_2_param_1 = OpVariable %_ptr_Input_v3uint Input
 %_ptr_Private_v3uint = OpTypePointer Private %v3uint
-          %5 = OpConstantNull %v3uint
-        %x_2 = OpVariable %_ptr_Private_v3uint Private %5
+          %7 = OpConstantNull %v3uint
+        %x_2 = OpVariable %_ptr_Private_v3uint Private %7
 %_runtimearr_uint = OpTypeRuntimeArray %uint
           %S = OpTypeStruct %_runtimearr_uint
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
         %x_5 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
         %x_6 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v3uint = OpTypePointer Input %v3uint
-%tint_symbol = OpVariable %_ptr_Input_v3uint Input
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
 %_ptr_Private_uint = OpTypePointer Private %uint
 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
         %int = OpTypeInt 32 1
+         %29 = OpTypeFunction %void %v3uint
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
          %19 = OpAccessChain %_ptr_Private_uint %x_2 %uint_0
@@ -54,10 +57,16 @@
                OpStore %24 %25
                OpReturn
                OpFunctionEnd
+ %main_inner = OpFunction %void None %29
+  %x_2_param = OpFunctionParameter %v3uint
+         %32 = OpLabel
+               OpStore %x_2 %x_2_param
+         %33 = OpFunctionCall %void %main_1
+               OpReturn
+               OpFunctionEnd
        %main = OpFunction %void None %13
-         %30 = OpLabel
-         %31 = OpLoad %v3uint %tint_symbol
-               OpStore %x_2 %31
-         %32 = OpFunctionCall %void %main_1
+         %35 = OpLabel
+         %37 = OpLoad %v3uint %x_2_param_1
+         %36 = OpFunctionCall %void %main_inner %37
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.spvasm.expected.spvasm
index b95f794..e91609f 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.spvasm.expected.spvasm
@@ -5,50 +5,50 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2 %tint_symbol_3
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_3_param_1 %x_4_1_1 %gl_Position_1 %vertex_point_size
+               OpName %x_3_param_1 "x_3_param_1"
+               OpName %x_4_1_1 "x_4_1_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_3 "x_3"
                OpName %x_4 "x_4"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_4_1"
                OpMemberName %main_out 1 "gl_Position"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 Location 0
-               OpDecorate %tint_symbol_2 Flat
-               OpDecorate %tint_symbol_3 BuiltIn Position
+               OpDecorate %x_3_param_1 Location 0
+               OpDecorate %x_4_1_1 Location 0
+               OpDecorate %x_4_1_1 Flat
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v2float = OpTypeVector %float 2
-%_ptr_Private_v2float = OpTypePointer Private %v2float
-          %8 = OpConstantNull %v2float
-        %x_3 = OpVariable %_ptr_Private_v2float Private %8
-       %uint = OpTypeInt 32 0
-%_ptr_Private_uint = OpTypePointer Private %uint
-         %12 = OpConstantNull %uint
-        %x_4 = OpVariable %_ptr_Private_uint Private %12
-    %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%gl_Position = OpVariable %_ptr_Private_v4float Private %16
 %_ptr_Input_v2float = OpTypePointer Input %v2float
-%tint_symbol = OpVariable %_ptr_Input_v2float Input
+%x_3_param_1 = OpVariable %_ptr_Input_v2float Input
+       %uint = OpTypeInt 32 0
 %_ptr_Output_uint = OpTypePointer Output %uint
-%tint_symbol_2 = OpVariable %_ptr_Output_uint Output %12
+          %8 = OpConstantNull %uint
+    %x_4_1_1 = OpVariable %_ptr_Output_uint Output %8
+    %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %16
+         %12 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %12
+%_ptr_Output_float = OpTypePointer Output %float
+         %15 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %15
+%_ptr_Private_v2float = OpTypePointer Private %v2float
+         %18 = OpConstantNull %v2float
+        %x_3 = OpVariable %_ptr_Private_v2float Private %18
+%_ptr_Private_uint = OpTypePointer Private %uint
+        %x_4 = OpVariable %_ptr_Private_uint Private %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_Position = OpVariable %_ptr_Private_v4float Private %12
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -60,7 +60,7 @@
     %uint_36 = OpConstant %uint 36
     %float_0 = OpConstant %float 0
    %main_out = OpTypeStruct %uint %v4float
-         %53 = OpTypeFunction %void %main_out
+         %53 = OpTypeFunction %main_out %v2float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
          %29 = OpAccessChain %_ptr_Private_float %x_3 %uint_0
@@ -85,24 +85,24 @@
                OpStore %gl_Position %52
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %53
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %53
+  %x_3_param = OpFunctionParameter %v2float
          %57 = OpLabel
-         %58 = OpCompositeExtract %uint %tint_symbol_1 0
-               OpStore %tint_symbol_2 %58
-         %59 = OpCompositeExtract %v4float %tint_symbol_1 1
-               OpStore %tint_symbol_3 %59
-               OpReturn
+               OpStore %x_3 %x_3_param
+         %58 = OpFunctionCall %void %main_1
+         %59 = OpLoad %uint %x_4
+         %60 = OpLoad %v4float %gl_Position
+         %61 = OpCompositeConstruct %main_out %59 %60
+               OpReturnValue %61
                OpFunctionEnd
        %main = OpFunction %void None %23
-         %61 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %62 = OpLoad %v2float %tint_symbol
-               OpStore %x_3 %62
-         %63 = OpFunctionCall %void %main_1
-         %65 = OpLoad %uint %x_4
-         %66 = OpLoad %v4float %gl_Position
-         %67 = OpCompositeConstruct %main_out %65 %66
-         %64 = OpFunctionCall %void %tint_symbol_4 %67
+         %63 = OpLabel
+         %65 = OpLoad %v2float %x_3_param_1
+         %64 = OpFunctionCall %main_out %main_inner %65
+         %66 = OpCompositeExtract %uint %64 0
+               OpStore %x_4_1_1 %66
+         %67 = OpCompositeExtract %v4float %64 1
+               OpStore %gl_Position_1 %67
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.wgsl.expected.spvasm
index b95f794..e91609f 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.wgsl.expected.spvasm
@@ -5,50 +5,50 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2 %tint_symbol_3
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_3_param_1 %x_4_1_1 %gl_Position_1 %vertex_point_size
+               OpName %x_3_param_1 "x_3_param_1"
+               OpName %x_4_1_1 "x_4_1_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_3 "x_3"
                OpName %x_4 "x_4"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_4_1"
                OpMemberName %main_out 1 "gl_Position"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 Location 0
-               OpDecorate %tint_symbol_2 Flat
-               OpDecorate %tint_symbol_3 BuiltIn Position
+               OpDecorate %x_3_param_1 Location 0
+               OpDecorate %x_4_1_1 Location 0
+               OpDecorate %x_4_1_1 Flat
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v2float = OpTypeVector %float 2
-%_ptr_Private_v2float = OpTypePointer Private %v2float
-          %8 = OpConstantNull %v2float
-        %x_3 = OpVariable %_ptr_Private_v2float Private %8
-       %uint = OpTypeInt 32 0
-%_ptr_Private_uint = OpTypePointer Private %uint
-         %12 = OpConstantNull %uint
-        %x_4 = OpVariable %_ptr_Private_uint Private %12
-    %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-         %16 = OpConstantNull %v4float
-%gl_Position = OpVariable %_ptr_Private_v4float Private %16
 %_ptr_Input_v2float = OpTypePointer Input %v2float
-%tint_symbol = OpVariable %_ptr_Input_v2float Input
+%x_3_param_1 = OpVariable %_ptr_Input_v2float Input
+       %uint = OpTypeInt 32 0
 %_ptr_Output_uint = OpTypePointer Output %uint
-%tint_symbol_2 = OpVariable %_ptr_Output_uint Output %12
+          %8 = OpConstantNull %uint
+    %x_4_1_1 = OpVariable %_ptr_Output_uint Output %8
+    %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_3 = OpVariable %_ptr_Output_v4float Output %16
+         %12 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %12
+%_ptr_Output_float = OpTypePointer Output %float
+         %15 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %15
+%_ptr_Private_v2float = OpTypePointer Private %v2float
+         %18 = OpConstantNull %v2float
+        %x_3 = OpVariable %_ptr_Private_v2float Private %18
+%_ptr_Private_uint = OpTypePointer Private %uint
+        %x_4 = OpVariable %_ptr_Private_uint Private %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_Position = OpVariable %_ptr_Private_v4float Private %12
        %void = OpTypeVoid
          %23 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
@@ -60,7 +60,7 @@
     %uint_36 = OpConstant %uint 36
     %float_0 = OpConstant %float 0
    %main_out = OpTypeStruct %uint %v4float
-         %53 = OpTypeFunction %void %main_out
+         %53 = OpTypeFunction %main_out %v2float
      %main_1 = OpFunction %void None %23
          %26 = OpLabel
          %29 = OpAccessChain %_ptr_Private_float %x_3 %uint_0
@@ -85,24 +85,24 @@
                OpStore %gl_Position %52
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %53
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %53
+  %x_3_param = OpFunctionParameter %v2float
          %57 = OpLabel
-         %58 = OpCompositeExtract %uint %tint_symbol_1 0
-               OpStore %tint_symbol_2 %58
-         %59 = OpCompositeExtract %v4float %tint_symbol_1 1
-               OpStore %tint_symbol_3 %59
-               OpReturn
+               OpStore %x_3 %x_3_param
+         %58 = OpFunctionCall %void %main_1
+         %59 = OpLoad %uint %x_4
+         %60 = OpLoad %v4float %gl_Position
+         %61 = OpCompositeConstruct %main_out %59 %60
+               OpReturnValue %61
                OpFunctionEnd
        %main = OpFunction %void None %23
-         %61 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %62 = OpLoad %v2float %tint_symbol
-               OpStore %x_3 %62
-         %63 = OpFunctionCall %void %main_1
-         %65 = OpLoad %uint %x_4
-         %66 = OpLoad %v4float %gl_Position
-         %67 = OpCompositeConstruct %main_out %65 %66
-         %64 = OpFunctionCall %void %tint_symbol_4 %67
+         %63 = OpLabel
+         %65 = OpLoad %v2float %x_3_param_1
+         %64 = OpFunctionCall %main_out %main_inner %65
+         %66 = OpCompositeExtract %uint %64 0
+               OpStore %x_4_1_1 %66
+         %67 = OpCompositeExtract %v4float %64 1
+               OpStore %gl_Position_1 %67
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.spvasm.expected.spvasm
index bb27f18..36e21e1 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.spvasm.expected.spvasm
@@ -5,42 +5,42 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %position_param_1 %gl_Position_1 %vertex_point_size
+               OpName %position_param_1 "position_param_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %position "position"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %position_param "position_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %position_param_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %8
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%position_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %8
+          %7 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Output_float = OpTypePointer Output %float
+         %10 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %position = OpVariable %_ptr_Private_v4float Private %7
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
   %float_0_5 = OpConstant %float 0.5
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %28 = OpTypeFunction %void %main_out
+         %28 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %18 = OpLoad %v4float %position
@@ -53,21 +53,21 @@
                OpStore %gl_Position %27
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %28
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %28
+%position_param = OpFunctionParameter %v4float
          %32 = OpLabel
-         %33 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %33
-               OpReturn
+               OpStore %position %position_param
+         %33 = OpFunctionCall %void %main_1
+         %34 = OpLoad %v4float %gl_Position
+         %35 = OpCompositeConstruct %main_out %34
+               OpReturnValue %35
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %35 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %36 = OpLoad %v4float %tint_symbol
-               OpStore %position %36
-         %37 = OpFunctionCall %void %main_1
-         %39 = OpLoad %v4float %gl_Position
-         %40 = OpCompositeConstruct %main_out %39
-         %38 = OpFunctionCall %void %tint_symbol_3 %40
+         %37 = OpLabel
+         %39 = OpLoad %v4float %position_param_1
+         %38 = OpFunctionCall %main_out %main_inner %39
+         %40 = OpCompositeExtract %v4float %38 0
+               OpStore %gl_Position_1 %40
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.wgsl.expected.spvasm
index bb27f18..36e21e1 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.wgsl.expected.spvasm
@@ -5,42 +5,42 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %position_param_1 %gl_Position_1 %vertex_point_size
+               OpName %position_param_1 "position_param_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %position "position"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %position_param "position_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %position_param_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %8
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%position_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %8
+          %7 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Output_float = OpTypePointer Output %float
+         %10 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %position = OpVariable %_ptr_Private_v4float Private %7
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
   %float_0_5 = OpConstant %float 0.5
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %28 = OpTypeFunction %void %main_out
+         %28 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %18 = OpLoad %v4float %position
@@ -53,21 +53,21 @@
                OpStore %gl_Position %27
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %28
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %28
+%position_param = OpFunctionParameter %v4float
          %32 = OpLabel
-         %33 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %33
-               OpReturn
+               OpStore %position %position_param
+         %33 = OpFunctionCall %void %main_1
+         %34 = OpLoad %v4float %gl_Position
+         %35 = OpCompositeConstruct %main_out %34
+               OpReturnValue %35
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %35 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %36 = OpLoad %v4float %tint_symbol
-               OpStore %position %36
-         %37 = OpFunctionCall %void %main_1
-         %39 = OpLoad %v4float %gl_Position
-         %40 = OpCompositeConstruct %main_out %39
-         %38 = OpFunctionCall %void %tint_symbol_3 %40
+         %37 = OpLabel
+         %39 = OpLoad %v4float %position_param_1
+         %38 = OpFunctionCall %main_out %main_inner %39
+         %40 = OpCompositeExtract %v4float %38 0
+               OpStore %gl_Position_1 %40
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.spvasm.expected.spvasm
index 2656eac..a9e4b3b 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.spvasm.expected.spvasm
@@ -1,40 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %color_out_1_1 %gl_FragDepth_1_1
                OpExecutionMode %main OriginUpperLeft
                OpExecutionMode %main DepthReplacing
+               OpName %color_out_1_1 "color_out_1_1"
+               OpName %gl_FragDepth_1_1 "gl_FragDepth_1_1"
                OpName %color_out "color_out"
                OpName %gl_FragDepth "gl_FragDepth"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "color_out_1"
                OpMemberName %main_out 1 "gl_FragDepth_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_2 BuiltIn FragDepth
+               OpDecorate %color_out_1_1 Location 0
+               OpDecorate %gl_FragDepth_1_1 BuiltIn FragDepth
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%color_out_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%gl_FragDepth_1_1 = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
   %color_out = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Private_float = OpTypePointer Private %float
-          %8 = OpConstantNull %float
 %gl_FragDepth = OpVariable %_ptr_Private_float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-%tint_symbol_2 = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
@@ -42,28 +41,27 @@
          %19 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
 %float_0_300000012 = OpConstant %float 0.300000012
    %main_out = OpTypeStruct %v4float %float
-         %21 = OpTypeFunction %void %main_out
+         %21 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
                OpStore %color_out %19
                OpStore %gl_FragDepth %float_0_300000012
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %21
-%tint_symbol = OpFunctionParameter %main_out
-         %25 = OpLabel
-         %26 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %26
-         %27 = OpCompositeExtract %float %tint_symbol 1
-               OpStore %tint_symbol_2 %27
-               OpReturn
+ %main_inner = OpFunction %main_out None %21
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %main_1
+         %26 = OpLoad %v4float %color_out
+         %27 = OpLoad %float %gl_FragDepth
+         %28 = OpCompositeConstruct %main_out %26 %27
+               OpReturnValue %28
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %main_1
-         %32 = OpLoad %v4float %color_out
-         %33 = OpLoad %float %gl_FragDepth
-         %34 = OpCompositeConstruct %main_out %32 %33
-         %31 = OpFunctionCall %void %tint_symbol_3 %34
+         %30 = OpLabel
+         %31 = OpFunctionCall %main_out %main_inner
+         %32 = OpCompositeExtract %v4float %31 0
+               OpStore %color_out_1_1 %32
+         %33 = OpCompositeExtract %float %31 1
+               OpStore %gl_FragDepth_1_1 %33
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.wgsl.expected.spvasm
index 2656eac..a9e4b3b 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %color_out_1_1 %gl_FragDepth_1_1
                OpExecutionMode %main OriginUpperLeft
                OpExecutionMode %main DepthReplacing
+               OpName %color_out_1_1 "color_out_1_1"
+               OpName %gl_FragDepth_1_1 "gl_FragDepth_1_1"
                OpName %color_out "color_out"
                OpName %gl_FragDepth "gl_FragDepth"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "color_out_1"
                OpMemberName %main_out 1 "gl_FragDepth_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_2 BuiltIn FragDepth
+               OpDecorate %color_out_1_1 Location 0
+               OpDecorate %gl_FragDepth_1_1 BuiltIn FragDepth
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%color_out_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%gl_FragDepth_1_1 = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
   %color_out = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Private_float = OpTypePointer Private %float
-          %8 = OpConstantNull %float
 %gl_FragDepth = OpVariable %_ptr_Private_float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-%tint_symbol_2 = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
@@ -42,28 +41,27 @@
          %19 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
 %float_0_300000012 = OpConstant %float 0.300000012
    %main_out = OpTypeStruct %v4float %float
-         %21 = OpTypeFunction %void %main_out
+         %21 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
                OpStore %color_out %19
                OpStore %gl_FragDepth %float_0_300000012
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %21
-%tint_symbol = OpFunctionParameter %main_out
-         %25 = OpLabel
-         %26 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %26
-         %27 = OpCompositeExtract %float %tint_symbol 1
-               OpStore %tint_symbol_2 %27
-               OpReturn
+ %main_inner = OpFunction %main_out None %21
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %main_1
+         %26 = OpLoad %v4float %color_out
+         %27 = OpLoad %float %gl_FragDepth
+         %28 = OpCompositeConstruct %main_out %26 %27
+               OpReturnValue %28
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %main_1
-         %32 = OpLoad %v4float %color_out
-         %33 = OpLoad %float %gl_FragDepth
-         %34 = OpCompositeConstruct %main_out %32 %33
-         %31 = OpFunctionCall %void %tint_symbol_3 %34
+         %30 = OpLabel
+         %31 = OpFunctionCall %main_out %main_inner
+         %32 = OpCompositeExtract %v4float %31 0
+               OpStore %color_out_1_1 %32
+         %33 = OpCompositeExtract %float %31 1
+               OpStore %gl_FragDepth_1_1 %33
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.spvasm.expected.spvasm
index 67f68ab..ce0cee5 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.spvasm.expected.spvasm
@@ -5,42 +5,42 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %position_param_1 %gl_Position_1 %vertex_point_size
+               OpName %position_param_1 "position_param_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %position "position"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %position_param "position_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %position_param_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %8
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%position_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %8
+          %7 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Output_float = OpTypePointer Output %float
+         %10 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %position = OpVariable %_ptr_Private_v4float Private %7
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
 %float_0_600000024 = OpConstant %float 0.600000024
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %28 = OpTypeFunction %void %main_out
+         %28 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %18 = OpLoad %v4float %position
@@ -53,21 +53,21 @@
                OpStore %gl_Position %27
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %28
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %28
+%position_param = OpFunctionParameter %v4float
          %32 = OpLabel
-         %33 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %33
-               OpReturn
+               OpStore %position %position_param
+         %33 = OpFunctionCall %void %main_1
+         %34 = OpLoad %v4float %gl_Position
+         %35 = OpCompositeConstruct %main_out %34
+               OpReturnValue %35
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %35 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %36 = OpLoad %v4float %tint_symbol
-               OpStore %position %36
-         %37 = OpFunctionCall %void %main_1
-         %39 = OpLoad %v4float %gl_Position
-         %40 = OpCompositeConstruct %main_out %39
-         %38 = OpFunctionCall %void %tint_symbol_3 %40
+         %37 = OpLabel
+         %39 = OpLoad %v4float %position_param_1
+         %38 = OpFunctionCall %main_out %main_inner %39
+         %40 = OpCompositeExtract %v4float %38 0
+               OpStore %gl_Position_1 %40
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.wgsl.expected.spvasm
index 67f68ab..ce0cee5 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.wgsl.expected.spvasm
@@ -5,42 +5,42 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %position_param_1 %gl_Position_1 %vertex_point_size
+               OpName %position_param_1 "position_param_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %position "position"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %position_param "position_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %position_param_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %8
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%position_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %8
+          %7 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Output_float = OpTypePointer Output %float
+         %10 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %position = OpVariable %_ptr_Private_v4float Private %7
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
 %float_0_600000024 = OpConstant %float 0.600000024
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %28 = OpTypeFunction %void %main_out
+         %28 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %18 = OpLoad %v4float %position
@@ -53,21 +53,21 @@
                OpStore %gl_Position %27
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %28
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %28
+%position_param = OpFunctionParameter %v4float
          %32 = OpLabel
-         %33 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %33
-               OpReturn
+               OpStore %position %position_param
+         %33 = OpFunctionCall %void %main_1
+         %34 = OpLoad %v4float %gl_Position
+         %35 = OpCompositeConstruct %main_out %34
+               OpReturnValue %35
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %35 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %36 = OpLoad %v4float %tint_symbol
-               OpStore %position %36
-         %37 = OpFunctionCall %void %main_1
-         %39 = OpLoad %v4float %gl_Position
-         %40 = OpCompositeConstruct %main_out %39
-         %38 = OpFunctionCall %void %tint_symbol_3 %40
+         %37 = OpLabel
+         %39 = OpLoad %v4float %position_param_1
+         %38 = OpFunctionCall %main_out %main_inner %39
+         %40 = OpCompositeExtract %v4float %38 0
+               OpStore %gl_Position_1 %40
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.spvasm.expected.spvasm
index 2c1b030..2d93057 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.spvasm.expected.spvasm
@@ -1,40 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %color_out_1_1 %gl_FragDepth_1_1
                OpExecutionMode %main OriginUpperLeft
                OpExecutionMode %main DepthReplacing
+               OpName %color_out_1_1 "color_out_1_1"
+               OpName %gl_FragDepth_1_1 "gl_FragDepth_1_1"
                OpName %color_out "color_out"
                OpName %gl_FragDepth "gl_FragDepth"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "color_out_1"
                OpMemberName %main_out 1 "gl_FragDepth_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_2 BuiltIn FragDepth
+               OpDecorate %color_out_1_1 Location 0
+               OpDecorate %gl_FragDepth_1_1 BuiltIn FragDepth
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%color_out_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%gl_FragDepth_1_1 = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
   %color_out = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Private_float = OpTypePointer Private %float
-          %8 = OpConstantNull %float
 %gl_FragDepth = OpVariable %_ptr_Private_float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-%tint_symbol_2 = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
@@ -42,28 +41,27 @@
          %19 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
 %float_0_400000006 = OpConstant %float 0.400000006
    %main_out = OpTypeStruct %v4float %float
-         %21 = OpTypeFunction %void %main_out
+         %21 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
                OpStore %color_out %19
                OpStore %gl_FragDepth %float_0_400000006
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %21
-%tint_symbol = OpFunctionParameter %main_out
-         %25 = OpLabel
-         %26 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %26
-         %27 = OpCompositeExtract %float %tint_symbol 1
-               OpStore %tint_symbol_2 %27
-               OpReturn
+ %main_inner = OpFunction %main_out None %21
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %main_1
+         %26 = OpLoad %v4float %color_out
+         %27 = OpLoad %float %gl_FragDepth
+         %28 = OpCompositeConstruct %main_out %26 %27
+               OpReturnValue %28
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %main_1
-         %32 = OpLoad %v4float %color_out
-         %33 = OpLoad %float %gl_FragDepth
-         %34 = OpCompositeConstruct %main_out %32 %33
-         %31 = OpFunctionCall %void %tint_symbol_3 %34
+         %30 = OpLabel
+         %31 = OpFunctionCall %main_out %main_inner
+         %32 = OpCompositeExtract %v4float %31 0
+               OpStore %color_out_1_1 %32
+         %33 = OpCompositeExtract %float %31 1
+               OpStore %gl_FragDepth_1_1 %33
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.wgsl.expected.spvasm
index 2c1b030..2d93057 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %color_out_1_1 %gl_FragDepth_1_1
                OpExecutionMode %main OriginUpperLeft
                OpExecutionMode %main DepthReplacing
+               OpName %color_out_1_1 "color_out_1_1"
+               OpName %gl_FragDepth_1_1 "gl_FragDepth_1_1"
                OpName %color_out "color_out"
                OpName %gl_FragDepth "gl_FragDepth"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "color_out_1"
                OpMemberName %main_out 1 "gl_FragDepth_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_2 BuiltIn FragDepth
+               OpDecorate %color_out_1_1 Location 0
+               OpDecorate %gl_FragDepth_1_1 BuiltIn FragDepth
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%color_out_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%gl_FragDepth_1_1 = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
   %color_out = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Private_float = OpTypePointer Private %float
-          %8 = OpConstantNull %float
 %gl_FragDepth = OpVariable %_ptr_Private_float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-%tint_symbol_2 = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
@@ -42,28 +41,27 @@
          %19 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
 %float_0_400000006 = OpConstant %float 0.400000006
    %main_out = OpTypeStruct %v4float %float
-         %21 = OpTypeFunction %void %main_out
+         %21 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
                OpStore %color_out %19
                OpStore %gl_FragDepth %float_0_400000006
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %21
-%tint_symbol = OpFunctionParameter %main_out
-         %25 = OpLabel
-         %26 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %26
-         %27 = OpCompositeExtract %float %tint_symbol 1
-               OpStore %tint_symbol_2 %27
-               OpReturn
+ %main_inner = OpFunction %main_out None %21
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %main_1
+         %26 = OpLoad %v4float %color_out
+         %27 = OpLoad %float %gl_FragDepth
+         %28 = OpCompositeConstruct %main_out %26 %27
+               OpReturnValue %28
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %main_1
-         %32 = OpLoad %v4float %color_out
-         %33 = OpLoad %float %gl_FragDepth
-         %34 = OpCompositeConstruct %main_out %32 %33
-         %31 = OpFunctionCall %void %tint_symbol_3 %34
+         %30 = OpLabel
+         %31 = OpFunctionCall %main_out %main_inner
+         %32 = OpCompositeExtract %v4float %31 0
+               OpStore %color_out_1_1 %32
+         %33 = OpCompositeExtract %float %31 1
+               OpStore %gl_FragDepth_1_1 %33
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.spvasm.expected.spvasm
index 57cab41..b003b8e 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.spvasm.expected.spvasm
@@ -5,42 +5,42 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %position_param_1 %gl_Position_1 %vertex_point_size
+               OpName %position_param_1 "position_param_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %position "position"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %position_param "position_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %position_param_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %8
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%position_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %8
+          %7 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Output_float = OpTypePointer Output %float
+         %10 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %position = OpVariable %_ptr_Private_v4float Private %7
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
 %float_0_400000006 = OpConstant %float 0.400000006
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %28 = OpTypeFunction %void %main_out
+         %28 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %18 = OpLoad %v4float %position
@@ -53,21 +53,21 @@
                OpStore %gl_Position %27
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %28
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %28
+%position_param = OpFunctionParameter %v4float
          %32 = OpLabel
-         %33 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %33
-               OpReturn
+               OpStore %position %position_param
+         %33 = OpFunctionCall %void %main_1
+         %34 = OpLoad %v4float %gl_Position
+         %35 = OpCompositeConstruct %main_out %34
+               OpReturnValue %35
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %35 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %36 = OpLoad %v4float %tint_symbol
-               OpStore %position %36
-         %37 = OpFunctionCall %void %main_1
-         %39 = OpLoad %v4float %gl_Position
-         %40 = OpCompositeConstruct %main_out %39
-         %38 = OpFunctionCall %void %tint_symbol_3 %40
+         %37 = OpLabel
+         %39 = OpLoad %v4float %position_param_1
+         %38 = OpFunctionCall %main_out %main_inner %39
+         %40 = OpCompositeExtract %v4float %38 0
+               OpStore %gl_Position_1 %40
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.wgsl.expected.spvasm
index 57cab41..b003b8e 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.wgsl.expected.spvasm
@@ -5,42 +5,42 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %position_param_1 %gl_Position_1 %vertex_point_size
+               OpName %position_param_1 "position_param_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %position "position"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %position_param "position_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %position_param_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %8
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%position_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %8
+          %7 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Output_float = OpTypePointer Output %float
+         %10 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %position = OpVariable %_ptr_Private_v4float Private %7
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
 %float_0_400000006 = OpConstant %float 0.400000006
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %28 = OpTypeFunction %void %main_out
+         %28 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %18 = OpLoad %v4float %position
@@ -53,21 +53,21 @@
                OpStore %gl_Position %27
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %28
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %28
+%position_param = OpFunctionParameter %v4float
          %32 = OpLabel
-         %33 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %33
-               OpReturn
+               OpStore %position %position_param
+         %33 = OpFunctionCall %void %main_1
+         %34 = OpLoad %v4float %gl_Position
+         %35 = OpCompositeConstruct %main_out %34
+               OpReturnValue %35
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %35 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %36 = OpLoad %v4float %tint_symbol
-               OpStore %position %36
-         %37 = OpFunctionCall %void %main_1
-         %39 = OpLoad %v4float %gl_Position
-         %40 = OpCompositeConstruct %main_out %39
-         %38 = OpFunctionCall %void %tint_symbol_3 %40
+         %37 = OpLabel
+         %39 = OpLoad %v4float %position_param_1
+         %38 = OpFunctionCall %main_out %main_inner %39
+         %40 = OpCompositeExtract %v4float %38 0
+               OpStore %gl_Position_1 %40
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.spvasm.expected.spvasm
index 2f52f93..158850c 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.spvasm.expected.spvasm
@@ -1,40 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %color_out_1_1 %gl_FragDepth_1_1
                OpExecutionMode %main OriginUpperLeft
                OpExecutionMode %main DepthReplacing
+               OpName %color_out_1_1 "color_out_1_1"
+               OpName %gl_FragDepth_1_1 "gl_FragDepth_1_1"
                OpName %color_out "color_out"
                OpName %gl_FragDepth "gl_FragDepth"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "color_out_1"
                OpMemberName %main_out 1 "gl_FragDepth_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_2 BuiltIn FragDepth
+               OpDecorate %color_out_1_1 Location 0
+               OpDecorate %gl_FragDepth_1_1 BuiltIn FragDepth
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%color_out_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%gl_FragDepth_1_1 = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
   %color_out = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Private_float = OpTypePointer Private %float
-          %8 = OpConstantNull %float
 %gl_FragDepth = OpVariable %_ptr_Private_float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-%tint_symbol_2 = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
@@ -42,28 +41,27 @@
          %19 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
 %float_0_699999988 = OpConstant %float 0.699999988
    %main_out = OpTypeStruct %v4float %float
-         %21 = OpTypeFunction %void %main_out
+         %21 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
                OpStore %color_out %19
                OpStore %gl_FragDepth %float_0_699999988
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %21
-%tint_symbol = OpFunctionParameter %main_out
-         %25 = OpLabel
-         %26 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %26
-         %27 = OpCompositeExtract %float %tint_symbol 1
-               OpStore %tint_symbol_2 %27
-               OpReturn
+ %main_inner = OpFunction %main_out None %21
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %main_1
+         %26 = OpLoad %v4float %color_out
+         %27 = OpLoad %float %gl_FragDepth
+         %28 = OpCompositeConstruct %main_out %26 %27
+               OpReturnValue %28
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %main_1
-         %32 = OpLoad %v4float %color_out
-         %33 = OpLoad %float %gl_FragDepth
-         %34 = OpCompositeConstruct %main_out %32 %33
-         %31 = OpFunctionCall %void %tint_symbol_3 %34
+         %30 = OpLabel
+         %31 = OpFunctionCall %main_out %main_inner
+         %32 = OpCompositeExtract %v4float %31 0
+               OpStore %color_out_1_1 %32
+         %33 = OpCompositeExtract %float %31 1
+               OpStore %gl_FragDepth_1_1 %33
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.wgsl.expected.spvasm
index 2f52f93..158850c 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %color_out_1_1 %gl_FragDepth_1_1
                OpExecutionMode %main OriginUpperLeft
                OpExecutionMode %main DepthReplacing
+               OpName %color_out_1_1 "color_out_1_1"
+               OpName %gl_FragDepth_1_1 "gl_FragDepth_1_1"
                OpName %color_out "color_out"
                OpName %gl_FragDepth "gl_FragDepth"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "color_out_1"
                OpMemberName %main_out 1 "gl_FragDepth_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_2 BuiltIn FragDepth
+               OpDecorate %color_out_1_1 Location 0
+               OpDecorate %gl_FragDepth_1_1 BuiltIn FragDepth
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%color_out_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%gl_FragDepth_1_1 = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
   %color_out = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Private_float = OpTypePointer Private %float
-          %8 = OpConstantNull %float
 %gl_FragDepth = OpVariable %_ptr_Private_float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-%tint_symbol_2 = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
@@ -42,28 +41,27 @@
          %19 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
 %float_0_699999988 = OpConstant %float 0.699999988
    %main_out = OpTypeStruct %v4float %float
-         %21 = OpTypeFunction %void %main_out
+         %21 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
                OpStore %color_out %19
                OpStore %gl_FragDepth %float_0_699999988
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %21
-%tint_symbol = OpFunctionParameter %main_out
-         %25 = OpLabel
-         %26 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %26
-         %27 = OpCompositeExtract %float %tint_symbol 1
-               OpStore %tint_symbol_2 %27
-               OpReturn
+ %main_inner = OpFunction %main_out None %21
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %main_1
+         %26 = OpLoad %v4float %color_out
+         %27 = OpLoad %float %gl_FragDepth
+         %28 = OpCompositeConstruct %main_out %26 %27
+               OpReturnValue %28
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %main_1
-         %32 = OpLoad %v4float %color_out
-         %33 = OpLoad %float %gl_FragDepth
-         %34 = OpCompositeConstruct %main_out %32 %33
-         %31 = OpFunctionCall %void %tint_symbol_3 %34
+         %30 = OpLabel
+         %31 = OpFunctionCall %main_out %main_inner
+         %32 = OpCompositeExtract %v4float %31 0
+               OpStore %color_out_1_1 %32
+         %33 = OpCompositeExtract %float %31 1
+               OpStore %gl_FragDepth_1_1 %33
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.spvasm.expected.spvasm
index 18e2bca..cada7d9 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.spvasm.expected.spvasm
@@ -5,42 +5,42 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %position_param_1 %gl_Position_1 %vertex_point_size
+               OpName %position_param_1 "position_param_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %position "position"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %position_param "position_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %position_param_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %8
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%position_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %8
+          %7 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Output_float = OpTypePointer Output %float
+         %10 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %position = OpVariable %_ptr_Private_v4float Private %7
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
 %float_0_300000012 = OpConstant %float 0.300000012
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %28 = OpTypeFunction %void %main_out
+         %28 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %18 = OpLoad %v4float %position
@@ -53,21 +53,21 @@
                OpStore %gl_Position %27
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %28
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %28
+%position_param = OpFunctionParameter %v4float
          %32 = OpLabel
-         %33 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %33
-               OpReturn
+               OpStore %position %position_param
+         %33 = OpFunctionCall %void %main_1
+         %34 = OpLoad %v4float %gl_Position
+         %35 = OpCompositeConstruct %main_out %34
+               OpReturnValue %35
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %35 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %36 = OpLoad %v4float %tint_symbol
-               OpStore %position %36
-         %37 = OpFunctionCall %void %main_1
-         %39 = OpLoad %v4float %gl_Position
-         %40 = OpCompositeConstruct %main_out %39
-         %38 = OpFunctionCall %void %tint_symbol_3 %40
+         %37 = OpLabel
+         %39 = OpLoad %v4float %position_param_1
+         %38 = OpFunctionCall %main_out %main_inner %39
+         %40 = OpCompositeExtract %v4float %38 0
+               OpStore %gl_Position_1 %40
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.wgsl.expected.spvasm
index 18e2bca..cada7d9 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.wgsl.expected.spvasm
@@ -5,42 +5,42 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %position_param_1 %gl_Position_1 %vertex_point_size
+               OpName %position_param_1 "position_param_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %position "position"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %position_param "position_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %position_param_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %8
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%position_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %8
+          %7 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Output_float = OpTypePointer Output %float
+         %10 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %position = OpVariable %_ptr_Private_v4float Private %7
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
 %float_0_300000012 = OpConstant %float 0.300000012
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %28 = OpTypeFunction %void %main_out
+         %28 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %18 = OpLoad %v4float %position
@@ -53,21 +53,21 @@
                OpStore %gl_Position %27
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %28
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %28
+%position_param = OpFunctionParameter %v4float
          %32 = OpLabel
-         %33 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %33
-               OpReturn
+               OpStore %position %position_param
+         %33 = OpFunctionCall %void %main_1
+         %34 = OpLoad %v4float %gl_Position
+         %35 = OpCompositeConstruct %main_out %34
+               OpReturnValue %35
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %35 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %36 = OpLoad %v4float %tint_symbol
-               OpStore %position %36
-         %37 = OpFunctionCall %void %main_1
-         %39 = OpLoad %v4float %gl_Position
-         %40 = OpCompositeConstruct %main_out %39
-         %38 = OpFunctionCall %void %tint_symbol_3 %40
+         %37 = OpLabel
+         %39 = OpLoad %v4float %position_param_1
+         %38 = OpFunctionCall %main_out %main_inner %39
+         %40 = OpCompositeExtract %v4float %38 0
+               OpStore %gl_Position_1 %40
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.spvasm.expected.spvasm
index a305e7a..af0bf2a 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.spvasm.expected.spvasm
@@ -1,40 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %color_out_1_1 %gl_FragDepth_1_1
                OpExecutionMode %main OriginUpperLeft
                OpExecutionMode %main DepthReplacing
+               OpName %color_out_1_1 "color_out_1_1"
+               OpName %gl_FragDepth_1_1 "gl_FragDepth_1_1"
                OpName %color_out "color_out"
                OpName %gl_FragDepth "gl_FragDepth"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "color_out_1"
                OpMemberName %main_out 1 "gl_FragDepth_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_2 BuiltIn FragDepth
+               OpDecorate %color_out_1_1 Location 0
+               OpDecorate %gl_FragDepth_1_1 BuiltIn FragDepth
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%color_out_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%gl_FragDepth_1_1 = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
   %color_out = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Private_float = OpTypePointer Private %float
-          %8 = OpConstantNull %float
 %gl_FragDepth = OpVariable %_ptr_Private_float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-%tint_symbol_2 = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
@@ -42,28 +41,27 @@
          %19 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
   %float_0_5 = OpConstant %float 0.5
    %main_out = OpTypeStruct %v4float %float
-         %21 = OpTypeFunction %void %main_out
+         %21 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
                OpStore %color_out %19
                OpStore %gl_FragDepth %float_0_5
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %21
-%tint_symbol = OpFunctionParameter %main_out
-         %25 = OpLabel
-         %26 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %26
-         %27 = OpCompositeExtract %float %tint_symbol 1
-               OpStore %tint_symbol_2 %27
-               OpReturn
+ %main_inner = OpFunction %main_out None %21
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %main_1
+         %26 = OpLoad %v4float %color_out
+         %27 = OpLoad %float %gl_FragDepth
+         %28 = OpCompositeConstruct %main_out %26 %27
+               OpReturnValue %28
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %main_1
-         %32 = OpLoad %v4float %color_out
-         %33 = OpLoad %float %gl_FragDepth
-         %34 = OpCompositeConstruct %main_out %32 %33
-         %31 = OpFunctionCall %void %tint_symbol_3 %34
+         %30 = OpLabel
+         %31 = OpFunctionCall %main_out %main_inner
+         %32 = OpCompositeExtract %v4float %31 0
+               OpStore %color_out_1_1 %32
+         %33 = OpCompositeExtract %float %31 1
+               OpStore %gl_FragDepth_1_1 %33
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.wgsl.expected.spvasm
index a305e7a..af0bf2a 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.wgsl.expected.spvasm
@@ -1,40 +1,39 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 35
+; Bound: 34
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %color_out_1_1 %gl_FragDepth_1_1
                OpExecutionMode %main OriginUpperLeft
                OpExecutionMode %main DepthReplacing
+               OpName %color_out_1_1 "color_out_1_1"
+               OpName %gl_FragDepth_1_1 "gl_FragDepth_1_1"
                OpName %color_out "color_out"
                OpName %gl_FragDepth "gl_FragDepth"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "color_out_1"
                OpMemberName %main_out 1 "gl_FragDepth_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_2 BuiltIn FragDepth
+               OpDecorate %color_out_1_1 Location 0
+               OpDecorate %gl_FragDepth_1_1 BuiltIn FragDepth
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%color_out_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%gl_FragDepth_1_1 = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
   %color_out = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Private_float = OpTypePointer Private %float
-          %8 = OpConstantNull %float
 %gl_FragDepth = OpVariable %_ptr_Private_float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-%tint_symbol_2 = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
@@ -42,28 +41,27 @@
          %19 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
   %float_0_5 = OpConstant %float 0.5
    %main_out = OpTypeStruct %v4float %float
-         %21 = OpTypeFunction %void %main_out
+         %21 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
                OpStore %color_out %19
                OpStore %gl_FragDepth %float_0_5
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %21
-%tint_symbol = OpFunctionParameter %main_out
-         %25 = OpLabel
-         %26 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %26
-         %27 = OpCompositeExtract %float %tint_symbol 1
-               OpStore %tint_symbol_2 %27
-               OpReturn
+ %main_inner = OpFunction %main_out None %21
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %main_1
+         %26 = OpLoad %v4float %color_out
+         %27 = OpLoad %float %gl_FragDepth
+         %28 = OpCompositeConstruct %main_out %26 %27
+               OpReturnValue %28
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %main_1
-         %32 = OpLoad %v4float %color_out
-         %33 = OpLoad %float %gl_FragDepth
-         %34 = OpCompositeConstruct %main_out %32 %33
-         %31 = OpFunctionCall %void %tint_symbol_3 %34
+         %30 = OpLabel
+         %31 = OpFunctionCall %main_out %main_inner
+         %32 = OpCompositeExtract %v4float %31 0
+               OpStore %color_out_1_1 %32
+         %33 = OpCompositeExtract %float %31 1
+               OpStore %gl_FragDepth_1_1 %33
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.spvasm.expected.spvasm
index cf0602b..fab5f54 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.spvasm.expected.spvasm
@@ -5,42 +5,42 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %position_param_1 %gl_Position_1 %vertex_point_size
+               OpName %position_param_1 "position_param_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %position "position"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %position_param "position_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %position_param_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %8
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%position_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %8
+          %7 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Output_float = OpTypePointer Output %float
+         %10 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %position = OpVariable %_ptr_Private_v4float Private %7
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
 %float_0_699999988 = OpConstant %float 0.699999988
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %28 = OpTypeFunction %void %main_out
+         %28 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %18 = OpLoad %v4float %position
@@ -53,21 +53,21 @@
                OpStore %gl_Position %27
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %28
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %28
+%position_param = OpFunctionParameter %v4float
          %32 = OpLabel
-         %33 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %33
-               OpReturn
+               OpStore %position %position_param
+         %33 = OpFunctionCall %void %main_1
+         %34 = OpLoad %v4float %gl_Position
+         %35 = OpCompositeConstruct %main_out %34
+               OpReturnValue %35
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %35 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %36 = OpLoad %v4float %tint_symbol
-               OpStore %position %36
-         %37 = OpFunctionCall %void %main_1
-         %39 = OpLoad %v4float %gl_Position
-         %40 = OpCompositeConstruct %main_out %39
-         %38 = OpFunctionCall %void %tint_symbol_3 %40
+         %37 = OpLabel
+         %39 = OpLoad %v4float %position_param_1
+         %38 = OpFunctionCall %main_out %main_inner %39
+         %40 = OpCompositeExtract %v4float %38 0
+               OpStore %gl_Position_1 %40
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.wgsl.expected.spvasm
index cf0602b..fab5f54 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.wgsl.expected.spvasm
@@ -5,42 +5,42 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %position_param_1 %gl_Position_1 %vertex_point_size
+               OpName %position_param_1 "position_param_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %position "position"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %position_param "position_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %position_param_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %8
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%position_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %8
+          %7 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Output_float = OpTypePointer Output %float
+         %10 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %position = OpVariable %_ptr_Private_v4float Private %7
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
 %float_0_699999988 = OpConstant %float 0.699999988
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %28 = OpTypeFunction %void %main_out
+         %28 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %18 = OpLoad %v4float %position
@@ -53,21 +53,21 @@
                OpStore %gl_Position %27
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %28
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %28
+%position_param = OpFunctionParameter %v4float
          %32 = OpLabel
-         %33 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %33
-               OpReturn
+               OpStore %position %position_param
+         %33 = OpFunctionCall %void %main_1
+         %34 = OpLoad %v4float %gl_Position
+         %35 = OpCompositeConstruct %main_out %34
+               OpReturnValue %35
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %35 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %36 = OpLoad %v4float %tint_symbol
-               OpStore %position %36
-         %37 = OpFunctionCall %void %main_1
-         %39 = OpLoad %v4float %gl_Position
-         %40 = OpCompositeConstruct %main_out %39
-         %38 = OpFunctionCall %void %tint_symbol_3 %40
+         %37 = OpLabel
+         %39 = OpLoad %v4float %position_param_1
+         %38 = OpFunctionCall %main_out %main_inner %39
+         %40 = OpCompositeExtract %v4float %38 0
+               OpStore %gl_Position_1 %40
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.spvasm.expected.spvasm
index 240e679..4bd131f 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.spvasm.expected.spvasm
@@ -5,42 +5,42 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %position_param_1 %gl_Position_1 %vertex_point_size
+               OpName %position_param_1 "position_param_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %position "position"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %position_param "position_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %position_param_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %8
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%position_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %8
+          %7 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Output_float = OpTypePointer Output %float
+         %10 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %position = OpVariable %_ptr_Private_v4float Private %7
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
 %float_0_200000003 = OpConstant %float 0.200000003
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %28 = OpTypeFunction %void %main_out
+         %28 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %18 = OpLoad %v4float %position
@@ -53,21 +53,21 @@
                OpStore %gl_Position %27
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %28
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %28
+%position_param = OpFunctionParameter %v4float
          %32 = OpLabel
-         %33 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %33
-               OpReturn
+               OpStore %position %position_param
+         %33 = OpFunctionCall %void %main_1
+         %34 = OpLoad %v4float %gl_Position
+         %35 = OpCompositeConstruct %main_out %34
+               OpReturnValue %35
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %35 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %36 = OpLoad %v4float %tint_symbol
-               OpStore %position %36
-         %37 = OpFunctionCall %void %main_1
-         %39 = OpLoad %v4float %gl_Position
-         %40 = OpCompositeConstruct %main_out %39
-         %38 = OpFunctionCall %void %tint_symbol_3 %40
+         %37 = OpLabel
+         %39 = OpLoad %v4float %position_param_1
+         %38 = OpFunctionCall %main_out %main_inner %39
+         %40 = OpCompositeExtract %v4float %38 0
+               OpStore %gl_Position_1 %40
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.wgsl.expected.spvasm
index 240e679..4bd131f 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.wgsl.expected.spvasm
@@ -5,42 +5,42 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %position_param_1 %gl_Position_1 %vertex_point_size
+               OpName %position_param_1 "position_param_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %position "position"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %position_param "position_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %position_param_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %8
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%position_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %8
+          %7 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Output_float = OpTypePointer Output %float
+         %10 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %position = OpVariable %_ptr_Private_v4float Private %7
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
     %v2float = OpTypeVector %float 2
 %float_0_200000003 = OpConstant %float 0.200000003
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %28 = OpTypeFunction %void %main_out
+         %28 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
          %18 = OpLoad %v4float %position
@@ -53,21 +53,21 @@
                OpStore %gl_Position %27
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %28
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %28
+%position_param = OpFunctionParameter %v4float
          %32 = OpLabel
-         %33 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %33
-               OpReturn
+               OpStore %position %position_param
+         %33 = OpFunctionCall %void %main_1
+         %34 = OpLoad %v4float %gl_Position
+         %35 = OpCompositeConstruct %main_out %34
+               OpReturnValue %35
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %35 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %36 = OpLoad %v4float %tint_symbol
-               OpStore %position %36
-         %37 = OpFunctionCall %void %main_1
-         %39 = OpLoad %v4float %gl_Position
-         %40 = OpCompositeConstruct %main_out %39
-         %38 = OpFunctionCall %void %tint_symbol_3 %40
+         %37 = OpLabel
+         %39 = OpLoad %v4float %position_param_1
+         %38 = OpFunctionCall %main_out %main_inner %39
+         %40 = OpCompositeExtract %v4float %38 0
+               OpStore %gl_Position_1 %40
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.spvasm.expected.spvasm
index bb4715a..40ec065 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.spvasm.expected.spvasm
@@ -1,68 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %outColor_1_1 %gl_FragDepth_1_1
                OpExecutionMode %main OriginUpperLeft
                OpExecutionMode %main DepthReplacing
+               OpName %outColor_1_1 "outColor_1_1"
+               OpName %gl_FragDepth_1_1 "gl_FragDepth_1_1"
                OpName %outColor "outColor"
                OpName %gl_FragDepth "gl_FragDepth"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "outColor_1"
                OpMemberName %main_out 1 "gl_FragDepth_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_2 BuiltIn FragDepth
+               OpDecorate %outColor_1_1 Location 0
+               OpDecorate %gl_FragDepth_1_1 BuiltIn FragDepth
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%outColor_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%gl_FragDepth_1_1 = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
    %outColor = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Private_float = OpTypePointer Private %float
-          %8 = OpConstantNull %float
 %gl_FragDepth = OpVariable %_ptr_Private_float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-%tint_symbol_2 = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
     %float_0 = OpConstant %float 0
          %18 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
 %float_0_300000012 = OpConstant %float 0.300000012
    %main_out = OpTypeStruct %v4float %float
-         %20 = OpTypeFunction %void %main_out
+         %20 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
                OpStore %outColor %18
                OpStore %gl_FragDepth %float_0_300000012
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %20
-%tint_symbol = OpFunctionParameter %main_out
-         %24 = OpLabel
-         %25 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %25
-         %26 = OpCompositeExtract %float %tint_symbol 1
-               OpStore %tint_symbol_2 %26
-               OpReturn
+ %main_inner = OpFunction %main_out None %20
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %main_1
+         %25 = OpLoad %v4float %outColor
+         %26 = OpLoad %float %gl_FragDepth
+         %27 = OpCompositeConstruct %main_out %25 %26
+               OpReturnValue %27
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %main_1
-         %31 = OpLoad %v4float %outColor
-         %32 = OpLoad %float %gl_FragDepth
-         %33 = OpCompositeConstruct %main_out %31 %32
-         %30 = OpFunctionCall %void %tint_symbol_3 %33
+         %29 = OpLabel
+         %30 = OpFunctionCall %main_out %main_inner
+         %31 = OpCompositeExtract %v4float %30 0
+               OpStore %outColor_1_1 %31
+         %32 = OpCompositeExtract %float %30 1
+               OpStore %gl_FragDepth_1_1 %32
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.wgsl.expected.spvasm
index bb4715a..40ec065 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.wgsl.expected.spvasm
@@ -1,68 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %outColor_1_1 %gl_FragDepth_1_1
                OpExecutionMode %main OriginUpperLeft
                OpExecutionMode %main DepthReplacing
+               OpName %outColor_1_1 "outColor_1_1"
+               OpName %gl_FragDepth_1_1 "gl_FragDepth_1_1"
                OpName %outColor "outColor"
                OpName %gl_FragDepth "gl_FragDepth"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "outColor_1"
                OpMemberName %main_out 1 "gl_FragDepth_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_2 BuiltIn FragDepth
+               OpDecorate %outColor_1_1 Location 0
+               OpDecorate %gl_FragDepth_1_1 BuiltIn FragDepth
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%outColor_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%gl_FragDepth_1_1 = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
    %outColor = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Private_float = OpTypePointer Private %float
-          %8 = OpConstantNull %float
 %gl_FragDepth = OpVariable %_ptr_Private_float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-%tint_symbol_2 = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
     %float_0 = OpConstant %float 0
          %18 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
 %float_0_300000012 = OpConstant %float 0.300000012
    %main_out = OpTypeStruct %v4float %float
-         %20 = OpTypeFunction %void %main_out
+         %20 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
                OpStore %outColor %18
                OpStore %gl_FragDepth %float_0_300000012
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %20
-%tint_symbol = OpFunctionParameter %main_out
-         %24 = OpLabel
-         %25 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %25
-         %26 = OpCompositeExtract %float %tint_symbol 1
-               OpStore %tint_symbol_2 %26
-               OpReturn
+ %main_inner = OpFunction %main_out None %20
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %main_1
+         %25 = OpLoad %v4float %outColor
+         %26 = OpLoad %float %gl_FragDepth
+         %27 = OpCompositeConstruct %main_out %25 %26
+               OpReturnValue %27
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %main_1
-         %31 = OpLoad %v4float %outColor
-         %32 = OpLoad %float %gl_FragDepth
-         %33 = OpCompositeConstruct %main_out %31 %32
-         %30 = OpFunctionCall %void %tint_symbol_3 %33
+         %29 = OpLabel
+         %30 = OpFunctionCall %main_out %main_inner
+         %31 = OpCompositeExtract %v4float %30 0
+               OpStore %outColor_1_1 %31
+         %32 = OpCompositeExtract %float %30 1
+               OpStore %gl_FragDepth_1_1 %32
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.spvasm.expected.spvasm
index d7a733d..a43363c 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.spvasm.expected.spvasm
@@ -1,68 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %outColor_1_1 %gl_FragDepth_1_1
                OpExecutionMode %main OriginUpperLeft
                OpExecutionMode %main DepthReplacing
+               OpName %outColor_1_1 "outColor_1_1"
+               OpName %gl_FragDepth_1_1 "gl_FragDepth_1_1"
                OpName %outColor "outColor"
                OpName %gl_FragDepth "gl_FragDepth"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "outColor_1"
                OpMemberName %main_out 1 "gl_FragDepth_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_2 BuiltIn FragDepth
+               OpDecorate %outColor_1_1 Location 0
+               OpDecorate %gl_FragDepth_1_1 BuiltIn FragDepth
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%outColor_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%gl_FragDepth_1_1 = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
    %outColor = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Private_float = OpTypePointer Private %float
-          %8 = OpConstantNull %float
 %gl_FragDepth = OpVariable %_ptr_Private_float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-%tint_symbol_2 = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
     %float_0 = OpConstant %float 0
          %18 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
 %float_0_100000001 = OpConstant %float 0.100000001
    %main_out = OpTypeStruct %v4float %float
-         %20 = OpTypeFunction %void %main_out
+         %20 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
                OpStore %outColor %18
                OpStore %gl_FragDepth %float_0_100000001
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %20
-%tint_symbol = OpFunctionParameter %main_out
-         %24 = OpLabel
-         %25 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %25
-         %26 = OpCompositeExtract %float %tint_symbol 1
-               OpStore %tint_symbol_2 %26
-               OpReturn
+ %main_inner = OpFunction %main_out None %20
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %main_1
+         %25 = OpLoad %v4float %outColor
+         %26 = OpLoad %float %gl_FragDepth
+         %27 = OpCompositeConstruct %main_out %25 %26
+               OpReturnValue %27
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %main_1
-         %31 = OpLoad %v4float %outColor
-         %32 = OpLoad %float %gl_FragDepth
-         %33 = OpCompositeConstruct %main_out %31 %32
-         %30 = OpFunctionCall %void %tint_symbol_3 %33
+         %29 = OpLabel
+         %30 = OpFunctionCall %main_out %main_inner
+         %31 = OpCompositeExtract %v4float %30 0
+               OpStore %outColor_1_1 %31
+         %32 = OpCompositeExtract %float %30 1
+               OpStore %gl_FragDepth_1_1 %32
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.wgsl.expected.spvasm
index d7a733d..a43363c 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.wgsl.expected.spvasm
@@ -1,68 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %outColor_1_1 %gl_FragDepth_1_1
                OpExecutionMode %main OriginUpperLeft
                OpExecutionMode %main DepthReplacing
+               OpName %outColor_1_1 "outColor_1_1"
+               OpName %gl_FragDepth_1_1 "gl_FragDepth_1_1"
                OpName %outColor "outColor"
                OpName %gl_FragDepth "gl_FragDepth"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "outColor_1"
                OpMemberName %main_out 1 "gl_FragDepth_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_2 BuiltIn FragDepth
+               OpDecorate %outColor_1_1 Location 0
+               OpDecorate %gl_FragDepth_1_1 BuiltIn FragDepth
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%outColor_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%gl_FragDepth_1_1 = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
    %outColor = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Private_float = OpTypePointer Private %float
-          %8 = OpConstantNull %float
 %gl_FragDepth = OpVariable %_ptr_Private_float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-%tint_symbol_2 = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
     %float_0 = OpConstant %float 0
          %18 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
 %float_0_100000001 = OpConstant %float 0.100000001
    %main_out = OpTypeStruct %v4float %float
-         %20 = OpTypeFunction %void %main_out
+         %20 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
                OpStore %outColor %18
                OpStore %gl_FragDepth %float_0_100000001
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %20
-%tint_symbol = OpFunctionParameter %main_out
-         %24 = OpLabel
-         %25 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %25
-         %26 = OpCompositeExtract %float %tint_symbol 1
-               OpStore %tint_symbol_2 %26
-               OpReturn
+ %main_inner = OpFunction %main_out None %20
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %main_1
+         %25 = OpLoad %v4float %outColor
+         %26 = OpLoad %float %gl_FragDepth
+         %27 = OpCompositeConstruct %main_out %25 %26
+               OpReturnValue %27
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %main_1
-         %31 = OpLoad %v4float %outColor
-         %32 = OpLoad %float %gl_FragDepth
-         %33 = OpCompositeConstruct %main_out %31 %32
-         %30 = OpFunctionCall %void %tint_symbol_3 %33
+         %29 = OpLabel
+         %30 = OpFunctionCall %main_out %main_inner
+         %31 = OpCompositeExtract %v4float %30 0
+               OpStore %outColor_1_1 %31
+         %32 = OpCompositeExtract %float %30 1
+               OpStore %gl_FragDepth_1_1 %32
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.spvasm.expected.spvasm
index 927ca49..a04b224 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.spvasm.expected.spvasm
@@ -1,68 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %outColor_1_1 %gl_FragDepth_1_1
                OpExecutionMode %main OriginUpperLeft
                OpExecutionMode %main DepthReplacing
+               OpName %outColor_1_1 "outColor_1_1"
+               OpName %gl_FragDepth_1_1 "gl_FragDepth_1_1"
                OpName %outColor "outColor"
                OpName %gl_FragDepth "gl_FragDepth"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "outColor_1"
                OpMemberName %main_out 1 "gl_FragDepth_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_2 BuiltIn FragDepth
+               OpDecorate %outColor_1_1 Location 0
+               OpDecorate %gl_FragDepth_1_1 BuiltIn FragDepth
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%outColor_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%gl_FragDepth_1_1 = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
    %outColor = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Private_float = OpTypePointer Private %float
-          %8 = OpConstantNull %float
 %gl_FragDepth = OpVariable %_ptr_Private_float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-%tint_symbol_2 = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
     %float_0 = OpConstant %float 0
          %18 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
 %float_0_600000024 = OpConstant %float 0.600000024
    %main_out = OpTypeStruct %v4float %float
-         %20 = OpTypeFunction %void %main_out
+         %20 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
                OpStore %outColor %18
                OpStore %gl_FragDepth %float_0_600000024
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %20
-%tint_symbol = OpFunctionParameter %main_out
-         %24 = OpLabel
-         %25 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %25
-         %26 = OpCompositeExtract %float %tint_symbol 1
-               OpStore %tint_symbol_2 %26
-               OpReturn
+ %main_inner = OpFunction %main_out None %20
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %main_1
+         %25 = OpLoad %v4float %outColor
+         %26 = OpLoad %float %gl_FragDepth
+         %27 = OpCompositeConstruct %main_out %25 %26
+               OpReturnValue %27
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %main_1
-         %31 = OpLoad %v4float %outColor
-         %32 = OpLoad %float %gl_FragDepth
-         %33 = OpCompositeConstruct %main_out %31 %32
-         %30 = OpFunctionCall %void %tint_symbol_3 %33
+         %29 = OpLabel
+         %30 = OpFunctionCall %main_out %main_inner
+         %31 = OpCompositeExtract %v4float %30 0
+               OpStore %outColor_1_1 %31
+         %32 = OpCompositeExtract %float %30 1
+               OpStore %gl_FragDepth_1_1 %32
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.wgsl.expected.spvasm
index 927ca49..a04b224 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.wgsl.expected.spvasm
@@ -1,68 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %outColor_1_1 %gl_FragDepth_1_1
                OpExecutionMode %main OriginUpperLeft
                OpExecutionMode %main DepthReplacing
+               OpName %outColor_1_1 "outColor_1_1"
+               OpName %gl_FragDepth_1_1 "gl_FragDepth_1_1"
                OpName %outColor "outColor"
                OpName %gl_FragDepth "gl_FragDepth"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "outColor_1"
                OpMemberName %main_out 1 "gl_FragDepth_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_2 BuiltIn FragDepth
+               OpDecorate %outColor_1_1 Location 0
+               OpDecorate %gl_FragDepth_1_1 BuiltIn FragDepth
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%outColor_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%gl_FragDepth_1_1 = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
    %outColor = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Private_float = OpTypePointer Private %float
-          %8 = OpConstantNull %float
 %gl_FragDepth = OpVariable %_ptr_Private_float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-%tint_symbol_2 = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
     %float_0 = OpConstant %float 0
          %18 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
 %float_0_600000024 = OpConstant %float 0.600000024
    %main_out = OpTypeStruct %v4float %float
-         %20 = OpTypeFunction %void %main_out
+         %20 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
                OpStore %outColor %18
                OpStore %gl_FragDepth %float_0_600000024
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %20
-%tint_symbol = OpFunctionParameter %main_out
-         %24 = OpLabel
-         %25 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %25
-         %26 = OpCompositeExtract %float %tint_symbol 1
-               OpStore %tint_symbol_2 %26
-               OpReturn
+ %main_inner = OpFunction %main_out None %20
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %main_1
+         %25 = OpLoad %v4float %outColor
+         %26 = OpLoad %float %gl_FragDepth
+         %27 = OpCompositeConstruct %main_out %25 %26
+               OpReturnValue %27
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %main_1
-         %31 = OpLoad %v4float %outColor
-         %32 = OpLoad %float %gl_FragDepth
-         %33 = OpCompositeConstruct %main_out %31 %32
-         %30 = OpFunctionCall %void %tint_symbol_3 %33
+         %29 = OpLabel
+         %30 = OpFunctionCall %main_out %main_inner
+         %31 = OpCompositeExtract %v4float %30 0
+               OpStore %outColor_1_1 %31
+         %32 = OpCompositeExtract %float %30 1
+               OpStore %gl_FragDepth_1_1 %32
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.spvasm.expected.spvasm
index ce10d20..4eb6e6e 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.spvasm.expected.spvasm
@@ -5,42 +5,42 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2 %tint_symbol_3
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %outColor_1_1 %gl_FragDepth_1_1
                OpExecutionMode %main OriginUpperLeft
                OpExecutionMode %main DepthReplacing
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %outColor_1_1 "outColor_1_1"
+               OpName %gl_FragDepth_1_1 "gl_FragDepth_1_1"
                OpName %outColor "outColor"
                OpName %gl_FragDepth "gl_FragDepth"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "outColor_1"
                OpMemberName %main_out 1 "gl_FragDepth_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
-               OpDecorate %tint_symbol_3 BuiltIn FragDepth
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %outColor_1_1 Location 0
+               OpDecorate %gl_FragDepth_1_1 BuiltIn FragDepth
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-   %outColor = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Private_float = OpTypePointer Private %float
-          %8 = OpConstantNull %float
-%gl_FragDepth = OpVariable %_ptr_Private_float Private %8
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%outColor_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Output_float = OpTypePointer Output %float
-%tint_symbol_3 = OpVariable %_ptr_Output_float Output %8
+         %10 = OpConstantNull %float
+%gl_FragDepth_1_1 = OpVariable %_ptr_Output_float Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %outColor = OpVariable %_ptr_Private_v4float Private %7
+%_ptr_Private_float = OpTypePointer Private %float
+%gl_FragDepth = OpVariable %_ptr_Private_float Private %10
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %float_0 = OpConstant %float 0
@@ -48,7 +48,7 @@
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
    %main_out = OpTypeStruct %v4float %float
-         %26 = OpTypeFunction %void %main_out
+         %26 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %16
          %19 = OpLabel
                OpStore %outColor %21
@@ -57,23 +57,23 @@
                OpStore %gl_FragDepth %25
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %26
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %26
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %30 = OpLabel
-         %31 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %31
-         %32 = OpCompositeExtract %float %tint_symbol_1 1
-               OpStore %tint_symbol_3 %32
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %31 = OpFunctionCall %void %main_1
+         %32 = OpLoad %v4float %outColor
+         %33 = OpLoad %float %gl_FragDepth
+         %34 = OpCompositeConstruct %main_out %32 %33
+               OpReturnValue %34
                OpFunctionEnd
        %main = OpFunction %void None %16
-         %34 = OpLabel
-         %35 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %35
-         %36 = OpFunctionCall %void %main_1
-         %38 = OpLoad %v4float %outColor
-         %39 = OpLoad %float %gl_FragDepth
-         %40 = OpCompositeConstruct %main_out %38 %39
-         %37 = OpFunctionCall %void %tint_symbol_4 %40
+         %36 = OpLabel
+         %38 = OpLoad %v4float %gl_FragCoord_param_1
+         %37 = OpFunctionCall %main_out %main_inner %38
+         %39 = OpCompositeExtract %v4float %37 0
+               OpStore %outColor_1_1 %39
+         %40 = OpCompositeExtract %float %37 1
+               OpStore %gl_FragDepth_1_1 %40
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.wgsl.expected.spvasm
index ce10d20..4eb6e6e 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.wgsl.expected.spvasm
@@ -5,42 +5,42 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2 %tint_symbol_3
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %outColor_1_1 %gl_FragDepth_1_1
                OpExecutionMode %main OriginUpperLeft
                OpExecutionMode %main DepthReplacing
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %outColor_1_1 "outColor_1_1"
+               OpName %gl_FragDepth_1_1 "gl_FragDepth_1_1"
                OpName %outColor "outColor"
                OpName %gl_FragDepth "gl_FragDepth"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "outColor_1"
                OpMemberName %main_out 1 "gl_FragDepth_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
-               OpDecorate %tint_symbol_3 BuiltIn FragDepth
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %outColor_1_1 Location 0
+               OpDecorate %gl_FragDepth_1_1 BuiltIn FragDepth
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-   %outColor = OpVariable %_ptr_Private_v4float Private %5
-%_ptr_Private_float = OpTypePointer Private %float
-          %8 = OpConstantNull %float
-%gl_FragDepth = OpVariable %_ptr_Private_float Private %8
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%outColor_1_1 = OpVariable %_ptr_Output_v4float Output %7
 %_ptr_Output_float = OpTypePointer Output %float
-%tint_symbol_3 = OpVariable %_ptr_Output_float Output %8
+         %10 = OpConstantNull %float
+%gl_FragDepth_1_1 = OpVariable %_ptr_Output_float Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %outColor = OpVariable %_ptr_Private_v4float Private %7
+%_ptr_Private_float = OpTypePointer Private %float
+%gl_FragDepth = OpVariable %_ptr_Private_float Private %10
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %16 = OpTypeFunction %void
     %float_0 = OpConstant %float 0
@@ -48,7 +48,7 @@
        %uint = OpTypeInt 32 0
      %uint_2 = OpConstant %uint 2
    %main_out = OpTypeStruct %v4float %float
-         %26 = OpTypeFunction %void %main_out
+         %26 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %16
          %19 = OpLabel
                OpStore %outColor %21
@@ -57,23 +57,23 @@
                OpStore %gl_FragDepth %25
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %26
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %26
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %30 = OpLabel
-         %31 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %31
-         %32 = OpCompositeExtract %float %tint_symbol_1 1
-               OpStore %tint_symbol_3 %32
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %31 = OpFunctionCall %void %main_1
+         %32 = OpLoad %v4float %outColor
+         %33 = OpLoad %float %gl_FragDepth
+         %34 = OpCompositeConstruct %main_out %32 %33
+               OpReturnValue %34
                OpFunctionEnd
        %main = OpFunction %void None %16
-         %34 = OpLabel
-         %35 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %35
-         %36 = OpFunctionCall %void %main_1
-         %38 = OpLoad %v4float %outColor
-         %39 = OpLoad %float %gl_FragDepth
-         %40 = OpCompositeConstruct %main_out %38 %39
-         %37 = OpFunctionCall %void %tint_symbol_4 %40
+         %36 = OpLabel
+         %38 = OpLoad %v4float %gl_FragCoord_param_1
+         %37 = OpFunctionCall %main_out %main_inner %38
+         %39 = OpCompositeExtract %v4float %37 0
+               OpStore %outColor_1_1 %39
+         %40 = OpCompositeExtract %float %37 1
+               OpStore %gl_FragDepth_1_1 %40
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.spvasm.expected.spvasm
index 9df6dab..c901282 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.spvasm.expected.spvasm
@@ -1,68 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %outColor_1_1 %gl_FragDepth_1_1
                OpExecutionMode %main OriginUpperLeft
                OpExecutionMode %main DepthReplacing
+               OpName %outColor_1_1 "outColor_1_1"
+               OpName %gl_FragDepth_1_1 "gl_FragDepth_1_1"
                OpName %outColor "outColor"
                OpName %gl_FragDepth "gl_FragDepth"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "outColor_1"
                OpMemberName %main_out 1 "gl_FragDepth_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_2 BuiltIn FragDepth
+               OpDecorate %outColor_1_1 Location 0
+               OpDecorate %gl_FragDepth_1_1 BuiltIn FragDepth
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%outColor_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%gl_FragDepth_1_1 = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
    %outColor = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Private_float = OpTypePointer Private %float
-          %8 = OpConstantNull %float
 %gl_FragDepth = OpVariable %_ptr_Private_float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-%tint_symbol_2 = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
     %float_0 = OpConstant %float 0
          %18 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
 %float_0_699999988 = OpConstant %float 0.699999988
    %main_out = OpTypeStruct %v4float %float
-         %20 = OpTypeFunction %void %main_out
+         %20 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
                OpStore %outColor %18
                OpStore %gl_FragDepth %float_0_699999988
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %20
-%tint_symbol = OpFunctionParameter %main_out
-         %24 = OpLabel
-         %25 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %25
-         %26 = OpCompositeExtract %float %tint_symbol 1
-               OpStore %tint_symbol_2 %26
-               OpReturn
+ %main_inner = OpFunction %main_out None %20
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %main_1
+         %25 = OpLoad %v4float %outColor
+         %26 = OpLoad %float %gl_FragDepth
+         %27 = OpCompositeConstruct %main_out %25 %26
+               OpReturnValue %27
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %main_1
-         %31 = OpLoad %v4float %outColor
-         %32 = OpLoad %float %gl_FragDepth
-         %33 = OpCompositeConstruct %main_out %31 %32
-         %30 = OpFunctionCall %void %tint_symbol_3 %33
+         %29 = OpLabel
+         %30 = OpFunctionCall %main_out %main_inner
+         %31 = OpCompositeExtract %v4float %30 0
+               OpStore %outColor_1_1 %31
+         %32 = OpCompositeExtract %float %30 1
+               OpStore %gl_FragDepth_1_1 %32
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.wgsl.expected.spvasm
index 9df6dab..c901282 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.wgsl.expected.spvasm
@@ -1,68 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %outColor_1_1 %gl_FragDepth_1_1
                OpExecutionMode %main OriginUpperLeft
                OpExecutionMode %main DepthReplacing
+               OpName %outColor_1_1 "outColor_1_1"
+               OpName %gl_FragDepth_1_1 "gl_FragDepth_1_1"
                OpName %outColor "outColor"
                OpName %gl_FragDepth "gl_FragDepth"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "outColor_1"
                OpMemberName %main_out 1 "gl_FragDepth_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_2 BuiltIn FragDepth
+               OpDecorate %outColor_1_1 Location 0
+               OpDecorate %gl_FragDepth_1_1 BuiltIn FragDepth
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%outColor_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%gl_FragDepth_1_1 = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
    %outColor = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Private_float = OpTypePointer Private %float
-          %8 = OpConstantNull %float
 %gl_FragDepth = OpVariable %_ptr_Private_float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-%tint_symbol_2 = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
     %float_0 = OpConstant %float 0
          %18 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
 %float_0_699999988 = OpConstant %float 0.699999988
    %main_out = OpTypeStruct %v4float %float
-         %20 = OpTypeFunction %void %main_out
+         %20 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
                OpStore %outColor %18
                OpStore %gl_FragDepth %float_0_699999988
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %20
-%tint_symbol = OpFunctionParameter %main_out
-         %24 = OpLabel
-         %25 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %25
-         %26 = OpCompositeExtract %float %tint_symbol 1
-               OpStore %tint_symbol_2 %26
-               OpReturn
+ %main_inner = OpFunction %main_out None %20
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %main_1
+         %25 = OpLoad %v4float %outColor
+         %26 = OpLoad %float %gl_FragDepth
+         %27 = OpCompositeConstruct %main_out %25 %26
+               OpReturnValue %27
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %main_1
-         %31 = OpLoad %v4float %outColor
-         %32 = OpLoad %float %gl_FragDepth
-         %33 = OpCompositeConstruct %main_out %31 %32
-         %30 = OpFunctionCall %void %tint_symbol_3 %33
+         %29 = OpLabel
+         %30 = OpFunctionCall %main_out %main_inner
+         %31 = OpCompositeExtract %v4float %30 0
+               OpStore %outColor_1_1 %31
+         %32 = OpCompositeExtract %float %30 1
+               OpStore %gl_FragDepth_1_1 %32
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.spvasm.expected.spvasm
index abc3df8..778afc2 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.spvasm.expected.spvasm
@@ -1,68 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %outColor_1_1 %gl_FragDepth_1_1
                OpExecutionMode %main OriginUpperLeft
                OpExecutionMode %main DepthReplacing
+               OpName %outColor_1_1 "outColor_1_1"
+               OpName %gl_FragDepth_1_1 "gl_FragDepth_1_1"
                OpName %outColor "outColor"
                OpName %gl_FragDepth "gl_FragDepth"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "outColor_1"
                OpMemberName %main_out 1 "gl_FragDepth_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_2 BuiltIn FragDepth
+               OpDecorate %outColor_1_1 Location 0
+               OpDecorate %gl_FragDepth_1_1 BuiltIn FragDepth
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%outColor_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%gl_FragDepth_1_1 = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
    %outColor = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Private_float = OpTypePointer Private %float
-          %8 = OpConstantNull %float
 %gl_FragDepth = OpVariable %_ptr_Private_float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-%tint_symbol_2 = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
     %float_0 = OpConstant %float 0
          %18 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
 %float_0_400000006 = OpConstant %float 0.400000006
    %main_out = OpTypeStruct %v4float %float
-         %20 = OpTypeFunction %void %main_out
+         %20 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
                OpStore %outColor %18
                OpStore %gl_FragDepth %float_0_400000006
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %20
-%tint_symbol = OpFunctionParameter %main_out
-         %24 = OpLabel
-         %25 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %25
-         %26 = OpCompositeExtract %float %tint_symbol 1
-               OpStore %tint_symbol_2 %26
-               OpReturn
+ %main_inner = OpFunction %main_out None %20
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %main_1
+         %25 = OpLoad %v4float %outColor
+         %26 = OpLoad %float %gl_FragDepth
+         %27 = OpCompositeConstruct %main_out %25 %26
+               OpReturnValue %27
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %main_1
-         %31 = OpLoad %v4float %outColor
-         %32 = OpLoad %float %gl_FragDepth
-         %33 = OpCompositeConstruct %main_out %31 %32
-         %30 = OpFunctionCall %void %tint_symbol_3 %33
+         %29 = OpLabel
+         %30 = OpFunctionCall %main_out %main_inner
+         %31 = OpCompositeExtract %v4float %30 0
+               OpStore %outColor_1_1 %31
+         %32 = OpCompositeExtract %float %30 1
+               OpStore %gl_FragDepth_1_1 %32
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.wgsl.expected.spvasm
index abc3df8..778afc2 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.wgsl.expected.spvasm
@@ -1,68 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 34
+; Bound: 33
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol_1 %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %outColor_1_1 %gl_FragDepth_1_1
                OpExecutionMode %main OriginUpperLeft
                OpExecutionMode %main DepthReplacing
+               OpName %outColor_1_1 "outColor_1_1"
+               OpName %gl_FragDepth_1_1 "gl_FragDepth_1_1"
                OpName %outColor "outColor"
                OpName %gl_FragDepth "gl_FragDepth"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "outColor_1"
                OpMemberName %main_out 1 "gl_FragDepth_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol "tint_symbol"
+               OpName %main_inner "main_inner"
                OpName %main "main"
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_2 BuiltIn FragDepth
+               OpDecorate %outColor_1_1 Location 0
+               OpDecorate %gl_FragDepth_1_1 BuiltIn FragDepth
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
+%_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
+%outColor_1_1 = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%gl_FragDepth_1_1 = OpVariable %_ptr_Output_float Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
    %outColor = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Private_float = OpTypePointer Private %float
-          %8 = OpConstantNull %float
 %gl_FragDepth = OpVariable %_ptr_Private_float Private %8
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-%tint_symbol_2 = OpVariable %_ptr_Output_float Output %8
        %void = OpTypeVoid
          %13 = OpTypeFunction %void
     %float_0 = OpConstant %float 0
          %18 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
 %float_0_400000006 = OpConstant %float 0.400000006
    %main_out = OpTypeStruct %v4float %float
-         %20 = OpTypeFunction %void %main_out
+         %20 = OpTypeFunction %main_out
      %main_1 = OpFunction %void None %13
          %16 = OpLabel
                OpStore %outColor %18
                OpStore %gl_FragDepth %float_0_400000006
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %20
-%tint_symbol = OpFunctionParameter %main_out
-         %24 = OpLabel
-         %25 = OpCompositeExtract %v4float %tint_symbol 0
-               OpStore %tint_symbol_1 %25
-         %26 = OpCompositeExtract %float %tint_symbol 1
-               OpStore %tint_symbol_2 %26
-               OpReturn
+ %main_inner = OpFunction %main_out None %20
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %main_1
+         %25 = OpLoad %v4float %outColor
+         %26 = OpLoad %float %gl_FragDepth
+         %27 = OpCompositeConstruct %main_out %25 %26
+               OpReturnValue %27
                OpFunctionEnd
        %main = OpFunction %void None %13
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %main_1
-         %31 = OpLoad %v4float %outColor
-         %32 = OpLoad %float %gl_FragDepth
-         %33 = OpCompositeConstruct %main_out %31 %32
-         %30 = OpFunctionCall %void %tint_symbol_3 %33
+         %29 = OpLabel
+         %30 = OpFunctionCall %main_out %main_inner
+         %31 = OpCompositeExtract %v4float %30 0
+               OpStore %outColor_1_1 %31
+         %32 = OpCompositeExtract %float %30 1
+               OpStore %gl_FragDepth_1_1 %32
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.spvasm.expected.spvasm
index b7ee735..8378860 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.spvasm.expected.spvasm
@@ -5,52 +5,52 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2 %tint_symbol_3
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %position_param_1 %gl_Position_1 %pos_1_1 %vertex_point_size
+               OpName %position_param_1 "position_param_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %pos_1_1 "pos_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %position "position"
                OpName %pos "pos"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
                OpMemberName %main_out 1 "pos_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %position_param "position_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 BuiltIn Position
-               OpDecorate %tint_symbol_3 Location 0
-               OpDecorate %tint_symbol_3 Flat
+               OpDecorate %position_param_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %pos_1_1 Location 0
+               OpDecorate %pos_1_1 Flat
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %8
-       %uint = OpTypeInt 32 0
-%_ptr_Private_uint = OpTypePointer Private %uint
-         %12 = OpConstantNull %uint
-        %pos = OpVariable %_ptr_Private_uint Private %12
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%position_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %8
+          %7 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
+       %uint = OpTypeInt 32 0
 %_ptr_Output_uint = OpTypePointer Output %uint
-%tint_symbol_3 = OpVariable %_ptr_Output_uint Output %12
+         %11 = OpConstantNull %uint
+    %pos_1_1 = OpVariable %_ptr_Output_uint Output %11
+%_ptr_Output_float = OpTypePointer Output %float
+         %14 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %14
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %position = OpVariable %_ptr_Private_v4float Private %7
+%_ptr_Private_uint = OpTypePointer Private %uint
+        %pos = OpVariable %_ptr_Private_uint Private %11
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
    %main_out = OpTypeStruct %v4float %uint
-         %26 = OpTypeFunction %void %main_out
+         %26 = OpTypeFunction %main_out %v4float
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
@@ -59,24 +59,24 @@
                OpStore %pos %uint_0
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %26
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %26
+%position_param = OpFunctionParameter %v4float
          %30 = OpLabel
-         %31 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %31
-         %32 = OpCompositeExtract %uint %tint_symbol_1 1
-               OpStore %tint_symbol_3 %32
-               OpReturn
+               OpStore %position %position_param
+         %31 = OpFunctionCall %void %main_1
+         %32 = OpLoad %v4float %gl_Position
+         %33 = OpLoad %uint %pos
+         %34 = OpCompositeConstruct %main_out %32 %33
+               OpReturnValue %34
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %34 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %36 = OpLoad %v4float %tint_symbol
-               OpStore %position %36
-         %37 = OpFunctionCall %void %main_1
-         %39 = OpLoad %v4float %gl_Position
-         %40 = OpLoad %uint %pos
-         %41 = OpCompositeConstruct %main_out %39 %40
-         %38 = OpFunctionCall %void %tint_symbol_4 %41
+         %36 = OpLabel
+         %38 = OpLoad %v4float %position_param_1
+         %37 = OpFunctionCall %main_out %main_inner %38
+         %39 = OpCompositeExtract %v4float %37 0
+               OpStore %gl_Position_1 %39
+         %40 = OpCompositeExtract %uint %37 1
+               OpStore %pos_1_1 %40
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.wgsl.expected.spvasm
index b7ee735..8378860 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.wgsl.expected.spvasm
@@ -5,52 +5,52 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2 %tint_symbol_3
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %position_param_1 %gl_Position_1 %pos_1_1 %vertex_point_size
+               OpName %position_param_1 "position_param_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %pos_1_1 "pos_1_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %position "position"
                OpName %pos "pos"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
                OpMemberName %main_out 1 "pos_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %position_param "position_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 BuiltIn Position
-               OpDecorate %tint_symbol_3 Location 0
-               OpDecorate %tint_symbol_3 Flat
+               OpDecorate %position_param_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %pos_1_1 Location 0
+               OpDecorate %pos_1_1 Flat
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %8 = OpConstantNull %v4float
-   %position = OpVariable %_ptr_Private_v4float Private %8
-       %uint = OpTypeInt 32 0
-%_ptr_Private_uint = OpTypePointer Private %uint
-         %12 = OpConstantNull %uint
-        %pos = OpVariable %_ptr_Private_uint Private %12
-%gl_Position = OpVariable %_ptr_Private_v4float Private %8
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%position_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %8
+          %7 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
+       %uint = OpTypeInt 32 0
 %_ptr_Output_uint = OpTypePointer Output %uint
-%tint_symbol_3 = OpVariable %_ptr_Output_uint Output %12
+         %11 = OpConstantNull %uint
+    %pos_1_1 = OpVariable %_ptr_Output_uint Output %11
+%_ptr_Output_float = OpTypePointer Output %float
+         %14 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %14
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+   %position = OpVariable %_ptr_Private_v4float Private %7
+%_ptr_Private_uint = OpTypePointer Private %uint
+        %pos = OpVariable %_ptr_Private_uint Private %11
+%gl_Position = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
    %main_out = OpTypeStruct %v4float %uint
-         %26 = OpTypeFunction %void %main_out
+         %26 = OpTypeFunction %main_out %v4float
     %float_1 = OpConstant %float 1
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
@@ -59,24 +59,24 @@
                OpStore %pos %uint_0
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %26
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %26
+%position_param = OpFunctionParameter %v4float
          %30 = OpLabel
-         %31 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %31
-         %32 = OpCompositeExtract %uint %tint_symbol_1 1
-               OpStore %tint_symbol_3 %32
-               OpReturn
+               OpStore %position %position_param
+         %31 = OpFunctionCall %void %main_1
+         %32 = OpLoad %v4float %gl_Position
+         %33 = OpLoad %uint %pos
+         %34 = OpCompositeConstruct %main_out %32 %33
+               OpReturnValue %34
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %34 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %36 = OpLoad %v4float %tint_symbol
-               OpStore %position %36
-         %37 = OpFunctionCall %void %main_1
-         %39 = OpLoad %v4float %gl_Position
-         %40 = OpLoad %uint %pos
-         %41 = OpCompositeConstruct %main_out %39 %40
-         %38 = OpFunctionCall %void %tint_symbol_4 %41
+         %36 = OpLabel
+         %38 = OpLoad %v4float %position_param_1
+         %37 = OpFunctionCall %main_out %main_inner %38
+         %39 = OpCompositeExtract %v4float %37 0
+               OpStore %gl_Position_1 %39
+         %40 = OpCompositeExtract %uint %37 1
+               OpStore %pos_1_1 %40
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.spvasm.expected.spvasm
index 2bfe24c..845718e 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.spvasm.expected.spvasm
@@ -1,65 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_1 %tint_symbol_3 %tint_symbol_4
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_2_param_1 %x_3_param_1 %x_4_1_1 %gl_Position_1 %vertex_point_size
+               OpName %x_2_param_1 "x_2_param_1"
+               OpName %x_3_param_1 "x_3_param_1"
+               OpName %x_4_1_1 "x_4_1_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_2 "x_2"
                OpName %x_3 "x_3"
                OpName %x_4 "x_4"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_4_1"
                OpMemberName %main_out 1 "gl_Position"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_2 "tint_symbol_2"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_1 Location 1
-               OpDecorate %tint_symbol_3 Location 0
-               OpDecorate %tint_symbol_3 Flat
-               OpDecorate %tint_symbol_4 BuiltIn Position
+               OpDecorate %x_2_param_1 Location 0
+               OpDecorate %x_3_param_1 Location 1
+               OpDecorate %x_4_1_1 Location 0
+               OpDecorate %x_4_1_1 Flat
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v3float = OpTypeVector %float 3
-%_ptr_Private_v3float = OpTypePointer Private %v3float
-          %8 = OpConstantNull %v3float
-        %x_2 = OpVariable %_ptr_Private_v3float Private %8
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-         %12 = OpConstantNull %int
-        %x_3 = OpVariable %_ptr_Private_int Private %12
-        %x_4 = OpVariable %_ptr_Private_int Private %12
-    %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_Position = OpVariable %_ptr_Private_v4float Private %17
 %_ptr_Input_v3float = OpTypePointer Input %v3float
-%tint_symbol = OpVariable %_ptr_Input_v3float Input
+%x_2_param_1 = OpVariable %_ptr_Input_v3float Input
+        %int = OpTypeInt 32 1
 %_ptr_Input_int = OpTypePointer Input %int
-%tint_symbol_1 = OpVariable %_ptr_Input_int Input
+%x_3_param_1 = OpVariable %_ptr_Input_int Input
 %_ptr_Output_int = OpTypePointer Output %int
-%tint_symbol_3 = OpVariable %_ptr_Output_int Output %12
+         %10 = OpConstantNull %int
+    %x_4_1_1 = OpVariable %_ptr_Output_int Output %10
+    %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_4 = OpVariable %_ptr_Output_v4float Output %17
+         %14 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %14
+%_ptr_Output_float = OpTypePointer Output %float
+         %17 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %17
+%_ptr_Private_v3float = OpTypePointer Private %v3float
+         %20 = OpConstantNull %v3float
+        %x_2 = OpVariable %_ptr_Private_v3float Private %20
+%_ptr_Private_int = OpTypePointer Private %int
+        %x_3 = OpVariable %_ptr_Private_int Private %10
+        %x_4 = OpVariable %_ptr_Private_int Private %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_Position = OpVariable %_ptr_Private_v4float Private %14
        %void = OpTypeVoid
          %26 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %int %v4float
-         %37 = OpTypeFunction %void %main_out
+         %37 = OpTypeFunction %main_out %v3float %int
      %main_1 = OpFunction %void None %26
          %29 = OpLabel
          %30 = OpLoad %v3float %x_2
@@ -72,26 +73,27 @@
                OpStore %x_4 %36
                OpReturn
                OpFunctionEnd
-%tint_symbol_5 = OpFunction %void None %37
-%tint_symbol_2 = OpFunctionParameter %main_out
-         %41 = OpLabel
-         %42 = OpCompositeExtract %int %tint_symbol_2 0
-               OpStore %tint_symbol_3 %42
-         %43 = OpCompositeExtract %v4float %tint_symbol_2 1
-               OpStore %tint_symbol_4 %43
-               OpReturn
+ %main_inner = OpFunction %main_out None %37
+  %x_2_param = OpFunctionParameter %v3float
+  %x_3_param = OpFunctionParameter %int
+         %42 = OpLabel
+               OpStore %x_2 %x_2_param
+               OpStore %x_3 %x_3_param
+         %43 = OpFunctionCall %void %main_1
+         %44 = OpLoad %int %x_4
+         %45 = OpLoad %v4float %gl_Position
+         %46 = OpCompositeConstruct %main_out %44 %45
+               OpReturnValue %46
                OpFunctionEnd
        %main = OpFunction %void None %26
-         %45 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %46 = OpLoad %v3float %tint_symbol
-               OpStore %x_2 %46
-         %47 = OpLoad %int %tint_symbol_1
-               OpStore %x_3 %47
-         %48 = OpFunctionCall %void %main_1
-         %50 = OpLoad %int %x_4
-         %51 = OpLoad %v4float %gl_Position
-         %52 = OpCompositeConstruct %main_out %50 %51
-         %49 = OpFunctionCall %void %tint_symbol_5 %52
+         %48 = OpLabel
+         %50 = OpLoad %v3float %x_2_param_1
+         %51 = OpLoad %int %x_3_param_1
+         %49 = OpFunctionCall %main_out %main_inner %50 %51
+         %52 = OpCompositeExtract %int %49 0
+               OpStore %x_4_1_1 %52
+         %53 = OpCompositeExtract %v4float %49 1
+               OpStore %gl_Position_1 %53
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.wgsl.expected.spvasm
index 2bfe24c..845718e 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.wgsl.expected.spvasm
@@ -1,65 +1,66 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 53
+; Bound: 54
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_1 %tint_symbol_3 %tint_symbol_4
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %x_2_param_1 %x_3_param_1 %x_4_1_1 %gl_Position_1 %vertex_point_size
+               OpName %x_2_param_1 "x_2_param_1"
+               OpName %x_3_param_1 "x_3_param_1"
+               OpName %x_4_1_1 "x_4_1_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %x_2 "x_2"
                OpName %x_3 "x_3"
                OpName %x_4 "x_4"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_4 "tint_symbol_4"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_4_1"
                OpMemberName %main_out 1 "gl_Position"
-               OpName %tint_symbol_5 "tint_symbol_5"
-               OpName %tint_symbol_2 "tint_symbol_2"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_1 Location 1
-               OpDecorate %tint_symbol_3 Location 0
-               OpDecorate %tint_symbol_3 Flat
-               OpDecorate %tint_symbol_4 BuiltIn Position
+               OpDecorate %x_2_param_1 Location 0
+               OpDecorate %x_3_param_1 Location 1
+               OpDecorate %x_4_1_1 Location 0
+               OpDecorate %x_4_1_1 Flat
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
                OpMemberDecorate %main_out 1 Offset 16
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v3float = OpTypeVector %float 3
-%_ptr_Private_v3float = OpTypePointer Private %v3float
-          %8 = OpConstantNull %v3float
-        %x_2 = OpVariable %_ptr_Private_v3float Private %8
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-         %12 = OpConstantNull %int
-        %x_3 = OpVariable %_ptr_Private_int Private %12
-        %x_4 = OpVariable %_ptr_Private_int Private %12
-    %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-         %17 = OpConstantNull %v4float
-%gl_Position = OpVariable %_ptr_Private_v4float Private %17
 %_ptr_Input_v3float = OpTypePointer Input %v3float
-%tint_symbol = OpVariable %_ptr_Input_v3float Input
+%x_2_param_1 = OpVariable %_ptr_Input_v3float Input
+        %int = OpTypeInt 32 1
 %_ptr_Input_int = OpTypePointer Input %int
-%tint_symbol_1 = OpVariable %_ptr_Input_int Input
+%x_3_param_1 = OpVariable %_ptr_Input_int Input
 %_ptr_Output_int = OpTypePointer Output %int
-%tint_symbol_3 = OpVariable %_ptr_Output_int Output %12
+         %10 = OpConstantNull %int
+    %x_4_1_1 = OpVariable %_ptr_Output_int Output %10
+    %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_4 = OpVariable %_ptr_Output_v4float Output %17
+         %14 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %14
+%_ptr_Output_float = OpTypePointer Output %float
+         %17 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %17
+%_ptr_Private_v3float = OpTypePointer Private %v3float
+         %20 = OpConstantNull %v3float
+        %x_2 = OpVariable %_ptr_Private_v3float Private %20
+%_ptr_Private_int = OpTypePointer Private %int
+        %x_3 = OpVariable %_ptr_Private_int Private %10
+        %x_4 = OpVariable %_ptr_Private_int Private %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_Position = OpVariable %_ptr_Private_v4float Private %14
        %void = OpTypeVoid
          %26 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %int %v4float
-         %37 = OpTypeFunction %void %main_out
+         %37 = OpTypeFunction %main_out %v3float %int
      %main_1 = OpFunction %void None %26
          %29 = OpLabel
          %30 = OpLoad %v3float %x_2
@@ -72,26 +73,27 @@
                OpStore %x_4 %36
                OpReturn
                OpFunctionEnd
-%tint_symbol_5 = OpFunction %void None %37
-%tint_symbol_2 = OpFunctionParameter %main_out
-         %41 = OpLabel
-         %42 = OpCompositeExtract %int %tint_symbol_2 0
-               OpStore %tint_symbol_3 %42
-         %43 = OpCompositeExtract %v4float %tint_symbol_2 1
-               OpStore %tint_symbol_4 %43
-               OpReturn
+ %main_inner = OpFunction %main_out None %37
+  %x_2_param = OpFunctionParameter %v3float
+  %x_3_param = OpFunctionParameter %int
+         %42 = OpLabel
+               OpStore %x_2 %x_2_param
+               OpStore %x_3 %x_3_param
+         %43 = OpFunctionCall %void %main_1
+         %44 = OpLoad %int %x_4
+         %45 = OpLoad %v4float %gl_Position
+         %46 = OpCompositeConstruct %main_out %44 %45
+               OpReturnValue %46
                OpFunctionEnd
        %main = OpFunction %void None %26
-         %45 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %46 = OpLoad %v3float %tint_symbol
-               OpStore %x_2 %46
-         %47 = OpLoad %int %tint_symbol_1
-               OpStore %x_3 %47
-         %48 = OpFunctionCall %void %main_1
-         %50 = OpLoad %int %x_4
-         %51 = OpLoad %v4float %gl_Position
-         %52 = OpCompositeConstruct %main_out %50 %51
-         %49 = OpFunctionCall %void %tint_symbol_5 %52
+         %48 = OpLabel
+         %50 = OpLoad %v3float %x_2_param_1
+         %51 = OpLoad %int %x_3_param_1
+         %49 = OpFunctionCall %main_out %main_inner %50 %51
+         %52 = OpCompositeExtract %int %49 0
+               OpStore %x_4_1_1 %52
+         %53 = OpCompositeExtract %v4float %49 1
+               OpStore %gl_Position_1 %53
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.spvasm.expected.spvasm
index 3a722c8..27651db 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.spvasm.expected.spvasm
@@ -1,52 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 62
+; Bound: 63
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_3
+               OpEntryPoint Fragment %main "main" %x_2_param_1 %x_3_param_1 %x_4_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_2_param_1 "x_2_param_1"
+               OpName %x_3_param_1 "x_3_param_1"
+               OpName %x_4_1_1 "x_4_1_1"
                OpName %x_2 "x_2"
                OpName %x_3 "x_3"
                OpName %x_4 "x_4"
                OpName %x_5 "x_5"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_4_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_2 "tint_symbol_2"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
+               OpDecorate %x_2_param_1 BuiltIn FragCoord
+               OpDecorate %x_3_param_1 Location 0
+               OpDecorate %x_3_param_1 Flat
+               OpDecorate %x_4_1_1 Location 0
                OpDecorate %x_5 NonReadable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_1 Flat
-               OpDecorate %tint_symbol_3 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %5
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %9 = OpConstantNull %int
-        %x_3 = OpVariable %_ptr_Private_int Private %9
-        %x_4 = OpVariable %_ptr_Private_int Private %9
-         %13 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_13 = OpTypePointer UniformConstant %13
-        %x_5 = OpVariable %_ptr_UniformConstant_13 UniformConstant
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%x_2_param_1 = OpVariable %_ptr_Input_v4float Input
+        %int = OpTypeInt 32 1
 %_ptr_Input_int = OpTypePointer Input %int
-%tint_symbol_1 = OpVariable %_ptr_Input_int Input
+%x_3_param_1 = OpVariable %_ptr_Input_int Input
 %_ptr_Output_int = OpTypePointer Output %int
-%tint_symbol_3 = OpVariable %_ptr_Output_int Output %9
+         %10 = OpConstantNull %int
+    %x_4_1_1 = OpVariable %_ptr_Output_int Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+         %13 = OpConstantNull %v4float
+        %x_2 = OpVariable %_ptr_Private_v4float Private %13
+%_ptr_Private_int = OpTypePointer Private %int
+        %x_3 = OpVariable %_ptr_Private_int Private %10
+        %x_4 = OpVariable %_ptr_Private_int Private %10
+         %19 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+        %x_5 = OpVariable %_ptr_UniformConstant_19 UniformConstant
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
@@ -55,7 +56,7 @@
       %v4int = OpTypeVector %int 4
       %int_0 = OpConstant %int 0
    %main_out = OpTypeStruct %int
-         %48 = OpTypeFunction %void %main_out
+         %48 = OpTypeFunction %main_out %v4float %int
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
                OpStore %x_4 %int_1
@@ -77,28 +78,29 @@
          %40 = OpLabel
                OpBranch %39
          %39 = OpLabel
-         %42 = OpLoad %13 %x_5
+         %42 = OpLoad %19 %x_5
          %44 = OpCompositeConstruct %v2int %26 %28
          %47 = OpCompositeConstruct %v4int %26 %int_0 %int_0 %int_0
                OpImageWrite %42 %44 %47
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %48
-%tint_symbol_2 = OpFunctionParameter %main_out
-         %52 = OpLabel
-         %53 = OpCompositeExtract %int %tint_symbol_2 0
-               OpStore %tint_symbol_3 %53
-               OpReturn
+ %main_inner = OpFunction %main_out None %48
+  %x_2_param = OpFunctionParameter %v4float
+  %x_3_param = OpFunctionParameter %int
+         %53 = OpLabel
+               OpStore %x_2 %x_2_param
+               OpStore %x_3 %x_3_param
+         %54 = OpFunctionCall %void %main_1
+         %55 = OpLoad %int %x_4
+         %56 = OpCompositeConstruct %main_out %55
+               OpReturnValue %56
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %55 = OpLabel
-         %56 = OpLoad %v4float %tint_symbol
-               OpStore %x_2 %56
-         %57 = OpLoad %int %tint_symbol_1
-               OpStore %x_3 %57
-         %58 = OpFunctionCall %void %main_1
-         %60 = OpLoad %int %x_4
-         %61 = OpCompositeConstruct %main_out %60
-         %59 = OpFunctionCall %void %tint_symbol_4 %61
+         %58 = OpLabel
+         %60 = OpLoad %v4float %x_2_param_1
+         %61 = OpLoad %int %x_3_param_1
+         %59 = OpFunctionCall %main_out %main_inner %60 %61
+         %62 = OpCompositeExtract %int %59 0
+               OpStore %x_4_1_1 %62
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.wgsl.expected.spvasm
index 3a722c8..27651db 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.wgsl.expected.spvasm
@@ -1,52 +1,53 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 62
+; Bound: 63
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_3
+               OpEntryPoint Fragment %main "main" %x_2_param_1 %x_3_param_1 %x_4_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_2_param_1 "x_2_param_1"
+               OpName %x_3_param_1 "x_3_param_1"
+               OpName %x_4_1_1 "x_4_1_1"
                OpName %x_2 "x_2"
                OpName %x_3 "x_3"
                OpName %x_4 "x_4"
                OpName %x_5 "x_5"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_4_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_2 "tint_symbol_2"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
+               OpDecorate %x_2_param_1 BuiltIn FragCoord
+               OpDecorate %x_3_param_1 Location 0
+               OpDecorate %x_3_param_1 Flat
+               OpDecorate %x_4_1_1 Location 0
                OpDecorate %x_5 NonReadable
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_1 Flat
-               OpDecorate %tint_symbol_3 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %5
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %9 = OpConstantNull %int
-        %x_3 = OpVariable %_ptr_Private_int Private %9
-        %x_4 = OpVariable %_ptr_Private_int Private %9
-         %13 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_13 = OpTypePointer UniformConstant %13
-        %x_5 = OpVariable %_ptr_UniformConstant_13 UniformConstant
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%x_2_param_1 = OpVariable %_ptr_Input_v4float Input
+        %int = OpTypeInt 32 1
 %_ptr_Input_int = OpTypePointer Input %int
-%tint_symbol_1 = OpVariable %_ptr_Input_int Input
+%x_3_param_1 = OpVariable %_ptr_Input_int Input
 %_ptr_Output_int = OpTypePointer Output %int
-%tint_symbol_3 = OpVariable %_ptr_Output_int Output %9
+         %10 = OpConstantNull %int
+    %x_4_1_1 = OpVariable %_ptr_Output_int Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+         %13 = OpConstantNull %v4float
+        %x_2 = OpVariable %_ptr_Private_v4float Private %13
+%_ptr_Private_int = OpTypePointer Private %int
+        %x_3 = OpVariable %_ptr_Private_int Private %10
+        %x_4 = OpVariable %_ptr_Private_int Private %10
+         %19 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+        %x_5 = OpVariable %_ptr_UniformConstant_19 UniformConstant
        %void = OpTypeVoid
          %20 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
@@ -55,7 +56,7 @@
       %v4int = OpTypeVector %int 4
       %int_0 = OpConstant %int 0
    %main_out = OpTypeStruct %int
-         %48 = OpTypeFunction %void %main_out
+         %48 = OpTypeFunction %main_out %v4float %int
      %main_1 = OpFunction %void None %20
          %23 = OpLabel
                OpStore %x_4 %int_1
@@ -77,28 +78,29 @@
          %40 = OpLabel
                OpBranch %39
          %39 = OpLabel
-         %42 = OpLoad %13 %x_5
+         %42 = OpLoad %19 %x_5
          %44 = OpCompositeConstruct %v2int %26 %28
          %47 = OpCompositeConstruct %v4int %26 %int_0 %int_0 %int_0
                OpImageWrite %42 %44 %47
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %48
-%tint_symbol_2 = OpFunctionParameter %main_out
-         %52 = OpLabel
-         %53 = OpCompositeExtract %int %tint_symbol_2 0
-               OpStore %tint_symbol_3 %53
-               OpReturn
+ %main_inner = OpFunction %main_out None %48
+  %x_2_param = OpFunctionParameter %v4float
+  %x_3_param = OpFunctionParameter %int
+         %53 = OpLabel
+               OpStore %x_2 %x_2_param
+               OpStore %x_3 %x_3_param
+         %54 = OpFunctionCall %void %main_1
+         %55 = OpLoad %int %x_4
+         %56 = OpCompositeConstruct %main_out %55
+               OpReturnValue %56
                OpFunctionEnd
        %main = OpFunction %void None %20
-         %55 = OpLabel
-         %56 = OpLoad %v4float %tint_symbol
-               OpStore %x_2 %56
-         %57 = OpLoad %int %tint_symbol_1
-               OpStore %x_3 %57
-         %58 = OpFunctionCall %void %main_1
-         %60 = OpLoad %int %x_4
-         %61 = OpCompositeConstruct %main_out %60
-         %59 = OpFunctionCall %void %tint_symbol_4 %61
+         %58 = OpLabel
+         %60 = OpLoad %v4float %x_2_param_1
+         %61 = OpLoad %int %x_3_param_1
+         %59 = OpFunctionCall %main_out %main_inner %60 %61
+         %62 = OpCompositeExtract %int %59 0
+               OpStore %x_4_1_1 %62
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.spvasm.expected.spvasm
index 99bfcd9..6946b61 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.spvasm.expected.spvasm
@@ -1,51 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_3
+               OpEntryPoint Fragment %main "main" %x_2_param_1 %x_3_param_1 %x_4_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_2_param_1 "x_2_param_1"
+               OpName %x_3_param_1 "x_3_param_1"
+               OpName %x_4_1_1 "x_4_1_1"
                OpName %x_2 "x_2"
                OpName %x_3 "x_3"
                OpName %x_4 "x_4"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_4_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_2 "tint_symbol_2"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_1 Flat
-               OpDecorate %tint_symbol_3 Location 0
+               OpDecorate %x_2_param_1 BuiltIn FragCoord
+               OpDecorate %x_3_param_1 Location 0
+               OpDecorate %x_3_param_1 Flat
+               OpDecorate %x_4_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %5
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %9 = OpConstantNull %int
-        %x_3 = OpVariable %_ptr_Private_int Private %9
-        %x_4 = OpVariable %_ptr_Private_int Private %9
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%x_2_param_1 = OpVariable %_ptr_Input_v4float Input
+        %int = OpTypeInt 32 1
 %_ptr_Input_int = OpTypePointer Input %int
-%tint_symbol_1 = OpVariable %_ptr_Input_int Input
+%x_3_param_1 = OpVariable %_ptr_Input_int Input
 %_ptr_Output_int = OpTypePointer Output %int
-%tint_symbol_3 = OpVariable %_ptr_Output_int Output %9
+         %10 = OpConstantNull %int
+    %x_4_1_1 = OpVariable %_ptr_Output_int Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+         %13 = OpConstantNull %v4float
+        %x_2 = OpVariable %_ptr_Private_v4float Private %13
+%_ptr_Private_int = OpTypePointer Private %int
+        %x_3 = OpVariable %_ptr_Private_int Private %10
+        %x_4 = OpVariable %_ptr_Private_int Private %10
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
        %bool = OpTypeBool
    %main_out = OpTypeStruct %int
-         %38 = OpTypeFunction %void %main_out
+         %38 = OpTypeFunction %main_out %v4float %int
      %main_1 = OpFunction %void None %17
          %20 = OpLabel
          %21 = OpLoad %v4float %x_2
@@ -69,22 +70,23 @@
                OpStore %x_4 %int_1
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %38
-%tint_symbol_2 = OpFunctionParameter %main_out
-         %42 = OpLabel
-         %43 = OpCompositeExtract %int %tint_symbol_2 0
-               OpStore %tint_symbol_3 %43
-               OpReturn
+ %main_inner = OpFunction %main_out None %38
+  %x_2_param = OpFunctionParameter %v4float
+  %x_3_param = OpFunctionParameter %int
+         %43 = OpLabel
+               OpStore %x_2 %x_2_param
+               OpStore %x_3 %x_3_param
+         %44 = OpFunctionCall %void %main_1
+         %45 = OpLoad %int %x_4
+         %46 = OpCompositeConstruct %main_out %45
+               OpReturnValue %46
                OpFunctionEnd
        %main = OpFunction %void None %17
-         %45 = OpLabel
-         %46 = OpLoad %v4float %tint_symbol
-               OpStore %x_2 %46
-         %47 = OpLoad %int %tint_symbol_1
-               OpStore %x_3 %47
-         %48 = OpFunctionCall %void %main_1
-         %50 = OpLoad %int %x_4
-         %51 = OpCompositeConstruct %main_out %50
-         %49 = OpFunctionCall %void %tint_symbol_4 %51
+         %48 = OpLabel
+         %50 = OpLoad %v4float %x_2_param_1
+         %51 = OpLoad %int %x_3_param_1
+         %49 = OpFunctionCall %main_out %main_inner %50 %51
+         %52 = OpCompositeExtract %int %49 0
+               OpStore %x_4_1_1 %52
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.wgsl.expected.spvasm
index 99bfcd9..6946b61 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.wgsl.expected.spvasm
@@ -1,51 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_3
+               OpEntryPoint Fragment %main "main" %x_2_param_1 %x_3_param_1 %x_4_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_2_param_1 "x_2_param_1"
+               OpName %x_3_param_1 "x_3_param_1"
+               OpName %x_4_1_1 "x_4_1_1"
                OpName %x_2 "x_2"
                OpName %x_3 "x_3"
                OpName %x_4 "x_4"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_4_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_2 "tint_symbol_2"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_1 Flat
-               OpDecorate %tint_symbol_3 Location 0
+               OpDecorate %x_2_param_1 BuiltIn FragCoord
+               OpDecorate %x_3_param_1 Location 0
+               OpDecorate %x_3_param_1 Flat
+               OpDecorate %x_4_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %5
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %9 = OpConstantNull %int
-        %x_3 = OpVariable %_ptr_Private_int Private %9
-        %x_4 = OpVariable %_ptr_Private_int Private %9
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%x_2_param_1 = OpVariable %_ptr_Input_v4float Input
+        %int = OpTypeInt 32 1
 %_ptr_Input_int = OpTypePointer Input %int
-%tint_symbol_1 = OpVariable %_ptr_Input_int Input
+%x_3_param_1 = OpVariable %_ptr_Input_int Input
 %_ptr_Output_int = OpTypePointer Output %int
-%tint_symbol_3 = OpVariable %_ptr_Output_int Output %9
+         %10 = OpConstantNull %int
+    %x_4_1_1 = OpVariable %_ptr_Output_int Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+         %13 = OpConstantNull %v4float
+        %x_2 = OpVariable %_ptr_Private_v4float Private %13
+%_ptr_Private_int = OpTypePointer Private %int
+        %x_3 = OpVariable %_ptr_Private_int Private %10
+        %x_4 = OpVariable %_ptr_Private_int Private %10
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
        %bool = OpTypeBool
    %main_out = OpTypeStruct %int
-         %38 = OpTypeFunction %void %main_out
+         %38 = OpTypeFunction %main_out %v4float %int
      %main_1 = OpFunction %void None %17
          %20 = OpLabel
          %21 = OpLoad %v4float %x_2
@@ -69,22 +70,23 @@
                OpStore %x_4 %int_1
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %38
-%tint_symbol_2 = OpFunctionParameter %main_out
-         %42 = OpLabel
-         %43 = OpCompositeExtract %int %tint_symbol_2 0
-               OpStore %tint_symbol_3 %43
-               OpReturn
+ %main_inner = OpFunction %main_out None %38
+  %x_2_param = OpFunctionParameter %v4float
+  %x_3_param = OpFunctionParameter %int
+         %43 = OpLabel
+               OpStore %x_2 %x_2_param
+               OpStore %x_3 %x_3_param
+         %44 = OpFunctionCall %void %main_1
+         %45 = OpLoad %int %x_4
+         %46 = OpCompositeConstruct %main_out %45
+               OpReturnValue %46
                OpFunctionEnd
        %main = OpFunction %void None %17
-         %45 = OpLabel
-         %46 = OpLoad %v4float %tint_symbol
-               OpStore %x_2 %46
-         %47 = OpLoad %int %tint_symbol_1
-               OpStore %x_3 %47
-         %48 = OpFunctionCall %void %main_1
-         %50 = OpLoad %int %x_4
-         %51 = OpCompositeConstruct %main_out %50
-         %49 = OpFunctionCall %void %tint_symbol_4 %51
+         %48 = OpLabel
+         %50 = OpLoad %v4float %x_2_param_1
+         %51 = OpLoad %int %x_3_param_1
+         %49 = OpFunctionCall %main_out %main_inner %50 %51
+         %52 = OpCompositeExtract %int %49 0
+               OpStore %x_4_1_1 %52
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.spvasm
index f4f2052..54f0b56 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.spvasm
@@ -5,36 +5,36 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %out_data_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %out_data_1_1 "out_data_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %out_data "out_data"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_is_odd "x_is_odd"
                OpName %y_is_odd "y_is_odd"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "out_data_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %out_data_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %9 = OpConstantNull %int
-   %out_data = OpVariable %_ptr_Private_int Private %9
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+        %int = OpTypeInt 32 1
 %_ptr_Output_int = OpTypePointer Output %int
-%tint_symbol_2 = OpVariable %_ptr_Output_int Output %9
+          %8 = OpConstantNull %int
+%out_data_1_1 = OpVariable %_ptr_Output_int Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+         %11 = OpConstantNull %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %11
+%_ptr_Private_int = OpTypePointer Private %int
+   %out_data = OpVariable %_ptr_Private_int Private %8
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -47,7 +47,7 @@
      %uint_1 = OpConstant %uint 1
       %int_0 = OpConstant %int 0
    %main_out = OpTypeStruct %int
-         %43 = OpTypeFunction %void %main_out
+         %43 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
    %x_is_odd = OpVariable %_ptr_Function_bool Function %21
@@ -71,20 +71,20 @@
                OpStore %out_data %40
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %43
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %43
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %47 = OpLabel
-         %48 = OpCompositeExtract %int %tint_symbol_1 0
-               OpStore %tint_symbol_2 %48
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %48 = OpFunctionCall %void %main_1
+         %49 = OpLoad %int %out_data
+         %50 = OpCompositeConstruct %main_out %49
+               OpReturnValue %50
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %50 = OpLabel
-         %51 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %51
-         %52 = OpFunctionCall %void %main_1
-         %54 = OpLoad %int %out_data
-         %55 = OpCompositeConstruct %main_out %54
-         %53 = OpFunctionCall %void %tint_symbol_3 %55
+         %52 = OpLabel
+         %54 = OpLoad %v4float %gl_FragCoord_param_1
+         %53 = OpFunctionCall %main_out %main_inner %54
+         %55 = OpCompositeExtract %int %53 0
+               OpStore %out_data_1_1 %55
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.wgsl.expected.spvasm
index 3488753..3a924c0 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.wgsl.expected.spvasm
@@ -5,36 +5,36 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %out_data_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %out_data_1_1 "out_data_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %out_data "out_data"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %x_is_odd "x_is_odd"
                OpName %y_is_odd "y_is_odd"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "out_data_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %out_data_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %9 = OpConstantNull %int
-   %out_data = OpVariable %_ptr_Private_int Private %9
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+        %int = OpTypeInt 32 1
 %_ptr_Output_int = OpTypePointer Output %int
-%tint_symbol_2 = OpVariable %_ptr_Output_int Output %9
+          %8 = OpConstantNull %int
+%out_data_1_1 = OpVariable %_ptr_Output_int Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+         %11 = OpConstantNull %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %11
+%_ptr_Private_int = OpTypePointer Private %int
+   %out_data = OpVariable %_ptr_Private_int Private %8
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -47,7 +47,7 @@
      %uint_1 = OpConstant %uint 1
       %int_0 = OpConstant %int 0
    %main_out = OpTypeStruct %int
-         %45 = OpTypeFunction %void %main_out
+         %45 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
    %x_is_odd = OpVariable %_ptr_Function_bool Function %21
@@ -76,20 +76,20 @@
                OpStore %out_data %40
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %45
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %45
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %49 = OpLabel
-         %50 = OpCompositeExtract %int %tint_symbol_1 0
-               OpStore %tint_symbol_2 %50
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %50 = OpFunctionCall %void %main_1
+         %51 = OpLoad %int %out_data
+         %52 = OpCompositeConstruct %main_out %51
+               OpReturnValue %52
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %52 = OpLabel
-         %53 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %53
-         %54 = OpFunctionCall %void %main_1
-         %56 = OpLoad %int %out_data
-         %57 = OpCompositeConstruct %main_out %56
-         %55 = OpFunctionCall %void %tint_symbol_3 %57
+         %54 = OpLabel
+         %56 = OpLoad %v4float %gl_FragCoord_param_1
+         %55 = OpFunctionCall %main_out %main_inner %56
+         %57 = OpCompositeExtract %int %55 0
+               OpStore %out_data_1_1 %57
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.spvasm.expected.spvasm
index 6d9599f..f08c812 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.spvasm.expected.spvasm
@@ -1,51 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_3
+               OpEntryPoint Fragment %main "main" %x_2_param_1 %x_3_param_1 %x_4_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_2_param_1 "x_2_param_1"
+               OpName %x_3_param_1 "x_3_param_1"
+               OpName %x_4_1_1 "x_4_1_1"
                OpName %x_2 "x_2"
                OpName %x_3 "x_3"
                OpName %x_4 "x_4"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_4_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_2 "tint_symbol_2"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_1 Flat
-               OpDecorate %tint_symbol_3 Location 0
+               OpDecorate %x_2_param_1 BuiltIn FragCoord
+               OpDecorate %x_3_param_1 Location 0
+               OpDecorate %x_3_param_1 Flat
+               OpDecorate %x_4_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %5
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %9 = OpConstantNull %int
-        %x_3 = OpVariable %_ptr_Private_int Private %9
-        %x_4 = OpVariable %_ptr_Private_int Private %9
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%x_2_param_1 = OpVariable %_ptr_Input_v4float Input
+        %int = OpTypeInt 32 1
 %_ptr_Input_int = OpTypePointer Input %int
-%tint_symbol_1 = OpVariable %_ptr_Input_int Input
+%x_3_param_1 = OpVariable %_ptr_Input_int Input
 %_ptr_Output_int = OpTypePointer Output %int
-%tint_symbol_3 = OpVariable %_ptr_Output_int Output %9
+         %10 = OpConstantNull %int
+    %x_4_1_1 = OpVariable %_ptr_Output_int Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+         %13 = OpConstantNull %v4float
+        %x_2 = OpVariable %_ptr_Private_v4float Private %13
+%_ptr_Private_int = OpTypePointer Private %int
+        %x_3 = OpVariable %_ptr_Private_int Private %10
+        %x_4 = OpVariable %_ptr_Private_int Private %10
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
        %bool = OpTypeBool
    %main_out = OpTypeStruct %int
-         %38 = OpTypeFunction %void %main_out
+         %38 = OpTypeFunction %main_out %v4float %int
      %main_1 = OpFunction %void None %17
          %20 = OpLabel
          %21 = OpLoad %v4float %x_2
@@ -69,22 +70,23 @@
          %36 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %38
-%tint_symbol_2 = OpFunctionParameter %main_out
-         %42 = OpLabel
-         %43 = OpCompositeExtract %int %tint_symbol_2 0
-               OpStore %tint_symbol_3 %43
-               OpReturn
+ %main_inner = OpFunction %main_out None %38
+  %x_2_param = OpFunctionParameter %v4float
+  %x_3_param = OpFunctionParameter %int
+         %43 = OpLabel
+               OpStore %x_2 %x_2_param
+               OpStore %x_3 %x_3_param
+         %44 = OpFunctionCall %void %main_1
+         %45 = OpLoad %int %x_4
+         %46 = OpCompositeConstruct %main_out %45
+               OpReturnValue %46
                OpFunctionEnd
        %main = OpFunction %void None %17
-         %45 = OpLabel
-         %46 = OpLoad %v4float %tint_symbol
-               OpStore %x_2 %46
-         %47 = OpLoad %int %tint_symbol_1
-               OpStore %x_3 %47
-         %48 = OpFunctionCall %void %main_1
-         %50 = OpLoad %int %x_4
-         %51 = OpCompositeConstruct %main_out %50
-         %49 = OpFunctionCall %void %tint_symbol_4 %51
+         %48 = OpLabel
+         %50 = OpLoad %v4float %x_2_param_1
+         %51 = OpLoad %int %x_3_param_1
+         %49 = OpFunctionCall %main_out %main_inner %50 %51
+         %52 = OpCompositeExtract %int %49 0
+               OpStore %x_4_1_1 %52
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.wgsl.expected.spvasm
index 6d9599f..f08c812 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.wgsl.expected.spvasm
@@ -1,51 +1,52 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 52
+; Bound: 53
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_3
+               OpEntryPoint Fragment %main "main" %x_2_param_1 %x_3_param_1 %x_4_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_2_param_1 "x_2_param_1"
+               OpName %x_3_param_1 "x_3_param_1"
+               OpName %x_4_1_1 "x_4_1_1"
                OpName %x_2 "x_2"
                OpName %x_3 "x_3"
                OpName %x_4 "x_4"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_4_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_2 "tint_symbol_2"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_1 Flat
-               OpDecorate %tint_symbol_3 Location 0
+               OpDecorate %x_2_param_1 BuiltIn FragCoord
+               OpDecorate %x_3_param_1 Location 0
+               OpDecorate %x_3_param_1 Flat
+               OpDecorate %x_4_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %5
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %9 = OpConstantNull %int
-        %x_3 = OpVariable %_ptr_Private_int Private %9
-        %x_4 = OpVariable %_ptr_Private_int Private %9
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%x_2_param_1 = OpVariable %_ptr_Input_v4float Input
+        %int = OpTypeInt 32 1
 %_ptr_Input_int = OpTypePointer Input %int
-%tint_symbol_1 = OpVariable %_ptr_Input_int Input
+%x_3_param_1 = OpVariable %_ptr_Input_int Input
 %_ptr_Output_int = OpTypePointer Output %int
-%tint_symbol_3 = OpVariable %_ptr_Output_int Output %9
+         %10 = OpConstantNull %int
+    %x_4_1_1 = OpVariable %_ptr_Output_int Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+         %13 = OpConstantNull %v4float
+        %x_2 = OpVariable %_ptr_Private_v4float Private %13
+%_ptr_Private_int = OpTypePointer Private %int
+        %x_3 = OpVariable %_ptr_Private_int Private %10
+        %x_4 = OpVariable %_ptr_Private_int Private %10
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
        %bool = OpTypeBool
    %main_out = OpTypeStruct %int
-         %38 = OpTypeFunction %void %main_out
+         %38 = OpTypeFunction %main_out %v4float %int
      %main_1 = OpFunction %void None %17
          %20 = OpLabel
          %21 = OpLoad %v4float %x_2
@@ -69,22 +70,23 @@
          %36 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %38
-%tint_symbol_2 = OpFunctionParameter %main_out
-         %42 = OpLabel
-         %43 = OpCompositeExtract %int %tint_symbol_2 0
-               OpStore %tint_symbol_3 %43
-               OpReturn
+ %main_inner = OpFunction %main_out None %38
+  %x_2_param = OpFunctionParameter %v4float
+  %x_3_param = OpFunctionParameter %int
+         %43 = OpLabel
+               OpStore %x_2 %x_2_param
+               OpStore %x_3 %x_3_param
+         %44 = OpFunctionCall %void %main_1
+         %45 = OpLoad %int %x_4
+         %46 = OpCompositeConstruct %main_out %45
+               OpReturnValue %46
                OpFunctionEnd
        %main = OpFunction %void None %17
-         %45 = OpLabel
-         %46 = OpLoad %v4float %tint_symbol
-               OpStore %x_2 %46
-         %47 = OpLoad %int %tint_symbol_1
-               OpStore %x_3 %47
-         %48 = OpFunctionCall %void %main_1
-         %50 = OpLoad %int %x_4
-         %51 = OpCompositeConstruct %main_out %50
-         %49 = OpFunctionCall %void %tint_symbol_4 %51
+         %48 = OpLabel
+         %50 = OpLoad %v4float %x_2_param_1
+         %51 = OpLoad %int %x_3_param_1
+         %49 = OpFunctionCall %main_out %main_inner %50 %51
+         %52 = OpCompositeExtract %int %49 0
+               OpStore %x_4_1_1 %52
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.spvasm.expected.spvasm
index fef8d54..09c1dd6 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.spvasm.expected.spvasm
@@ -1,57 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 63
+; Bound: 64
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_3
+               OpEntryPoint Fragment %main "main" %x_2_param_1 %x_3_param_1 %x_4_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_2_param_1 "x_2_param_1"
+               OpName %x_3_param_1 "x_3_param_1"
+               OpName %x_4_1_1 "x_4_1_1"
                OpName %x_2 "x_2"
                OpName %x_3 "x_3"
                OpName %x_4 "x_4"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpName %x_5 "x_5"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_4_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_2 "tint_symbol_2"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
+               OpDecorate %x_2_param_1 BuiltIn FragCoord
+               OpDecorate %x_3_param_1 Location 0
+               OpDecorate %x_3_param_1 Flat
+               OpDecorate %x_4_1_1 Location 0
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_int ArrayStride 4
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_1 Flat
-               OpDecorate %tint_symbol_3 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %5
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%x_2_param_1 = OpVariable %_ptr_Input_v4float Input
         %int = OpTypeInt 32 1
+%_ptr_Input_int = OpTypePointer Input %int
+%x_3_param_1 = OpVariable %_ptr_Input_int Input
+%_ptr_Output_int = OpTypePointer Output %int
+         %10 = OpConstantNull %int
+    %x_4_1_1 = OpVariable %_ptr_Output_int Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+         %13 = OpConstantNull %v4float
+        %x_2 = OpVariable %_ptr_Private_v4float Private %13
 %_ptr_Private_int = OpTypePointer Private %int
-          %9 = OpConstantNull %int
-        %x_3 = OpVariable %_ptr_Private_int Private %9
-        %x_4 = OpVariable %_ptr_Private_int Private %9
+        %x_3 = OpVariable %_ptr_Private_int Private %10
+        %x_4 = OpVariable %_ptr_Private_int Private %10
 %_runtimearr_int = OpTypeRuntimeArray %int
           %S = OpTypeStruct %_runtimearr_int
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
         %x_5 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Input_int = OpTypePointer Input %int
-%tint_symbol_1 = OpVariable %_ptr_Input_int Input
-%_ptr_Output_int = OpTypePointer Output %int
-%tint_symbol_3 = OpVariable %_ptr_Output_int Output %9
        %void = OpTypeVoid
          %21 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
@@ -61,7 +62,7 @@
       %int_8 = OpConstant %int 8
 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
    %main_out = OpTypeStruct %int
-         %49 = OpTypeFunction %void %main_out
+         %49 = OpTypeFunction %main_out %v4float %int
      %main_1 = OpFunction %void None %21
          %24 = OpLabel
                OpStore %x_4 %int_1
@@ -89,22 +90,23 @@
                OpStore %48 %27
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %49
-%tint_symbol_2 = OpFunctionParameter %main_out
-         %53 = OpLabel
-         %54 = OpCompositeExtract %int %tint_symbol_2 0
-               OpStore %tint_symbol_3 %54
-               OpReturn
+ %main_inner = OpFunction %main_out None %49
+  %x_2_param = OpFunctionParameter %v4float
+  %x_3_param = OpFunctionParameter %int
+         %54 = OpLabel
+               OpStore %x_2 %x_2_param
+               OpStore %x_3 %x_3_param
+         %55 = OpFunctionCall %void %main_1
+         %56 = OpLoad %int %x_4
+         %57 = OpCompositeConstruct %main_out %56
+               OpReturnValue %57
                OpFunctionEnd
        %main = OpFunction %void None %21
-         %56 = OpLabel
-         %57 = OpLoad %v4float %tint_symbol
-               OpStore %x_2 %57
-         %58 = OpLoad %int %tint_symbol_1
-               OpStore %x_3 %58
-         %59 = OpFunctionCall %void %main_1
-         %61 = OpLoad %int %x_4
-         %62 = OpCompositeConstruct %main_out %61
-         %60 = OpFunctionCall %void %tint_symbol_4 %62
+         %59 = OpLabel
+         %61 = OpLoad %v4float %x_2_param_1
+         %62 = OpLoad %int %x_3_param_1
+         %60 = OpFunctionCall %main_out %main_inner %61 %62
+         %63 = OpCompositeExtract %int %60 0
+               OpStore %x_4_1_1 %63
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.wgsl.expected.spvasm
index fef8d54..09c1dd6 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.wgsl.expected.spvasm
@@ -1,57 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 63
+; Bound: 64
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_3
+               OpEntryPoint Fragment %main "main" %x_2_param_1 %x_3_param_1 %x_4_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_2_param_1 "x_2_param_1"
+               OpName %x_3_param_1 "x_3_param_1"
+               OpName %x_4_1_1 "x_4_1_1"
                OpName %x_2 "x_2"
                OpName %x_3 "x_3"
                OpName %x_4 "x_4"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpName %x_5 "x_5"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_4_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_2 "tint_symbol_2"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
+               OpDecorate %x_2_param_1 BuiltIn FragCoord
+               OpDecorate %x_3_param_1 Location 0
+               OpDecorate %x_3_param_1 Flat
+               OpDecorate %x_4_1_1 Location 0
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_int ArrayStride 4
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_1 Flat
-               OpDecorate %tint_symbol_3 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %5
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%x_2_param_1 = OpVariable %_ptr_Input_v4float Input
         %int = OpTypeInt 32 1
+%_ptr_Input_int = OpTypePointer Input %int
+%x_3_param_1 = OpVariable %_ptr_Input_int Input
+%_ptr_Output_int = OpTypePointer Output %int
+         %10 = OpConstantNull %int
+    %x_4_1_1 = OpVariable %_ptr_Output_int Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+         %13 = OpConstantNull %v4float
+        %x_2 = OpVariable %_ptr_Private_v4float Private %13
 %_ptr_Private_int = OpTypePointer Private %int
-          %9 = OpConstantNull %int
-        %x_3 = OpVariable %_ptr_Private_int Private %9
-        %x_4 = OpVariable %_ptr_Private_int Private %9
+        %x_3 = OpVariable %_ptr_Private_int Private %10
+        %x_4 = OpVariable %_ptr_Private_int Private %10
 %_runtimearr_int = OpTypeRuntimeArray %int
           %S = OpTypeStruct %_runtimearr_int
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
         %x_5 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Input_int = OpTypePointer Input %int
-%tint_symbol_1 = OpVariable %_ptr_Input_int Input
-%_ptr_Output_int = OpTypePointer Output %int
-%tint_symbol_3 = OpVariable %_ptr_Output_int Output %9
        %void = OpTypeVoid
          %21 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
@@ -61,7 +62,7 @@
       %int_8 = OpConstant %int 8
 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
    %main_out = OpTypeStruct %int
-         %49 = OpTypeFunction %void %main_out
+         %49 = OpTypeFunction %main_out %v4float %int
      %main_1 = OpFunction %void None %21
          %24 = OpLabel
                OpStore %x_4 %int_1
@@ -89,22 +90,23 @@
                OpStore %48 %27
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %49
-%tint_symbol_2 = OpFunctionParameter %main_out
-         %53 = OpLabel
-         %54 = OpCompositeExtract %int %tint_symbol_2 0
-               OpStore %tint_symbol_3 %54
-               OpReturn
+ %main_inner = OpFunction %main_out None %49
+  %x_2_param = OpFunctionParameter %v4float
+  %x_3_param = OpFunctionParameter %int
+         %54 = OpLabel
+               OpStore %x_2 %x_2_param
+               OpStore %x_3 %x_3_param
+         %55 = OpFunctionCall %void %main_1
+         %56 = OpLoad %int %x_4
+         %57 = OpCompositeConstruct %main_out %56
+               OpReturnValue %57
                OpFunctionEnd
        %main = OpFunction %void None %21
-         %56 = OpLabel
-         %57 = OpLoad %v4float %tint_symbol
-               OpStore %x_2 %57
-         %58 = OpLoad %int %tint_symbol_1
-               OpStore %x_3 %58
-         %59 = OpFunctionCall %void %main_1
-         %61 = OpLoad %int %x_4
-         %62 = OpCompositeConstruct %main_out %61
-         %60 = OpFunctionCall %void %tint_symbol_4 %62
+         %59 = OpLabel
+         %61 = OpLoad %v4float %x_2_param_1
+         %62 = OpLoad %int %x_3_param_1
+         %60 = OpFunctionCall %main_out %main_inner %61 %62
+         %63 = OpCompositeExtract %int %60 0
+               OpStore %x_4_1_1 %63
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.spvasm.expected.spvasm
index ef97582..2a1715f 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.spvasm.expected.spvasm
@@ -1,57 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 63
+; Bound: 64
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_3
+               OpEntryPoint Fragment %main "main" %x_2_param_1 %x_3_param_1 %x_4_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_2_param_1 "x_2_param_1"
+               OpName %x_3_param_1 "x_3_param_1"
+               OpName %x_4_1_1 "x_4_1_1"
                OpName %x_2 "x_2"
                OpName %x_3 "x_3"
                OpName %x_4 "x_4"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpName %x_5 "x_5"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_4_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_2 "tint_symbol_2"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
+               OpDecorate %x_2_param_1 BuiltIn FragCoord
+               OpDecorate %x_3_param_1 Location 0
+               OpDecorate %x_3_param_1 Flat
+               OpDecorate %x_4_1_1 Location 0
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_int ArrayStride 4
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_1 Flat
-               OpDecorate %tint_symbol_3 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %5
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%x_2_param_1 = OpVariable %_ptr_Input_v4float Input
         %int = OpTypeInt 32 1
+%_ptr_Input_int = OpTypePointer Input %int
+%x_3_param_1 = OpVariable %_ptr_Input_int Input
+%_ptr_Output_int = OpTypePointer Output %int
+         %10 = OpConstantNull %int
+    %x_4_1_1 = OpVariable %_ptr_Output_int Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+         %13 = OpConstantNull %v4float
+        %x_2 = OpVariable %_ptr_Private_v4float Private %13
 %_ptr_Private_int = OpTypePointer Private %int
-          %9 = OpConstantNull %int
-        %x_3 = OpVariable %_ptr_Private_int Private %9
-        %x_4 = OpVariable %_ptr_Private_int Private %9
+        %x_3 = OpVariable %_ptr_Private_int Private %10
+        %x_4 = OpVariable %_ptr_Private_int Private %10
 %_runtimearr_int = OpTypeRuntimeArray %int
           %S = OpTypeStruct %_runtimearr_int
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
         %x_5 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Input_int = OpTypePointer Input %int
-%tint_symbol_1 = OpVariable %_ptr_Input_int Input
-%_ptr_Output_int = OpTypePointer Output %int
-%tint_symbol_3 = OpVariable %_ptr_Output_int Output %9
        %void = OpTypeVoid
          %21 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
@@ -61,7 +62,7 @@
 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
        %bool = OpTypeBool
    %main_out = OpTypeStruct %int
-         %49 = OpTypeFunction %void %main_out
+         %49 = OpTypeFunction %main_out %v4float %int
      %main_1 = OpFunction %void None %21
          %24 = OpLabel
                OpStore %x_4 %int_1
@@ -89,22 +90,23 @@
          %47 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %49
-%tint_symbol_2 = OpFunctionParameter %main_out
-         %53 = OpLabel
-         %54 = OpCompositeExtract %int %tint_symbol_2 0
-               OpStore %tint_symbol_3 %54
-               OpReturn
+ %main_inner = OpFunction %main_out None %49
+  %x_2_param = OpFunctionParameter %v4float
+  %x_3_param = OpFunctionParameter %int
+         %54 = OpLabel
+               OpStore %x_2 %x_2_param
+               OpStore %x_3 %x_3_param
+         %55 = OpFunctionCall %void %main_1
+         %56 = OpLoad %int %x_4
+         %57 = OpCompositeConstruct %main_out %56
+               OpReturnValue %57
                OpFunctionEnd
        %main = OpFunction %void None %21
-         %56 = OpLabel
-         %57 = OpLoad %v4float %tint_symbol
-               OpStore %x_2 %57
-         %58 = OpLoad %int %tint_symbol_1
-               OpStore %x_3 %58
-         %59 = OpFunctionCall %void %main_1
-         %61 = OpLoad %int %x_4
-         %62 = OpCompositeConstruct %main_out %61
-         %60 = OpFunctionCall %void %tint_symbol_4 %62
+         %59 = OpLabel
+         %61 = OpLoad %v4float %x_2_param_1
+         %62 = OpLoad %int %x_3_param_1
+         %60 = OpFunctionCall %main_out %main_inner %61 %62
+         %63 = OpCompositeExtract %int %60 0
+               OpStore %x_4_1_1 %63
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.wgsl.expected.spvasm
index ef97582..2a1715f 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.wgsl.expected.spvasm
@@ -1,57 +1,58 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 63
+; Bound: 64
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_3
+               OpEntryPoint Fragment %main "main" %x_2_param_1 %x_3_param_1 %x_4_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_2_param_1 "x_2_param_1"
+               OpName %x_3_param_1 "x_3_param_1"
+               OpName %x_4_1_1 "x_4_1_1"
                OpName %x_2 "x_2"
                OpName %x_3 "x_3"
                OpName %x_4 "x_4"
                OpName %S "S"
                OpMemberName %S 0 "field0"
                OpName %x_5 "x_5"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_4_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_2 "tint_symbol_2"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
+               OpDecorate %x_2_param_1 BuiltIn FragCoord
+               OpDecorate %x_3_param_1 Location 0
+               OpDecorate %x_3_param_1 Flat
+               OpDecorate %x_4_1_1 Location 0
                OpDecorate %S Block
                OpMemberDecorate %S 0 Offset 0
                OpDecorate %_runtimearr_int ArrayStride 4
                OpDecorate %x_5 DescriptorSet 0
                OpDecorate %x_5 Binding 0
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_1 Flat
-               OpDecorate %tint_symbol_3 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %5
+%_ptr_Input_v4float = OpTypePointer Input %v4float
+%x_2_param_1 = OpVariable %_ptr_Input_v4float Input
         %int = OpTypeInt 32 1
+%_ptr_Input_int = OpTypePointer Input %int
+%x_3_param_1 = OpVariable %_ptr_Input_int Input
+%_ptr_Output_int = OpTypePointer Output %int
+         %10 = OpConstantNull %int
+    %x_4_1_1 = OpVariable %_ptr_Output_int Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+         %13 = OpConstantNull %v4float
+        %x_2 = OpVariable %_ptr_Private_v4float Private %13
 %_ptr_Private_int = OpTypePointer Private %int
-          %9 = OpConstantNull %int
-        %x_3 = OpVariable %_ptr_Private_int Private %9
-        %x_4 = OpVariable %_ptr_Private_int Private %9
+        %x_3 = OpVariable %_ptr_Private_int Private %10
+        %x_4 = OpVariable %_ptr_Private_int Private %10
 %_runtimearr_int = OpTypeRuntimeArray %int
           %S = OpTypeStruct %_runtimearr_int
 %_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
         %x_5 = OpVariable %_ptr_StorageBuffer_S StorageBuffer
-%_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
-%_ptr_Input_int = OpTypePointer Input %int
-%tint_symbol_1 = OpVariable %_ptr_Input_int Input
-%_ptr_Output_int = OpTypePointer Output %int
-%tint_symbol_3 = OpVariable %_ptr_Output_int Output %9
        %void = OpTypeVoid
          %21 = OpTypeFunction %void
       %int_1 = OpConstant %int 1
@@ -61,7 +62,7 @@
 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
        %bool = OpTypeBool
    %main_out = OpTypeStruct %int
-         %49 = OpTypeFunction %void %main_out
+         %49 = OpTypeFunction %main_out %v4float %int
      %main_1 = OpFunction %void None %21
          %24 = OpLabel
                OpStore %x_4 %int_1
@@ -89,22 +90,23 @@
          %47 = OpLabel
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %49
-%tint_symbol_2 = OpFunctionParameter %main_out
-         %53 = OpLabel
-         %54 = OpCompositeExtract %int %tint_symbol_2 0
-               OpStore %tint_symbol_3 %54
-               OpReturn
+ %main_inner = OpFunction %main_out None %49
+  %x_2_param = OpFunctionParameter %v4float
+  %x_3_param = OpFunctionParameter %int
+         %54 = OpLabel
+               OpStore %x_2 %x_2_param
+               OpStore %x_3 %x_3_param
+         %55 = OpFunctionCall %void %main_1
+         %56 = OpLoad %int %x_4
+         %57 = OpCompositeConstruct %main_out %56
+               OpReturnValue %57
                OpFunctionEnd
        %main = OpFunction %void None %21
-         %56 = OpLabel
-         %57 = OpLoad %v4float %tint_symbol
-               OpStore %x_2 %57
-         %58 = OpLoad %int %tint_symbol_1
-               OpStore %x_3 %58
-         %59 = OpFunctionCall %void %main_1
-         %61 = OpLoad %int %x_4
-         %62 = OpCompositeConstruct %main_out %61
-         %60 = OpFunctionCall %void %tint_symbol_4 %62
+         %59 = OpLabel
+         %61 = OpLoad %v4float %x_2_param_1
+         %62 = OpLoad %int %x_3_param_1
+         %60 = OpFunctionCall %main_out %main_inner %61 %62
+         %63 = OpCompositeExtract %int %60 0
+               OpStore %x_4_1_1 %63
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.spvasm.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.spvasm.expected.spvasm
index cdf2918..aaa9420 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.spvasm.expected.spvasm
@@ -1,47 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 71
+; Bound: 72
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_3
+               OpEntryPoint Fragment %main "main" %x_2_param_1 %x_3_param_1 %x_4_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_2_param_1 "x_2_param_1"
+               OpName %x_3_param_1 "x_3_param_1"
+               OpName %x_4_1_1 "x_4_1_1"
                OpName %x_2 "x_2"
                OpName %x_3 "x_3"
                OpName %x_4 "x_4"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %x_33_phi "x_33_phi"
                OpName %x_34 "x_34"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_4_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_2 "tint_symbol_2"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_1 Flat
-               OpDecorate %tint_symbol_3 Location 0
+               OpDecorate %x_2_param_1 BuiltIn FragCoord
+               OpDecorate %x_3_param_1 Location 0
+               OpDecorate %x_3_param_1 Flat
+               OpDecorate %x_4_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %5
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %9 = OpConstantNull %int
-        %x_3 = OpVariable %_ptr_Private_int Private %9
-        %x_4 = OpVariable %_ptr_Private_int Private %9
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%x_2_param_1 = OpVariable %_ptr_Input_v4float Input
+        %int = OpTypeInt 32 1
 %_ptr_Input_int = OpTypePointer Input %int
-%tint_symbol_1 = OpVariable %_ptr_Input_int Input
+%x_3_param_1 = OpVariable %_ptr_Input_int Input
 %_ptr_Output_int = OpTypePointer Output %int
-%tint_symbol_3 = OpVariable %_ptr_Output_int Output %9
+         %10 = OpConstantNull %int
+    %x_4_1_1 = OpVariable %_ptr_Output_int Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+         %13 = OpConstantNull %v4float
+        %x_2 = OpVariable %_ptr_Private_v4float Private %13
+%_ptr_Private_int = OpTypePointer Private %int
+        %x_3 = OpVariable %_ptr_Private_int Private %10
+        %x_4 = OpVariable %_ptr_Private_int Private %10
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -51,11 +52,11 @@
        %uint = OpTypeInt 32 0
      %int_10 = OpConstant %int 10
    %main_out = OpTypeStruct %int
-         %57 = OpTypeFunction %void %main_out
+         %57 = OpTypeFunction %main_out %v4float %int
      %main_1 = OpFunction %void None %17
          %20 = OpLabel
-   %x_33_phi = OpVariable %_ptr_Function_int Function %9
-       %x_34 = OpVariable %_ptr_Function_int Function %9
+   %x_33_phi = OpVariable %_ptr_Function_int Function %10
+       %x_34 = OpVariable %_ptr_Function_int Function %10
          %23 = OpLoad %v4float %x_2
          %24 = OpLoad %int %x_3
                OpStore %x_33_phi %int_0
@@ -102,22 +103,23 @@
                OpStore %x_4 %int_1
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %57
-%tint_symbol_2 = OpFunctionParameter %main_out
-         %61 = OpLabel
-         %62 = OpCompositeExtract %int %tint_symbol_2 0
-               OpStore %tint_symbol_3 %62
-               OpReturn
+ %main_inner = OpFunction %main_out None %57
+  %x_2_param = OpFunctionParameter %v4float
+  %x_3_param = OpFunctionParameter %int
+         %62 = OpLabel
+               OpStore %x_2 %x_2_param
+               OpStore %x_3 %x_3_param
+         %63 = OpFunctionCall %void %main_1
+         %64 = OpLoad %int %x_4
+         %65 = OpCompositeConstruct %main_out %64
+               OpReturnValue %65
                OpFunctionEnd
        %main = OpFunction %void None %17
-         %64 = OpLabel
-         %65 = OpLoad %v4float %tint_symbol
-               OpStore %x_2 %65
-         %66 = OpLoad %int %tint_symbol_1
-               OpStore %x_3 %66
-         %67 = OpFunctionCall %void %main_1
-         %69 = OpLoad %int %x_4
-         %70 = OpCompositeConstruct %main_out %69
-         %68 = OpFunctionCall %void %tint_symbol_4 %70
+         %67 = OpLabel
+         %69 = OpLoad %v4float %x_2_param_1
+         %70 = OpLoad %int %x_3_param_1
+         %68 = OpFunctionCall %main_out %main_inner %69 %70
+         %71 = OpCompositeExtract %int %68 0
+               OpStore %x_4_1_1 %71
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.wgsl.expected.spvasm b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.wgsl.expected.spvasm
index cdf2918..aaa9420 100644
--- a/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.wgsl.expected.spvasm
@@ -1,47 +1,48 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 71
+; Bound: 72
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_1 %tint_symbol_3
+               OpEntryPoint Fragment %main "main" %x_2_param_1 %x_3_param_1 %x_4_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %x_2_param_1 "x_2_param_1"
+               OpName %x_3_param_1 "x_3_param_1"
+               OpName %x_4_1_1 "x_4_1_1"
                OpName %x_2 "x_2"
                OpName %x_3 "x_3"
                OpName %x_4 "x_4"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_1 "tint_symbol_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
                OpName %main_1 "main_1"
                OpName %x_33_phi "x_33_phi"
                OpName %x_34 "x_34"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "x_4_1"
-               OpName %tint_symbol_4 "tint_symbol_4"
-               OpName %tint_symbol_2 "tint_symbol_2"
+               OpName %main_inner "main_inner"
+               OpName %x_2_param "x_2_param"
+               OpName %x_3_param "x_3_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_1 Location 0
-               OpDecorate %tint_symbol_1 Flat
-               OpDecorate %tint_symbol_3 Location 0
+               OpDecorate %x_2_param_1 BuiltIn FragCoord
+               OpDecorate %x_3_param_1 Location 0
+               OpDecorate %x_3_param_1 Flat
+               OpDecorate %x_4_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-        %x_2 = OpVariable %_ptr_Private_v4float Private %5
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %9 = OpConstantNull %int
-        %x_3 = OpVariable %_ptr_Private_int Private %9
-        %x_4 = OpVariable %_ptr_Private_int Private %9
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%x_2_param_1 = OpVariable %_ptr_Input_v4float Input
+        %int = OpTypeInt 32 1
 %_ptr_Input_int = OpTypePointer Input %int
-%tint_symbol_1 = OpVariable %_ptr_Input_int Input
+%x_3_param_1 = OpVariable %_ptr_Input_int Input
 %_ptr_Output_int = OpTypePointer Output %int
-%tint_symbol_3 = OpVariable %_ptr_Output_int Output %9
+         %10 = OpConstantNull %int
+    %x_4_1_1 = OpVariable %_ptr_Output_int Output %10
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+         %13 = OpConstantNull %v4float
+        %x_2 = OpVariable %_ptr_Private_v4float Private %13
+%_ptr_Private_int = OpTypePointer Private %int
+        %x_3 = OpVariable %_ptr_Private_int Private %10
+        %x_4 = OpVariable %_ptr_Private_int Private %10
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
 %_ptr_Function_int = OpTypePointer Function %int
@@ -51,11 +52,11 @@
        %uint = OpTypeInt 32 0
      %int_10 = OpConstant %int 10
    %main_out = OpTypeStruct %int
-         %57 = OpTypeFunction %void %main_out
+         %57 = OpTypeFunction %main_out %v4float %int
      %main_1 = OpFunction %void None %17
          %20 = OpLabel
-   %x_33_phi = OpVariable %_ptr_Function_int Function %9
-       %x_34 = OpVariable %_ptr_Function_int Function %9
+   %x_33_phi = OpVariable %_ptr_Function_int Function %10
+       %x_34 = OpVariable %_ptr_Function_int Function %10
          %23 = OpLoad %v4float %x_2
          %24 = OpLoad %int %x_3
                OpStore %x_33_phi %int_0
@@ -102,22 +103,23 @@
                OpStore %x_4 %int_1
                OpReturn
                OpFunctionEnd
-%tint_symbol_4 = OpFunction %void None %57
-%tint_symbol_2 = OpFunctionParameter %main_out
-         %61 = OpLabel
-         %62 = OpCompositeExtract %int %tint_symbol_2 0
-               OpStore %tint_symbol_3 %62
-               OpReturn
+ %main_inner = OpFunction %main_out None %57
+  %x_2_param = OpFunctionParameter %v4float
+  %x_3_param = OpFunctionParameter %int
+         %62 = OpLabel
+               OpStore %x_2 %x_2_param
+               OpStore %x_3 %x_3_param
+         %63 = OpFunctionCall %void %main_1
+         %64 = OpLoad %int %x_4
+         %65 = OpCompositeConstruct %main_out %64
+               OpReturnValue %65
                OpFunctionEnd
        %main = OpFunction %void None %17
-         %64 = OpLabel
-         %65 = OpLoad %v4float %tint_symbol
-               OpStore %x_2 %65
-         %66 = OpLoad %int %tint_symbol_1
-               OpStore %x_3 %66
-         %67 = OpFunctionCall %void %main_1
-         %69 = OpLoad %int %x_4
-         %70 = OpCompositeConstruct %main_out %69
-         %68 = OpFunctionCall %void %tint_symbol_4 %70
+         %67 = OpLabel
+         %69 = OpLoad %v4float %x_2_param_1
+         %70 = OpLoad %int %x_3_param_1
+         %68 = OpFunctionCall %main_out %main_inner %69 %70
+         %71 = OpCompositeExtract %int %68 0
+               OpStore %x_4_1_1 %71
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.spvasm.expected.spvasm b/test/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.spvasm.expected.spvasm
index 3a3cd55..2428fec 100644
--- a/test/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.spvasm.expected.spvasm
@@ -5,43 +5,43 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %position_param_1 %gl_Position_1 %vertex_point_size
+               OpName %position_param_1 "position_param_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %position "position"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %position_param "position_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %position_param_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v3float = OpTypeVector %float 3
-%_ptr_Private_v3float = OpTypePointer Private %v3float
-          %8 = OpConstantNull %v3float
-   %position = OpVariable %_ptr_Private_v3float Private %8
-    %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%gl_Position = OpVariable %_ptr_Private_v4float Private %12
 %_ptr_Input_v3float = OpTypePointer Input %v3float
-%tint_symbol = OpVariable %_ptr_Input_v3float Input
+%position_param_1 = OpVariable %_ptr_Input_v3float Input
+    %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+          %8 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %8
+%_ptr_Output_float = OpTypePointer Output %float
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
+%_ptr_Private_v3float = OpTypePointer Private %v3float
+         %14 = OpConstantNull %v3float
+   %position = OpVariable %_ptr_Private_v3float Private %14
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_Position = OpVariable %_ptr_Private_v4float Private %8
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %27 = OpTypeFunction %void %main_out
+         %27 = OpTypeFunction %main_out %v3float
      %main_1 = OpFunction %void None %17
          %20 = OpLabel
          %21 = OpLoad %v3float %position
@@ -52,21 +52,21 @@
                OpStore %gl_Position %26
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %27
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %27
+%position_param = OpFunctionParameter %v3float
          %31 = OpLabel
-         %32 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %32
-               OpReturn
+               OpStore %position %position_param
+         %32 = OpFunctionCall %void %main_1
+         %33 = OpLoad %v4float %gl_Position
+         %34 = OpCompositeConstruct %main_out %33
+               OpReturnValue %34
                OpFunctionEnd
        %main = OpFunction %void None %17
-         %34 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %35 = OpLoad %v3float %tint_symbol
-               OpStore %position %35
-         %36 = OpFunctionCall %void %main_1
-         %38 = OpLoad %v4float %gl_Position
-         %39 = OpCompositeConstruct %main_out %38
-         %37 = OpFunctionCall %void %tint_symbol_3 %39
+         %36 = OpLabel
+         %38 = OpLoad %v3float %position_param_1
+         %37 = OpFunctionCall %main_out %main_inner %38
+         %39 = OpCompositeExtract %v4float %37 0
+               OpStore %gl_Position_1 %39
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.wgsl.expected.spvasm b/test/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.wgsl.expected.spvasm
index 3a3cd55..2428fec 100644
--- a/test/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.wgsl.expected.spvasm
@@ -5,43 +5,43 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2
-               OpName %tint_pointsize "tint_pointsize"
+               OpEntryPoint Vertex %main "main" %position_param_1 %gl_Position_1 %vertex_point_size
+               OpName %position_param_1 "position_param_1"
+               OpName %gl_Position_1 "gl_Position_1"
+               OpName %vertex_point_size "vertex_point_size"
                OpName %position "position"
                OpName %gl_Position "gl_Position"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "gl_Position"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %position_param "position_param"
                OpName %main "main"
-               OpDecorate %tint_pointsize BuiltIn PointSize
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 BuiltIn Position
+               OpDecorate %position_param_1 Location 0
+               OpDecorate %gl_Position_1 BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
-%_ptr_Output_float = OpTypePointer Output %float
-          %4 = OpConstantNull %float
-%tint_pointsize = OpVariable %_ptr_Output_float Output %4
     %v3float = OpTypeVector %float 3
-%_ptr_Private_v3float = OpTypePointer Private %v3float
-          %8 = OpConstantNull %v3float
-   %position = OpVariable %_ptr_Private_v3float Private %8
-    %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-         %12 = OpConstantNull %v4float
-%gl_Position = OpVariable %_ptr_Private_v4float Private %12
 %_ptr_Input_v3float = OpTypePointer Input %v3float
-%tint_symbol = OpVariable %_ptr_Input_v3float Input
+%position_param_1 = OpVariable %_ptr_Input_v3float Input
+    %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %12
+          %8 = OpConstantNull %v4float
+%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %8
+%_ptr_Output_float = OpTypePointer Output %float
+         %11 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %11
+%_ptr_Private_v3float = OpTypePointer Private %v3float
+         %14 = OpConstantNull %v3float
+   %position = OpVariable %_ptr_Private_v3float Private %14
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+%gl_Position = OpVariable %_ptr_Private_v4float Private %8
        %void = OpTypeVoid
          %17 = OpTypeFunction %void
     %float_1 = OpConstant %float 1
    %main_out = OpTypeStruct %v4float
-         %27 = OpTypeFunction %void %main_out
+         %27 = OpTypeFunction %main_out %v3float
      %main_1 = OpFunction %void None %17
          %20 = OpLabel
          %21 = OpLoad %v3float %position
@@ -52,21 +52,21 @@
                OpStore %gl_Position %26
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %27
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %27
+%position_param = OpFunctionParameter %v3float
          %31 = OpLabel
-         %32 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %32
-               OpReturn
+               OpStore %position %position_param
+         %32 = OpFunctionCall %void %main_1
+         %33 = OpLoad %v4float %gl_Position
+         %34 = OpCompositeConstruct %main_out %33
+               OpReturnValue %34
                OpFunctionEnd
        %main = OpFunction %void None %17
-         %34 = OpLabel
-               OpStore %tint_pointsize %float_1
-         %35 = OpLoad %v3float %tint_symbol
-               OpStore %position %35
-         %36 = OpFunctionCall %void %main_1
-         %38 = OpLoad %v4float %gl_Position
-         %39 = OpCompositeConstruct %main_out %38
-         %37 = OpFunctionCall %void %tint_symbol_3 %39
+         %36 = OpLabel
+         %38 = OpLoad %v3float %position_param_1
+         %37 = OpFunctionCall %main_out %main_inner %38
+         %39 = OpCompositeExtract %v4float %37 0
+               OpStore %gl_Position_1 %39
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.spvasm.expected.spvasm b/test/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.spvasm.expected.spvasm
index 08bdcac..553335c 100644
--- a/test/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.spvasm.expected.spvasm
@@ -5,37 +5,37 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %expect_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %expect_1_1 "expect_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %expect "expect"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %inbounds "inbounds"
                OpName %x_31 "x_31"
                OpName %x_32_phi "x_32_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "expect_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %expect_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %9 = OpConstantNull %int
-     %expect = OpVariable %_ptr_Private_int Private %9
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+        %int = OpTypeInt 32 1
 %_ptr_Output_int = OpTypePointer Output %int
-%tint_symbol_2 = OpVariable %_ptr_Output_int Output %9
+          %8 = OpConstantNull %int
+ %expect_1_1 = OpVariable %_ptr_Output_int Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+         %11 = OpConstantNull %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %11
+%_ptr_Private_int = OpTypePointer Private %int
+     %expect = OpVariable %_ptr_Private_int Private %8
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -49,7 +49,7 @@
       %int_1 = OpConstant %int 1
      %int_n1 = OpConstant %int -1
    %main_out = OpTypeStruct %int
-         %44 = OpTypeFunction %void %main_out
+         %44 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
    %inbounds = OpVariable %_ptr_Function_bool Function %21
@@ -78,20 +78,20 @@
                OpStore %expect %41
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %44
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %44
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %48 = OpLabel
-         %49 = OpCompositeExtract %int %tint_symbol_1 0
-               OpStore %tint_symbol_2 %49
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %49 = OpFunctionCall %void %main_1
+         %50 = OpLoad %int %expect
+         %51 = OpCompositeConstruct %main_out %50
+               OpReturnValue %51
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %51 = OpLabel
-         %52 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %52
-         %53 = OpFunctionCall %void %main_1
-         %55 = OpLoad %int %expect
-         %56 = OpCompositeConstruct %main_out %55
-         %54 = OpFunctionCall %void %tint_symbol_3 %56
+         %53 = OpLabel
+         %55 = OpLoad %v4float %gl_FragCoord_param_1
+         %54 = OpFunctionCall %main_out %main_inner %55
+         %56 = OpCompositeExtract %int %54 0
+               OpStore %expect_1_1 %56
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.wgsl.expected.spvasm b/test/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.wgsl.expected.spvasm
index 08bdcac..553335c 100644
--- a/test/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.wgsl.expected.spvasm
@@ -5,37 +5,37 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %expect_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %expect_1_1 "expect_1_1"
                OpName %gl_FragCoord "gl_FragCoord"
                OpName %expect "expect"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %inbounds "inbounds"
                OpName %x_31 "x_31"
                OpName %x_32_phi "x_32_phi"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "expect_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %expect_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
-        %int = OpTypeInt 32 1
-%_ptr_Private_int = OpTypePointer Private %int
-          %9 = OpConstantNull %int
-     %expect = OpVariable %_ptr_Private_int Private %9
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
+        %int = OpTypeInt 32 1
 %_ptr_Output_int = OpTypePointer Output %int
-%tint_symbol_2 = OpVariable %_ptr_Output_int Output %9
+          %8 = OpConstantNull %int
+ %expect_1_1 = OpVariable %_ptr_Output_int Output %8
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+         %11 = OpConstantNull %v4float
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %11
+%_ptr_Private_int = OpTypePointer Private %int
+     %expect = OpVariable %_ptr_Private_int Private %8
        %void = OpTypeVoid
          %14 = OpTypeFunction %void
        %bool = OpTypeBool
@@ -49,7 +49,7 @@
       %int_1 = OpConstant %int 1
      %int_n1 = OpConstant %int -1
    %main_out = OpTypeStruct %int
-         %44 = OpTypeFunction %void %main_out
+         %44 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %14
          %17 = OpLabel
    %inbounds = OpVariable %_ptr_Function_bool Function %21
@@ -78,20 +78,20 @@
                OpStore %expect %41
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %44
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %44
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %48 = OpLabel
-         %49 = OpCompositeExtract %int %tint_symbol_1 0
-               OpStore %tint_symbol_2 %49
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %49 = OpFunctionCall %void %main_1
+         %50 = OpLoad %int %expect
+         %51 = OpCompositeConstruct %main_out %50
+               OpReturnValue %51
                OpFunctionEnd
        %main = OpFunction %void None %14
-         %51 = OpLabel
-         %52 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %52
-         %53 = OpFunctionCall %void %main_1
-         %55 = OpLoad %int %expect
-         %56 = OpCompositeConstruct %main_out %55
-         %54 = OpFunctionCall %void %tint_symbol_3 %56
+         %53 = OpLabel
+         %55 = OpLoad %v4float %gl_FragCoord_param_1
+         %54 = OpFunctionCall %main_out %main_inner %55
+         %56 = OpCompositeExtract %int %54 0
+               OpStore %expect_1_1 %56
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.spvasm.expected.spvasm b/test/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.spvasm.expected.spvasm
index 2050b3e..b31dbf7 100644
--- a/test/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.spvasm.expected.spvasm
@@ -5,55 +5,55 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %color_in_param_1 %color_out_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %color_in_param_1 "color_in_param_1"
+               OpName %color_out_1_1 "color_out_1_1"
                OpName %color_out "color_out"
                OpName %color_in "color_in"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "color_out_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %color_in_param "color_in_param"
                OpName %main "main"
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %color_in_param_1 Location 0
+               OpDecorate %color_out_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-  %color_out = OpVariable %_ptr_Private_v4float Private %5
-   %color_in = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%color_in_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%color_out_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+  %color_out = OpVariable %_ptr_Private_v4float Private %7
+   %color_in = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %16 = OpTypeFunction %void %main_out
+         %16 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
          %15 = OpLoad %v4float %color_in
                OpStore %color_out %15
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %16
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %16
+%color_in_param = OpFunctionParameter %v4float
          %20 = OpLabel
-         %21 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %21
-               OpReturn
+               OpStore %color_in %color_in_param
+         %21 = OpFunctionCall %void %main_1
+         %22 = OpLoad %v4float %color_out
+         %23 = OpCompositeConstruct %main_out %22
+               OpReturnValue %23
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %23 = OpLabel
-         %24 = OpLoad %v4float %tint_symbol
-               OpStore %color_in %24
-         %25 = OpFunctionCall %void %main_1
-         %27 = OpLoad %v4float %color_out
-         %28 = OpCompositeConstruct %main_out %27
-         %26 = OpFunctionCall %void %tint_symbol_3 %28
+         %25 = OpLabel
+         %27 = OpLoad %v4float %color_in_param_1
+         %26 = OpFunctionCall %main_out %main_inner %27
+         %28 = OpCompositeExtract %v4float %26 0
+               OpStore %color_out_1_1 %28
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.wgsl.expected.spvasm b/test/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.wgsl.expected.spvasm
index 2050b3e..b31dbf7 100644
--- a/test/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.wgsl.expected.spvasm
@@ -5,55 +5,55 @@
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %color_in_param_1 %color_out_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %color_in_param_1 "color_in_param_1"
+               OpName %color_out_1_1 "color_out_1_1"
                OpName %color_out "color_out"
                OpName %color_in "color_in"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "color_out_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %color_in_param "color_in_param"
                OpName %main "main"
-               OpDecorate %tint_symbol Location 0
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %color_in_param_1 Location 0
+               OpDecorate %color_out_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-  %color_out = OpVariable %_ptr_Private_v4float Private %5
-   %color_in = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%color_in_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+%color_out_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+  %color_out = OpVariable %_ptr_Private_v4float Private %7
+   %color_in = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
    %main_out = OpTypeStruct %v4float
-         %16 = OpTypeFunction %void %main_out
+         %16 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
          %15 = OpLoad %v4float %color_in
                OpStore %color_out %15
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %16
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %16
+%color_in_param = OpFunctionParameter %v4float
          %20 = OpLabel
-         %21 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %21
-               OpReturn
+               OpStore %color_in %color_in_param
+         %21 = OpFunctionCall %void %main_1
+         %22 = OpLoad %v4float %color_out
+         %23 = OpCompositeConstruct %main_out %22
+               OpReturnValue %23
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %23 = OpLabel
-         %24 = OpLoad %v4float %tint_symbol
-               OpStore %color_in %24
-         %25 = OpFunctionCall %void %main_1
-         %27 = OpLoad %v4float %color_out
-         %28 = OpCompositeConstruct %main_out %27
-         %26 = OpFunctionCall %void %tint_symbol_3 %28
+         %25 = OpLabel
+         %27 = OpLoad %v4float %color_in_param_1
+         %26 = OpFunctionCall %main_out %main_inner %27
+         %28 = OpCompositeExtract %v4float %26 0
+               OpStore %color_out_1_1 %28
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.spvasm.expected.spvasm b/test/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.spvasm.expected.spvasm
index 9f52743..c199929 100644
--- a/test/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.spvasm.expected.spvasm
+++ b/test/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.spvasm.expected.spvasm
@@ -6,31 +6,31 @@
                OpCapability Shader
          %24 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %result_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %result_1_1 "result_1_1"
                OpName %result "result"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "result_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %result_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-     %result = OpVariable %_ptr_Private_v4float Private %5
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+ %result_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+     %result = OpVariable %_ptr_Private_v4float Private %7
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -40,7 +40,7 @@
   %float_255 = OpConstant %float 255
     %float_0 = OpConstant %float 0
    %main_out = OpTypeStruct %v4float
-         %31 = OpTypeFunction %void %main_out
+         %31 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
          %18 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
@@ -55,20 +55,20 @@
                OpStore %result %30
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %31
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %31
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %35 = OpLabel
-         %36 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %36
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %36 = OpFunctionCall %void %main_1
+         %37 = OpLoad %v4float %result
+         %38 = OpCompositeConstruct %main_out %37
+               OpReturnValue %38
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %38 = OpLabel
-         %39 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %39
-         %40 = OpFunctionCall %void %main_1
-         %42 = OpLoad %v4float %result
-         %43 = OpCompositeConstruct %main_out %42
-         %41 = OpFunctionCall %void %tint_symbol_3 %43
+         %40 = OpLabel
+         %42 = OpLoad %v4float %gl_FragCoord_param_1
+         %41 = OpFunctionCall %main_out %main_inner %42
+         %43 = OpCompositeExtract %v4float %41 0
+               OpStore %result_1_1 %43
                OpReturn
                OpFunctionEnd
diff --git a/test/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.wgsl.expected.spvasm b/test/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.wgsl.expected.spvasm
index 9f52743..c199929 100644
--- a/test/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.wgsl.expected.spvasm
+++ b/test/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.wgsl.expected.spvasm
@@ -6,31 +6,31 @@
                OpCapability Shader
          %24 = OpExtInstImport "GLSL.std.450"
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
+               OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %result_1_1
                OpExecutionMode %main OriginUpperLeft
+               OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
+               OpName %result_1_1 "result_1_1"
                OpName %result "result"
                OpName %gl_FragCoord "gl_FragCoord"
-               OpName %tint_symbol "tint_symbol"
-               OpName %tint_symbol_2 "tint_symbol_2"
                OpName %main_1 "main_1"
                OpName %main_out "main_out"
                OpMemberName %main_out 0 "result_1"
-               OpName %tint_symbol_3 "tint_symbol_3"
-               OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %main_inner "main_inner"
+               OpName %gl_FragCoord_param "gl_FragCoord_param"
                OpName %main "main"
-               OpDecorate %tint_symbol BuiltIn FragCoord
-               OpDecorate %tint_symbol_2 Location 0
+               OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
+               OpDecorate %result_1_1 Location 0
                OpMemberDecorate %main_out 0 Offset 0
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
-%_ptr_Private_v4float = OpTypePointer Private %v4float
-          %5 = OpConstantNull %v4float
-     %result = OpVariable %_ptr_Private_v4float Private %5
-%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
 %_ptr_Input_v4float = OpTypePointer Input %v4float
-%tint_symbol = OpVariable %_ptr_Input_v4float Input
+%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
 %_ptr_Output_v4float = OpTypePointer Output %v4float
-%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %5
+          %7 = OpConstantNull %v4float
+ %result_1_1 = OpVariable %_ptr_Output_v4float Output %7
+%_ptr_Private_v4float = OpTypePointer Private %v4float
+     %result = OpVariable %_ptr_Private_v4float Private %7
+%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
        %void = OpTypeVoid
          %11 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -40,7 +40,7 @@
   %float_255 = OpConstant %float 255
     %float_0 = OpConstant %float 0
    %main_out = OpTypeStruct %v4float
-         %31 = OpTypeFunction %void %main_out
+         %31 = OpTypeFunction %main_out %v4float
      %main_1 = OpFunction %void None %11
          %14 = OpLabel
          %18 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
@@ -55,20 +55,20 @@
                OpStore %result %30
                OpReturn
                OpFunctionEnd
-%tint_symbol_3 = OpFunction %void None %31
-%tint_symbol_1 = OpFunctionParameter %main_out
+ %main_inner = OpFunction %main_out None %31
+%gl_FragCoord_param = OpFunctionParameter %v4float
          %35 = OpLabel
-         %36 = OpCompositeExtract %v4float %tint_symbol_1 0
-               OpStore %tint_symbol_2 %36
-               OpReturn
+               OpStore %gl_FragCoord %gl_FragCoord_param
+         %36 = OpFunctionCall %void %main_1
+         %37 = OpLoad %v4float %result
+         %38 = OpCompositeConstruct %main_out %37
+               OpReturnValue %38
                OpFunctionEnd
        %main = OpFunction %void None %11
-         %38 = OpLabel
-         %39 = OpLoad %v4float %tint_symbol
-               OpStore %gl_FragCoord %39
-         %40 = OpFunctionCall %void %main_1
-         %42 = OpLoad %v4float %result
-         %43 = OpCompositeConstruct %main_out %42
-         %41 = OpFunctionCall %void %tint_symbol_3 %43
+         %40 = OpLabel
+         %42 = OpLoad %v4float %gl_FragCoord_param_1
+         %41 = OpFunctionCall %main_out %main_inner %42
+         %43 = OpCompositeExtract %v4float %41 0
+               OpStore %result_1_1 %43
                OpReturn
                OpFunctionEnd