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/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.spvasm
index 196c560..2139974 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.spvasm
@@ -1,16 +1,17 @@
 ; SPIR-V
 ; Version: 1.3
 ; Generator: Google Tint Compiler; 0
-; Bound: 71
+; Bound: 84
 ; Schema: 0
                OpCapability Shader
                OpMemoryModel 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 %arg_1 "arg_1"
@@ -22,11 +23,17 @@
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
                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
@@ -34,27 +41,29 @@
                OpDecorate %arg_1 Binding 1
                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 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
+         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
+      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
+         %15 = OpTypeSampler
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 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
-         %18 = OpTypeFunction %void
+         %19 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %24 = OpConstantComposite %v2float %float_1 %float_1
@@ -65,17 +74,23 @@
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %38 = OpTypeSampledImage %11
+         %38 = OpTypeSampledImage %12
     %v3float = OpTypeVector %float 3
     %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
          %52 = OpConstantComposite %v2int %int_1 %int_1
+       %void = OpTypeVoid
+         %55 = OpTypeFunction %void
      %uint_0 = OpConstant %uint 0
 %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-         %58 = OpTypeFunction %v4float
-%textureSampleCompareLevel_bcb3dd = OpFunction %void None %18
+%VertexOutput = OpTypeStruct %v4float %float
+         %67 = OpTypeFunction %VertexOutput
+%_ptr_Function_VertexOutput = OpTypePointer Function %VertexOutput
+         %73 = OpConstantNull %VertexOutput
+%_ptr_Function_v4float = OpTypePointer Function %v4float
+%textureSampleCompareLevel_bcb3dd = OpFunction %float None %19
          %21 = OpLabel
       %arg_2 = OpVariable %_ptr_Function_v2float Function %27
       %arg_3 = OpVariable %_ptr_Function_uint Function %32
@@ -84,8 +99,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %36 = OpLoad %14 %arg_1
-         %37 = OpLoad %11 %arg_0
+         %36 = OpLoad %15 %arg_1
+         %37 = OpLoad %12 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %41 = OpLoad %v2float %arg_2
          %42 = OpCompositeExtract %float %41 0
@@ -96,30 +111,41 @@
          %47 = OpLoad %float %arg_4
          %35 = OpImageSampleDrefExplicitLod %float %39 %46 %47 Lod|ConstOffset %float_0 %52
                OpStore %res %35
-         %56 = OpAccessChain %_ptr_StorageBuffer_float %prevent_dce %uint_0
-         %57 = OpLoad %float %res
-               OpStore %56 %57
+         %54 = OpLoad %float %res
+               OpReturnValue %54
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %55
+         %58 = OpLabel
+         %61 = OpAccessChain %_ptr_StorageBuffer_float %prevent_dce %uint_0
+         %62 = OpFunctionCall %float %textureSampleCompareLevel_bcb3dd
+               OpStore %61 %62
                OpReturn
                OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %58
-         %60 = OpLabel
-         %61 = OpFunctionCall %void %textureSampleCompareLevel_bcb3dd
-               OpReturnValue %5
+%compute_main = OpFunction %void None %55
+         %64 = OpLabel
+         %65 = OpAccessChain %_ptr_StorageBuffer_float %prevent_dce %uint_0
+         %66 = OpFunctionCall %float %textureSampleCompareLevel_bcb3dd
+               OpStore %65 %66
+               OpReturn
                OpFunctionEnd
-%vertex_main = OpFunction %void None %18
-         %63 = OpLabel
-         %64 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %64
+%vertex_main_inner = OpFunction %VertexOutput None %67
+         %70 = OpLabel
+        %out = OpVariable %_ptr_Function_VertexOutput Function %73
+         %75 = OpAccessChain %_ptr_Function_v4float %out %uint_0
+               OpStore %75 %5
+         %76 = OpAccessChain %_ptr_Function_float %out %uint_1
+         %77 = OpFunctionCall %float %textureSampleCompareLevel_bcb3dd
+               OpStore %76 %77
+         %78 = OpLoad %VertexOutput %out
+               OpReturnValue %78
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %55
+         %80 = OpLabel
+         %81 = OpFunctionCall %VertexOutput %vertex_main_inner
+         %82 = OpCompositeExtract %v4float %81 0
+               OpStore %pos_1 %82
+         %83 = OpCompositeExtract %float %81 1
+               OpStore %prevent_dce_1 %83
                OpStore %vertex_point_size %float_1
                OpReturn
                OpFunctionEnd
-%fragment_main = OpFunction %void None %18
-         %66 = OpLabel
-         %67 = OpFunctionCall %void %textureSampleCompareLevel_bcb3dd
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %18
-         %69 = OpLabel
-         %70 = OpFunctionCall %void %textureSampleCompareLevel_bcb3dd
-               OpReturn
-               OpFunctionEnd