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/c456bc.wgsl.expected.msl b/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.msl
index 85046b6..87f7d24 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.msl
@@ -1,34 +1,43 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void textureLoad_c456bc(texture3d<float, access::read> tint_symbol_1, device float4* const tint_symbol_2) {
+float4 textureLoad_c456bc(texture3d<float, access::read> tint_symbol_1) {
   float4 res = tint_symbol_1.read(uint3(int3(1)));
-  *(tint_symbol_2) = res;
+  return res;
 }
 
-struct tint_symbol {
-  float4 value [[position]];
+fragment void fragment_main(device float4* tint_symbol_2 [[buffer(0)]], texture3d<float, access::read> tint_symbol_3 [[texture(0)]]) {
+  *(tint_symbol_2) = textureLoad_c456bc(tint_symbol_3);
+  return;
+}
+
+kernel void compute_main(device float4* tint_symbol_4 [[buffer(0)]], texture3d<float, access::read> tint_symbol_5 [[texture(0)]]) {
+  *(tint_symbol_4) = textureLoad_c456bc(tint_symbol_5);
+  return;
+}
+
+struct VertexOutput {
+  float4 pos;
+  float4 prevent_dce;
 };
 
-float4 vertex_main_inner(texture3d<float, access::read> tint_symbol_3, device float4* const tint_symbol_4) {
-  textureLoad_c456bc(tint_symbol_3, tint_symbol_4);
-  return float4(0.0f);
+struct tint_symbol {
+  float4 prevent_dce [[user(locn0)]] [[flat]];
+  float4 pos [[position]];
+};
+
+VertexOutput vertex_main_inner(texture3d<float, access::read> tint_symbol_6) {
+  VertexOutput out = {};
+  out.pos = float4(0.0f);
+  out.prevent_dce = textureLoad_c456bc(tint_symbol_6);
+  return out;
 }
 
-vertex tint_symbol vertex_main(texture3d<float, access::read> tint_symbol_5 [[texture(0)]], device float4* tint_symbol_6 [[buffer(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_5, tint_symbol_6);
+vertex tint_symbol vertex_main(texture3d<float, access::read> tint_symbol_7 [[texture(0)]]) {
+  VertexOutput const inner_result = vertex_main_inner(tint_symbol_7);
   tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
+  wrapper_result.pos = inner_result.pos;
+  wrapper_result.prevent_dce = inner_result.prevent_dce;
   return wrapper_result;
 }
 
-fragment void fragment_main(texture3d<float, access::read> tint_symbol_7 [[texture(0)]], device float4* tint_symbol_8 [[buffer(0)]]) {
-  textureLoad_c456bc(tint_symbol_7, tint_symbol_8);
-  return;
-}
-
-kernel void compute_main(texture3d<float, access::read> tint_symbol_9 [[texture(0)]], device float4* tint_symbol_10 [[buffer(0)]]) {
-  textureLoad_c456bc(tint_symbol_9, tint_symbol_10);
-  return;
-}
-