Remove storage textures from vertex tests

The template change in test/tint/builtins/gen/gen.wgsl.tmpl removes the
remaining usages of storage textures in vertex shaders in Tint end2end
tests, replacing them instead with a VertexOutput object to prevent DCE.
The template is the only manually modified file in this change, the rest
were created with:
./tools/run gen
./tools/run tests --generate-expected

Binding numbers and entry point ordering had to be slightly shuffled to
work around: crbug.com/42250109

Bug: 344846829
Change-Id: I6c2c80b78168a13c6c545e7a0dc924d64997ff0e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/193260
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Natalie Chouinard <chouinard@google.com>
diff --git a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.spvasm
index e090e01..fc3f326 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.spvasm
@@ -1,16 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 46
+; Bound: 59
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpEntryPoint GLCompute %compute_main "compute_main"
+               OpEntryPoint Vertex %vertex_main "vertex_main" %pos_1 %prevent_dce_1 %vertex_point_size
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
+               OpName %pos_1 "pos_1"
+               OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
                OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
@@ -18,74 +19,99 @@
                OpName %prevent_dce "prevent_dce"
                OpName %textureLoad_9ed19e "textureLoad_9ed19e"
                OpName %res "res"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
+               OpName %VertexOutput "VertexOutput"
+               OpMemberName %VertexOutput 0 "pos"
+               OpMemberName %VertexOutput 1 "prevent_dce"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %out "out"
+               OpName %vertex_main "vertex_main"
+               OpDecorate %pos_1 BuiltIn Position
+               OpDecorate %prevent_dce_1 Location 0
+               OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 2
+               OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpMemberDecorate %VertexOutput 0 Offset 0
+               OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
     %v4float = OpTypeVector %float 4
 %_ptr_Output_v4float = OpTypePointer Output %v4float
           %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
+      %pos_1 = OpVariable %_ptr_Output_v4float Output %5
 %_ptr_Output_float = OpTypePointer Output %float
           %8 = OpConstantNull %float
+%prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %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
+         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
+      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
-       %void = OpTypeVoid
-         %15 = OpTypeFunction %void
+         %16 = OpTypeFunction %float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
          %25 = OpConstantComposite %v2uint %uint_1 %uint_1
 %_ptr_Function_float = OpTypePointer Function %float
+       %void = OpTypeVoid
+         %29 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
 %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-         %32 = OpTypeFunction %v4float
+%VertexOutput = OpTypeStruct %v4float %float
+         %41 = OpTypeFunction %VertexOutput
+%_ptr_Function_VertexOutput = OpTypePointer Function %VertexOutput
+         %47 = OpConstantNull %VertexOutput
+%_ptr_Function_v4float = OpTypePointer Function %v4float
     %float_1 = OpConstant %float 1
-%textureLoad_9ed19e = OpFunction %void None %15
+%textureLoad_9ed19e = OpFunction %float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %21 = OpLoad %11 %arg_0
+         %21 = OpLoad %12 %arg_0
          %20 = OpImageFetch %v4float %21 %25 Lod %uint_1
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
-         %30 = OpAccessChain %_ptr_StorageBuffer_float %prevent_dce %uint_0
-         %31 = OpLoad %float %res
-               OpStore %30 %31
+         %28 = OpLoad %float %res
+               OpReturnValue %28
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %29
+         %32 = OpLabel
+         %35 = OpAccessChain %_ptr_StorageBuffer_float %prevent_dce %uint_0
+         %36 = OpFunctionCall %float %textureLoad_9ed19e
+               OpStore %35 %36
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %32
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %textureLoad_9ed19e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %15
-         %37 = OpLabel
-         %38 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %38
-               OpStore %vertex_point_size %float_1
+%compute_main = OpFunction %void None %29
+         %38 = OpLabel
+         %39 = OpAccessChain %_ptr_StorageBuffer_float %prevent_dce %uint_0
+         %40 = OpFunctionCall %float %textureLoad_9ed19e
+               OpStore %39 %40
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %15
-         %41 = OpLabel
-         %42 = OpFunctionCall %void %textureLoad_9ed19e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %15
+%vertex_main_inner = OpFunction %VertexOutput None %41
          %44 = OpLabel
-         %45 = OpFunctionCall %void %textureLoad_9ed19e
+        %out = OpVariable %_ptr_Function_VertexOutput Function %47
+         %49 = OpAccessChain %_ptr_Function_v4float %out %uint_0
+               OpStore %49 %5
+         %50 = OpAccessChain %_ptr_Function_float %out %uint_1
+         %51 = OpFunctionCall %float %textureLoad_9ed19e
+               OpStore %50 %51
+         %52 = OpLoad %VertexOutput %out
+               OpReturnValue %52
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %29
+         %54 = OpLabel
+         %55 = OpFunctionCall %VertexOutput %vertex_main_inner
+         %56 = OpCompositeExtract %v4float %55 0
+               OpStore %pos_1 %56
+         %57 = OpCompositeExtract %float %55 1
+               OpStore %prevent_dce_1 %57
+               OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd