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/bitcast/160c09.wgsl.expected.msl b/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.msl
index 31b8573..a4bd30c 100644
--- a/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.msl
@@ -1,34 +1,43 @@
 #include <metal_stdlib>
 
 using namespace metal;
-void bitcast_160c09(device uint4* const tint_symbol_1) {
+uint4 bitcast_160c09() {
   uint4 res = uint4(1u);
-  *(tint_symbol_1) = res;
+  return res;
 }
 
-struct tint_symbol {
-  float4 value [[position]];
+fragment void fragment_main(device uint4* tint_symbol_1 [[buffer(0)]]) {
+  *(tint_symbol_1) = bitcast_160c09();
+  return;
+}
+
+kernel void compute_main(device uint4* tint_symbol_2 [[buffer(0)]]) {
+  *(tint_symbol_2) = bitcast_160c09();
+  return;
+}
+
+struct VertexOutput {
+  float4 pos;
+  uint4 prevent_dce;
 };
 
-float4 vertex_main_inner(device uint4* const tint_symbol_2) {
-  bitcast_160c09(tint_symbol_2);
-  return float4(0.0f);
+struct tint_symbol {
+  uint4 prevent_dce [[user(locn0)]] [[flat]];
+  float4 pos [[position]];
+};
+
+VertexOutput vertex_main_inner() {
+  VertexOutput out = {};
+  out.pos = float4(0.0f);
+  out.prevent_dce = bitcast_160c09();
+  return out;
 }
 
-vertex tint_symbol vertex_main(device uint4* tint_symbol_3 [[buffer(0)]]) {
-  float4 const inner_result = vertex_main_inner(tint_symbol_3);
+vertex tint_symbol vertex_main() {
+  VertexOutput const inner_result = vertex_main_inner();
   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(device uint4* tint_symbol_4 [[buffer(0)]]) {
-  bitcast_160c09(tint_symbol_4);
-  return;
-}
-
-kernel void compute_main(device uint4* tint_symbol_5 [[buffer(0)]]) {
-  bitcast_160c09(tint_symbol_5);
-  return;
-}
-